def play_game(players, board, words): """ (list of [str, int] list, list of list of str, list of str) -> NoneType Play the game with players, board and words. """ global found_words num_remaining = a3.num_words_on_board(board, words) - len(found_words) player_num = 0 while num_remaining > 0: print_headers(players, board, found_words, num_remaining) guess = input("[{player}] Enter a word (or blank to pass): ".format( player=players[player_num % len(players)][0])) guess = guess.strip().upper() if a3.is_valid_word(words, guess) and a3.board_contains_word(board, guess) and \ not guess in found_words: a3.update_score(players[player_num % len(players)], guess) found_words.append(guess) num_remaining = a3.num_words_on_board(board, words) - len(found_words) player_num += 1 print("Game over!\n")
def test_update_score(): player_1 = ['Jonathan', 4] player_2 = ['Jon', 1] a3.update_score(player_1, "ANT") a3.update_score(player_2, "ANT") assert player_1[1] == 7 assert player_2[1] == 4
def game_play(self, guess): """ Accept trial word, process it, update scores, update found_words list, update player_num """ if guess == 'first_guess': # Needed because startup sends a '' first word player_name = self.players[0][0] message = player_name + ', enter a word' self.player_name_message.set(message) else: guess = guess.strip().upper() if a3.is_valid_word(self.words, guess) and a3.board_contains_word(self.board, guess) and \ not guess in self.found_words_list: a3.update_score(self.players[self.player_num], guess) self.set_scores() self.found_words_list.append(guess) self.set_found_words(self.found_words_list) num_remaining = a3.num_words_on_board( self.board, self.words) - len(self.found_words_list) self.set_num_words_rem(num_remaining) self.reset_trial_word() if num_remaining == 0: self.game_over() else: self.player_num += 1 if self.player_num >= len(self.players): self.player_num = 0 self.set_player_name(self.player_num) else: self.error_message = "\"" + guess + "\"" + " invalid, not in board, or previously chosen. Miss turn." self.invalid_word = True self.set_scores() self.player_num += 1 if self.player_num >= len(self.players): self.player_num = 0 self.set_player_name(self.player_num) self.reset_trial_word()
def play_game(players, board, words): ''' (list of [str, int] list, list of list of str, list of str) -> NoneType Play the game with players, board and words. ''' num_remaining = a3.num_words_on_board(board, words) - len(found_words) player_num = 0 while num_remaining > 0: print_headers(players, board, found_words, num_remaining) guess = input("[{player}] Enter a word (or blank to pass): ".format( player=players[player_num % len(players)][0])) guess = guess.strip().upper() if a3.is_valid_word(words, guess) and a3.board_contains_word(board, guess): a3.update_score(players[player_num % len(players)], guess) found_words.append(guess) num_remaining = a3.num_words_on_board(board, words) - len(found_words) player_num += 1 print("Game over!\n")
def test_update_score(self): player_info = ['Johnathon',4] word = 'CAT' a3.update_score(player_info,word) self.assertEqual(player_info[1],7)
def test_scoring_a_players_3_point_word(self): playerinfo = ['Jonathan', 4] word = 'ANT' a3.update_score(playerinfo, word) self.assertEqual(7, playerinfo[1])
def test34_update_score(self): """should not update score for a player if word_score is 0""" player_info = ["puneet", 22] a3.update_score(player_info, "AN") self.assertEqual(22, player_info[1])
def test33_update_score(self): """should update score correctly for a player""" player_info = ["puneet", 22] a3.update_score(player_info, "TRANSRAILWAY") self.assertEqual(58, player_info[1])