Example #1
0
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
Example #2
0
 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)
Example #3
0
 def test_guess_cannot_be_empty_string(self):
     with self.assertRaises(ValueError):
         hangman.take_turn(hangman.start_game(), "")
Example #4
0
 def test_guess_cannot_be_multiple_characters(self):
     with self.assertRaises(ValueError):
         hangman.take_turn(hangman.start_game(), "hi")
Example #5
0
 def test_guess_cannot_be_none(self):
     with self.assertRaises(ValueError):
         hangman.take_turn(hangman.start_game(), None)
Example #6
0
 def test_state_cannot_be_none(self):
     with self.assertRaises(ValueError):
         hangman.take_turn(None, "m")
Example #7
0
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)