Ejemplo n.º 1
0
    def test_winconditions(self):
        """Make sure all win conditions are valid"""
        board = Board()
        """Testing top row win"""
        for i in range(0,3):
            board.inputMove(i, "X")
        self.assertTrue(board.checkForWinner("X"))
        board.__init__

        """Testing middle row win"""
        for i in range(3, 6):
            board.inputMove(i, "X")
        self.assertTrue(board.checkForWinner("X"))
        board.__init__

        """Testing bottom row win"""
        for i in range(6, 9):
            board.inputMove(i, "X")
        self.assertTrue(board.checkForWinner("X"))
        board.__init__

        """Testing left vertical column win"""
        for i in range(0, 7, 3):
            board.inputMove(i, "X")
        self.assertTrue(board.checkForWinner("X"))
        board.__init__

        """Testing middle vertical column win"""
        for i in range(1, 8, 3):
            board.inputMove(i, "X")
        self.assertTrue(board.checkForWinner("X"))
        board.__init__

        """Testing right vertical column win"""
        for i in range(2, 9, 3):
            board.inputMove(i, "X")
        self.assertTrue(board.checkForWinner("X"))
        board.__init__

        """Testing \ diagonal win"""
        for i in range(0, 9, 4):
            board.inputMove(i, "X")
        self.assertTrue(board.checkForWinner("X"))
        board.__init__

        """Testing / diagonal win"""
        for i in range(2, 7, 2):
            board.inputMove(i, "X")
        self.assertTrue(board.checkForWinner("X"))
        board.__init__
Ejemplo n.º 2
0
                if pos[0] > mo[i][0] and pos[0] < mo[i][0] + 100 and pos[
                        1] > mo[i][1] and pos[1] < mo[i][1] + 66:
                    # Input validation
                    if (board.gs[i] == " "):
                        # Draw the X
                        pygame.draw.line(disp, green,
                                         (mo[i][0] + 25, mo[i][1] + 15),
                                         (mo[i][0] + 75, mo[i][1] + 55), 6)
                        pygame.draw.line(disp, green,
                                         (mo[i][0] + 25, mo[i][1] + 55),
                                         (mo[i][0] + 75, mo[i][1] + 15), 6)
                        board.inputMove(i, player)

                        # Check for win condition
                        if board.checkForWinner(player):
                            displayMessage("You win!!", green, black, fontObj,
                                           200, 340)
                        # Check for draw so we can skip computers turn
                        elif board.checkForDraw():
                            displayMessage("Looks like a cats game!!", white,
                                           black, fontObj, 250, 340)
                        elif (board.playAgain == " "):

                            cmove = board.moveAI(comp, player)
                            board.inputMove(cmove, comp)
                            # Draw the O
                            pygame.draw.circle(
                                disp, red,
                                (mo[cmove][0] + 50, mo[cmove][1] + 35), 25, 6)