Example #1
0
    def test_rule_out_candidates_question_not_correct(self):
        game = Game.objects.get(pk=1)
        trait = Trait.objects.get(pk=3)
        trait_value = TraitValue.objects.get(pk=1)
        eq_(game.player2.candidates.count(), 3)

        question = Question(game=game, player=game.player1,
                            trait=trait, value=trait_value)
        rule_out_candidates(question)

        eq_(game.player1.candidates.count(), 3)
Example #2
0
    def test_rule_out_candidates_question_not_correct(self):
        game = Game.objects.get(pk=1)
        trait = Trait.objects.get(pk=3)
        trait_value = TraitValue.objects.get(pk=1)
        eq_(game.player2.candidates.count(), 3)

        question = Question(game=game,
                            player=game.player1,
                            trait=trait,
                            value=trait_value)
        rule_out_candidates(question)

        eq_(game.player1.candidates.count(), 3)
Example #3
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))
Example #4
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))