Пример #1
0
def play_game(request, game_id):
    game = Game.objects.get(pk=int(game_id))
    player = game.players.filter(user=request.user)[0]

    candidates = player.candidates.all()
    ctx = {
        'opponent': get_game_opponent(game, player),
        'person': player.person,
        'num_candidates': candidates.count(),
        'candidates': candidates
    }

    if request.method == 'POST':
        form = QuestionForm(game, player, request.POST)
        if form.is_valid():
            custom_key = form.cleaned_data.get('question')
            trait_id, value_id = custom_key.split(':')
            question_data = {
                'game': game,
                'player': player,
                'trait': Trait.objects.get(pk=trait_id),
                'value': TraitValue.objects.get(pk=value_id)
            }
            question = Question(**question_data)
            rule_out_candidates(question)
            winner = is_game_complete(game)
            if winner:
                ctx.update({
                    'game_over': True,
                    'user_won': winner.pk is player.pk
                })
    else:
        form = QuestionForm(game, player)
    ctx['form'] = form

    return render_to_response('core/play_game.html',
                              ctx,
                              context_instance=RequestContext(request))
Пример #2
0
def play_game(request, game_id):
    game = Game.objects.get(pk=int(game_id))
    player = game.players.filter(user=request.user)[0]

    candidates = player.candidates.all()
    ctx = {
        'opponent': get_game_opponent(game, player),
        'person': player.person,
        'num_candidates': candidates.count(),
        'candidates': candidates
    }

    if request.method == 'POST':
        form = QuestionForm(game, player, request.POST)
        if form.is_valid():
            custom_key = form.cleaned_data.get('question')
            trait_id, value_id = custom_key.split(':')
            question_data = {
                'game': game,
                'player': player,
                'trait': Trait.objects.get(pk=trait_id),
                'value': TraitValue.objects.get(pk=value_id)
            }
            question = Question(**question_data)
            rule_out_candidates(question)
            winner = is_game_complete(game)
            if winner:
                ctx.update({
                    'game_over': True,
                    'user_won': winner.pk is player.pk
                })
    else:
        form = QuestionForm(game, player)
    ctx['form'] = form

    return render_to_response('core/play_game.html', ctx,
                              context_instance=RequestContext(request))
Пример #3
0
    def test_get_game_opponent_as_2(self):
        game = Game.objects.get(pk=1)
        player = game.player2

        eq_(get_game_opponent(game, player).pk, 1)
Пример #4
0
    def test_get_game_opponent_as_2(self):
        game = Game.objects.get(pk=1)
        player = game.player2

        eq_(get_game_opponent(game, player).pk, 1)