示例#1
0
    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]), '#')
示例#2
0
    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]), '#')
示例#3
0
    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]))
示例#4
0
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
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)