Example #1
0
    def test_board(self):
        board = Board(6, 6)

        board.move(1, 1, 'X')
        board.move(4, 2, 'O')
        self.assertEqual(board.number_empty_spaces, 18)
        self.assertEqual(len(board.empty_cells()), 18)
        try:
            board.move(4, 1, 'X')
            self.assertFalse('not ok')
        except Exception:
            self.assertTrue('ok')
Example #2
0
class Game:
    def __init__(self, rows, columns, user_sign, computer_sign):
        self._board = Board(rows, columns)
        self._strategy = Strategy()
        self._user = user_sign
        self._comp = computer_sign

    @property
    def board(self):

        return self._board

    def user_move(self, x, y):
        self._board.move(x, y, self._user)

    def computer_move(self):
        cpu_move = self._strategy.minimax_algorithm(self._board, self._user,
                                                    self._comp)
        self._board.move(cpu_move[0], cpu_move[1], self._comp)
        return cpu_move[0], cpu_move[1]
        print(f"The computers move is: [{cpu_move[0]}, {cpu_move[1]}]")
Example #3
0
class Game:
    def __init__(self):
        self._board = Board()

    @property
    def board(self):
        return self._board

    def movePlayer(self, square):
        self._board.move(square, "O")

    def moveComputer(self):
        options = self._board.getEmptySquares()
        for square in options:
            c = self._board.bcopy()
            c.move(square, "X")
            if len(c.getEmptySquares()) == 0:
                self._board.move(square, "X")
                return

        move = random.choice(options)

        self._board.move(move, "X")