Exemplo n.º 1
0
def test_player_wins_when_closer_but_below_target_number():
    """
    Asserts that the correct game result is given when both player's are
    the same distance from the target number but in different directions.
    """
    TARGET_NUMBER = 500
    answers = {
        'comp_num_achieved': 498,
        'player_num_achieved': 499,
    }
    game_result = logic.get_game_result(TARGET_NUMBER, answers)
    assert game_result == 'Player wins'
Exemplo n.º 2
0
def test_get_game_result_is_draw_1():
    """
    Asserts the game result is a `draw` when both player's achieve the
    target number.
    """
    TARGET_NUMBER = 500
    answers = {
        'comp_num_achieved': 500,
        'player_num_achieved': 500,
    }
    game_result = logic.get_game_result(TARGET_NUMBER, answers)
    assert game_result == 'Draw'
Exemplo n.º 3
0
def test_get_game_result_is_draw_4():
    """
    Asserts the game result is a `draw` when both player's have the same
    variance from the target number but in opposite directions.
    """
    TARGET_NUMBER = 500
    answers = {
        'comp_num_achieved': 495,
        'player_num_achieved': 505,
    }
    game_result = logic.get_game_result(TARGET_NUMBER, answers)
    assert game_result == 'Draw'
Exemplo n.º 4
0
def results_screen(request):
    players_calc = request.GET.get('players_calculation')
    valid_calc = validations.is_calc_valid(request, players_calc)
    player_num_achieved = logic.get_player_num_achieved(players_calc)
    target_number = int(request.GET.get('target_number'))
    player_score, comp_score = 0, 0
    if valid_calc:
        player_score = logic.get_score_awarded(target_number,
                                               player_num_achieved)

    game_nums = validations.get_permissible_nums(request)
    best_solution = logic.get_best_solution(game_nums, target_number)
    best_solution = best_solution.replace(chr(215), '*').replace(chr(247), '/')
    comp_num_achieved = int(eval(best_solution))
    solution_str = f"""
        {best_solution.replace(
            '*', chr(215)).replace('/', chr(247))} = {comp_num_achieved}""".strip(
    )
    answers = {
        'player_num_achieved': player_num_achieved,
        'comp_num_achieved': comp_num_achieved,
    }
    game_result = logic.get_game_result(target_number, answers)

    if valid_calc and game_result != 'comp_num_achieved':
        player_score = logic.get_score_awarded(target_number,
                                               player_num_achieved)
    if game_result != 'player_num_achieved':
        comp_score = logic.get_score_awarded(target_number, comp_num_achieved)

    context = {
        'game_nums': game_nums,
        'valid_calc': valid_calc,
        'target_number': target_number,
        'player_num_achieved': player_num_achieved,
        'comp_num_achieved': comp_num_achieved,
        'solution_str': solution_str,
        'player_score': player_score,
        'comp_score': comp_score,
        'game_result': game_result,
    }

    utils.create_record(context)

    return render(request, 'countdown_numbers/results.html', context)