def game_loop(): board = ttt.get_board() player_counter = 0 while True: player = player_counter % 2 + 1 if ttt.is_board_full(board): ttt.print_board(board) print("Tie") break ttt.print_board(board) try: r, c = input("Player" + str(player) + "-> r, c").split() r, c = int(r) - 1, int(c) - 1 except ValueError: print( "Player", str(player), "Invalid Row Column Format \nExample input for row 1 and column 2 is: 1 2" ) continue if not _check_bounds(r, c): print("Player", str(player), "Invalid Position") continue if not ttt.is_playable(board, r, c): print("Player", str(player), "Position already filled") continue ttt.play_tile(board, r, c, ttt.TILE_X if player == 1 else ttt.TILE_O) if ttt.is_tictactoe(board): ttt.print_board(board) print("Player", player, "wins") break player_counter += 1 ttt.clear_board(board) return player
def test_tac_out_of_range(self): tictactoe.init() result = tictactoe.tac(4, 1) self.assertEqual(" | | \n" * 3, tictactoe.get_board()) self.assertEqual(False, result)
def test_get_board(self): self.assertEqual(" | | \n" * 3, tictactoe.get_board())
def test_return_type(self): assert isinstance(validate_board(get_board()), bool)
def test_tac_on_empty_board(self): tictactoe.init() tictactoe.tac(1, 3) self.assertEqual(" | |o\n" + " | | \n" * 2, tictactoe.get_board())
def test_return_one_1(self): assert game_finished(get_board()) == 1
def test_return_type_1(self): assert isinstance(render_board(get_board()), str)
def test_return_type(self): assert isinstance(game_finished(get_board()), int)
def test_return_false_4(self): assert validate_board(get_board([0, 1])) == False
def test_return_false_2(self): assert validate_board(get_board([1, 4, 2])) == False
def test_return_false_1(self): assert validate_board(get_board(rows=4)) == False
def test_return_true_1(self): assert validate_board(get_board()) == True