コード例 #1
0
ファイル: normalUI.py プロジェクト: GhermanCristian/Sem1_FP
    def start(self):
        #choose player
        playerChoice = self.__getPlayerChoice()

        #choose table size
        (boardWidth, boardHeight) = self.__getBoardSize()

        gameEngine = GameEngine(playerChoice, boardWidth, boardHeight)
        #self.__printTable(boardHeight, boardWidth, [[" "] * boardWidth] * boardHeight)

        while True:
            #the player moves first
            if playerChoice == 1:
                (xCoord, yCoord) = self.__getPlayerCoords()
                try:
                    result = gameEngine.playerMove(xCoord, yCoord)
                    if result != None:
                        self.__printResult(result)
                        return
                except Exception as e:
                    print(str(e))
                    continue

                self.__printTable(boardHeight, boardWidth,
                                  gameEngine.toPrint())

                result = gameEngine.computerMove()
                if result != None:
                    self.__printResult(result)
                    return

            #the computer moves first
            elif playerChoice == 2:
                result = gameEngine.computerMove()
                if result != None:
                    self.__printResult(result)
                    return

                self.__printTable(boardHeight, boardWidth,
                                  gameEngine.toPrint())

                (xCoord, yCoord) = self.__getPlayerCoords()
                try:
                    result = gameEngine.playerMove(xCoord, yCoord)
                    if result != None:
                        self.__printResult(result)
                        return
                except Exception as e:
                    print(str(e))
                    continue

            self.__printTable(boardHeight, boardWidth, gameEngine.toPrint())
コード例 #2
0
    def testMoveToWin5(self):
        """
        x|x|x
        x|x|_
        _|_|_
        """
        gameEngine = GameEngine(1, 3, 3)
        table = gameEngine.getTable()

        gameEngine.playerMove(0, 0)
        table.setValue(0, 2, OCCUPIED_SYMBOL)
        result = gameEngine.computerMove()
        self.assertEqual(result, COMPUTER_SYMBOL)
        self.assertTrue(table.isFull())
        self.assertEqual(table.emptyCells, 0)
        self.assertEqual(table.getValue(2, 1), COMPUTER_SYMBOL)
コード例 #3
0
ファイル: testTable.py プロジェクト: GhermanCristian/Sem1_FP
    def testGetValue(self):
        gameEngine = GameEngine(1, 7, 8)
        table = gameEngine.getTable()

        self.assertEqual(table.getValue(1, 1), EMPTY_SYMBOL)

        gameEngine.playerMove(1, 1)
        self.assertEqual(table.getValue(1, 1), PLAYER_SYMBOL)
        self.assertEqual(table.getValue(0, 0), OCCUPIED_SYMBOL)
        self.assertEqual(table.getValue(0, 1), OCCUPIED_SYMBOL)
        self.assertEqual(table.getValue(0, 2), OCCUPIED_SYMBOL)
        self.assertEqual(table.getValue(1, 0), OCCUPIED_SYMBOL)
        self.assertEqual(table.getValue(1, 2), OCCUPIED_SYMBOL)
        self.assertEqual(table.getValue(2, 0), OCCUPIED_SYMBOL)
        self.assertEqual(table.getValue(2, 1), OCCUPIED_SYMBOL)
        self.assertEqual(table.getValue(2, 2), OCCUPIED_SYMBOL)

        self.assertEqual(table.getValue(3, 3), EMPTY_SYMBOL)
コード例 #4
0
    def testPlayerMove(self):
        gameEngine = GameEngine(1, 7, 7)
        table = gameEngine.getTable()

        result = gameEngine.playerMove(1, 1)
        self.assertRaises(EmptyError, gameEngine.playerMove, 0, 0)
        self.assertRaises(EmptyError, gameEngine.playerMove, 0, 1)
        self.assertRaises(EmptyError, gameEngine.playerMove, 0, 2)
        self.assertRaises(EmptyError, gameEngine.playerMove, 2, 0)
        self.assertRaises(EmptyError, gameEngine.playerMove, 1, 1)

        self.assertEqual(table.emptyCells, 40)
        self.assertIsNone(result)
コード例 #5
0
ファイル: testTable.py プロジェクト: GhermanCristian/Sem1_FP
    def testGetAllEmpty(self):
        gameEngine = GameEngine(1, 7, 7)
        table = gameEngine.getTable()

        posList = table.getAllEmpty()
        self.assertEqual(len(posList), 49)
        self.assertEqual(len(posList), table.emptyCells)

        gameEngine.playerMove(3, 3)
        posList = table.getAllEmpty()
        self.assertEqual(len(posList), 40)

        self.assertEqual(posList[0], (0, 0))
        self.assertEqual(posList[1], (0, 1))
        self.assertEqual(posList[2], (0, 2))
        self.assertEqual(posList[3], (0, 3))
        self.assertEqual(posList[4], (0, 4))

        self.assertEqual(posList[35], (6, 2))
        self.assertEqual(posList[36], (6, 3))
        self.assertEqual(posList[37], (6, 4))
        self.assertEqual(posList[38], (6, 5))
        self.assertEqual(posList[39], (6, 6))
コード例 #6
0
ファイル: testTable.py プロジェクト: GhermanCristian/Sem1_FP
    def testEmptyCells(self):
        gameEngine = GameEngine(1, 7, 7)
        table = gameEngine.getTable()

        self.assertEqual(table.emptyCells, 49)
        gameEngine.playerMove(1, 1)
        self.assertEqual(table.emptyCells, 40)
        gameEngine.playerMove(4, 4)
        self.assertEqual(table.emptyCells, 31)
        gameEngine.playerMove(1, 4)
        self.assertEqual(table.emptyCells, 22)
        gameEngine.playerMove(4, 1)
        self.assertEqual(table.emptyCells, 13)
        gameEngine.playerMove(6, 0)
        self.assertEqual(table.emptyCells, 11)
        gameEngine.playerMove(0, 6)
        self.assertEqual(table.emptyCells, 9)
        gameEngine.playerMove(6, 3)
        self.assertEqual(table.emptyCells, 6)
        gameEngine.playerMove(3, 6)
        self.assertEqual(table.emptyCells, 3)
        gameEngine.computerMove()
        self.assertEqual(table.emptyCells, 0)
        self.assertTrue(table.isFull())
コード例 #7
0
ファイル: testTable.py プロジェクト: GhermanCristian/Sem1_FP
    def testGetFirstEmpty(self):
        gameEngine = GameEngine(1, 7, 7)
        table = gameEngine.getTable()

        self.assertEqual(table.getFirstEmpty(), (0, 0))
        gameEngine.playerMove(1, 1)
        self.assertEqual(table.getFirstEmpty(), (0, 3))
        gameEngine.playerMove(1, 4)
        self.assertEqual(table.getFirstEmpty(), (0, 6))
        gameEngine.playerMove(1, 6)
        self.assertEqual(table.getFirstEmpty(), (3, 0))
        gameEngine.playerMove(4, 1)
        self.assertEqual(table.getFirstEmpty(), (3, 3))
        gameEngine.playerMove(4, 4)
        self.assertEqual(table.getFirstEmpty(), (3, 6))
        gameEngine.playerMove(4, 6)
        self.assertEqual(table.getFirstEmpty(), (6, 0))
        gameEngine.playerMove(6, 1)
        self.assertEqual(table.getFirstEmpty(), (6, 3))
        gameEngine.playerMove(6, 4)
        self.assertEqual(table.getFirstEmpty(), (6, 6))
        gameEngine.computerMove()
        self.assertTrue(table.isFull())