def test_winner_by_2nd_diagonal(self): """Player1 should win wen complete the 2nd diagonal""" self.board = ttt.make_move('0,2', self.board, self.p1) self.board = ttt.make_move('1,1', self.board, self.p1) self.board = ttt.make_move('2,0', self.board, self.p1) ttt.print_board(self.board) self.assertEqual(ttt.status(self.board, [self.p1, self.p2]), '#')
def test_winner_by_col(self): """Player1 should win wen complete a col""" self.board = ttt.make_move('0,0', self.board, self.p1) self.board = ttt.make_move('1,0', self.board, self.p1) self.board = ttt.make_move('2,0', self.board, self.p1) ttt.print_board(self.board) self.assertEqual(ttt.status(self.board, [self.p1, self.p2]), '#')
def test_status_tie_game(self): """Should be no winner in a tie game""" #player1 moves self.board = ttt.make_move('0,0', self.board, self.p1) self.board = ttt.make_move('0,2', self.board, self.p1) self.board = ttt.make_move('1,1', self.board, self.p1) self.board = ttt.make_move('1,2', self.board, self.p1) self.board = ttt.make_move('2,1', self.board, self.p1) #player2 moves self.board = ttt.make_move('0,1', self.board, self.p2) self.board = ttt.make_move('1,0', self.board, self.p2) self.board = ttt.make_move('2,0', self.board, self.p2) self.board = ttt.make_move('2,2', self.board, self.p2) ttt.print_board(self.board) self.assertFalse(ttt.status(self.board, [self.p1, self.p2]))
def play_ai(board, move_counter): print_board(board) if move_counter % 2: print("\n\n\n") row, col = input("Skriv inn trekk: ").split() player = 'O' board, move_counter = make_a_move(row, col, player, move_counter, board) else: print("\n\n\n") row, col = best_ai_move(board) player = "X" board[row][col] = player move_counter += 1 if game_end(board, player) == False: play_ai(board, move_counter) else: print_board(board) print("\n") print("GAME OVER")
def test_print_board(): board = [None, None, None, None, None, None, None, None, None] expected = (" | | \n" " 1 | 2 | 3 \n" " | | \n" "-----------------\n" " | | \n" " 4 | 5 | 6 \n" " | | \n" "-----------------\n" " | | \n" " 7 | 8 | 9 \n" " | | \n") result = print_board(board) assert result == expected board = ['o', None, 'o', 'x', None, None, 'o', None, 'x'] expected = (" | | \n" " O | 2 | O \n" " | | \n" "-----------------\n" " | | \n" " X | 5 | 6 \n" " | | \n" "-----------------\n" " | | \n" " O | 8 | X \n" " | | \n") result = print_board(board) assert result == expected
if opt == '-h': print("%s -f x -b ____x____" % (__file__)) sys.exit() elif opt in ("-f", "--first"): first_player = arg maxp = arg elif opt in ("-b", "--board"): if len(arg) == 9: board = list(arg) else: print("wrong board!") elif opt in ("-v", "--verbose"): verbose = True if board != None: if verbose: print_board(board) ts = time.time() result = solve_minmax(board, maxp, first_player, True) if verbose: print("time = %0.6f sec depth=%d" % ((time.time() - ts), deepth)) print("first player = %s result=%r \n" % (first_player, result)) board = picknextmove(board, result, maxp) print_board(board) print(''.join(board)) else: print(result) except getopt.GetoptError: print("%s -f x -b ____x____" % (__file__)) sys.exit(2)