Ejemplo n.º 1
0
def test_board_contains_word():
    res_1 = a3.board_contains_word(BOARD, "ANT")
    res_2 = a3.board_contains_word(BOARD, "NS")
    res_3 = a3.board_contains_word(BOARD, "NSA")

    assert type(res_1) is bool
    assert res_1 is True
    assert res_2 is True
    assert res_3 is False
Ejemplo n.º 2
0
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")
Ejemplo n.º 3
0
 def test_board_does_not_contain_word_3(self):
     # given
     board = [['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
     word = 'NO'
     # when
     isWordInBoard = a3.board_contains_word(board, word)
     # then
     self.assertEquals(isWordInBoard, False)
Ejemplo n.º 4
0
 def test_board_contains_word_2(self):
     # given
     board = [['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
     word = 'SO'
     # when
     isWordInBoard = a3.board_contains_word(board, word)
     # then
     self.assertEquals(isWordInBoard, True)
Ejemplo n.º 5
0
    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()
Ejemplo n.º 6
0
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")
Ejemplo n.º 7
0
 def test_board_contains_word(self):
     self.assertTrue(a3.board_contains_word(self.board1,'ANT'))
     self.assertTrue(a3.board_contains_word(self.board3,'ABC'))
     self.assertTrue(a3.board_contains_word(self.board4,'GRASS'))
Ejemplo n.º 8
0
# print(lst[0][3])

# lst = ['A', 'N', 'T', 'T']
# print(lst[0])

# for i in range(len(lst)):
#   print(lst[i])

lst = [['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]

print(range(len(lst)))
#    print(lst[i][1])

#print(lst[0][1] + lst[1][1])
# prin(lst[i][column_index])

print(a3.make_str_from_column([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 1))
print(a3.make_str_from_column([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 2))

print(
    a3.board_contains_word_in_row([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']],
                                  'SOB'))

print(
    a3.board_contains_word_in_column(
        [['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 'NO'))

print(
    a3.board_contains_word([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']],
                           'ANT'))
Ejemplo n.º 9
0
 def test_board__contains_column_word(self):
     self.assertTrue(a3.board_contains_word([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 'TO'))
Ejemplo n.º 10
0
 def test_board_aint_gonna_contains_word(self):
     self.assertFalse(a3.board_contains_word([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 'OVERCOMPENSATED'))
Ejemplo n.º 11
0
 def test_board_contains_row_word(self):
     self.assertTrue(a3.board_contains_word([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 'ANT'))
Ejemplo n.º 12
0
 def test30_board_contains_word(self):
     """should return false for substring mismatch in column for non square board"""
     self.assertEqual(False, a3.board_contains_word(self.asym_board, "ADM"))
Ejemplo n.º 13
0
 def test29_board_contains_word(self):
     """should return false for substring mismatch in column for square board"""
     self.assertEqual(False, a3.board_contains_word(self.sym_board, "HASDEL"))
Ejemplo n.º 14
0
 def test27_board_contains_word(self):
     """should return false for substring mismatch in row for square board"""
     self.assertEqual(False, a3.board_contains_word(self.sym_board, "BDA"))
Ejemplo n.º 15
0
 def test26_board_contains_word(self):
     """should return true for substring match in column for non square board"""
     self.assertEqual(True, a3.board_contains_word(self.asym_board, "ADN"))
Ejemplo n.º 16
0
 def test23_board_contains_word(self):
     """should return true for substring match in row for square board"""
     self.assertEqual(True, a3.board_contains_word(self.sym_board, "TDA"))