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'
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'
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'
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)