def game_loop(): state = hangman.start_game() while not state.is_finished: print_state(state) guess = prompt_for_guess() state = hangman.take_turn(state, guess) print_was_guess_correct(state) return state
def _test_take_turn_core( self, state, guess, expected_is_finished, expected_current_known, expected_lives_left, expected_was_last_guess_correct, expected_has_won=False ): result = hangman.take_turn(state, guess) self.assertEqual(expected_is_finished, result.is_finished) self.assertEqual(state.target_word, result.target_word) self.assertEqual( expected_current_known, result.current_known ) self.assertEqual(expected_lives_left, result.lives_left) self.assertEqual(expected_was_last_guess_correct, result.was_last_guess_correct) self.assertEqual(expected_has_won, result.has_won)
def test_guess_cannot_be_empty_string(self): with self.assertRaises(ValueError): hangman.take_turn(hangman.start_game(), "")
def test_guess_cannot_be_multiple_characters(self): with self.assertRaises(ValueError): hangman.take_turn(hangman.start_game(), "hi")
def test_guess_cannot_be_none(self): with self.assertRaises(ValueError): hangman.take_turn(hangman.start_game(), None)
def test_state_cannot_be_none(self): with self.assertRaises(ValueError): hangman.take_turn(None, "m")
def take_turn(): state = _classify_game_state(request.json) new_state = hangman.take_turn(state, request.json["guess"]) dict_state = _prepare_game_state(new_state) return jsonify(dict_state)