def test_getValidMoves_TopLeftCornerWithBuilds(self): row = 0 col = 0 myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[0][1].level = 2 validMoves = myGameBoard.getValidMoves(row, col) self.assertEqual([[1, 0], [1, 1]], validMoves)
def test_buildLevel_UnderWorker(self): myGameBoard = gameBoard.GameBoard() myPlayer = player.Player(0) myPlayer.workers[0].row = 0 myPlayer.workers[0].col = 0 myGameBoard.gameBoard[0][0].occupied = True self.assertFalse(myGameBoard.buildLevel(myPlayer, 0, 0))
def test_getValidMoves_TopLeftCornerWithOpponent(self): row = 0 col = 0 myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[0][1].occupied = True validMoves = myGameBoard.getValidMoves(row, col) self.assertEqual([[1, 0], [1, 1]], validMoves)
def test_buildLevel_EmptyTile(self): myGameBoard = gameBoard.GameBoard() myPlayer = player.Player(0) myPlayer.workers[0].row = 0 myPlayer.workers[0].col = 0 myGameBoard.gameBoard[0][0].occupied = True self.assertTrue(myGameBoard.buildLevel(myPlayer, 0, 1))
def __init__(self): self.root = Tkinter.Tk() self.root.title("T3Bot") # self.root.geometry("300x300") self.window_width = self.root.winfo_height() self.window_height = self.root.winfo_width() self.gb = gameBoard.GameBoard() self.updateButtons()
def test_moveWorker_OnePosRightSameLevelInvalid(self): myPlayer = player.Player(0) myGameBoard = gameBoard.GameBoard() myPlayer.workers[0].row = 0 myPlayer.workers[0].col = 4 myPlayer.workers[0].level = 0 myGameBoard.gameBoard[0][0].occupied = True successful = myGameBoard.moveWorker(myPlayer, 0, 0, 5) self.assertFalse(successful and myGameBoard.gameBoard[0][4].occupied == True and myPlayer.workers[0].row == 0 and myPlayer.workers[0].col == 4 and myPlayer.workers[0].level == 0)
def test_moveWorker_OnePosRightUpTwoLevelsInvalid(self): myPlayer = player.Player(0) myGameBoard = gameBoard.GameBoard() myPlayer.workers[0].row = 0 myPlayer.workers[0].col = 0 myPlayer.workers[0].level = 0 myGameBoard.gameBoard[0][0].occupied = True myGameBoard.gameBoard[0][1].level = 2 successful = myGameBoard.moveWorker(myPlayer, 0, 0, 1) self.assertFalse(successful and myGameBoard.gameBoard[0][0].occupied == True and myPlayer.workers[0].row == 0 and myPlayer.workers[0].col == 1 and myPlayer.workers[0].level == 0)
def test_moveWorker_OnePosRightSameLevelValid(self): myPlayer = player.Player(0) myGameBoard = gameBoard.GameBoard() myPlayer.workers[0].row = 0 myPlayer.workers[0].col = 0 myPlayer.workers[0].level = 0 myGameBoard.gameBoard[0][0].occupied = True successful = myGameBoard.moveWorker(myPlayer, 0, 0, 1) self.assertTrue(successful and myGameBoard.gameBoard[0][0].occupied == False and myGameBoard.gameBoard[0][1].occupied == True and myPlayer.workers[0].row == 0 and myPlayer.workers[0].col == 1 and myPlayer.previousPositionWorker.row == 0 and myPlayer.previousPositionWorker.col == 0 and myPlayer.lastMovedWorker == 0)
def test_placeInitialWorker_InvalidPos(self): myPlayer = player.Player(0) myGameBoard = gameBoard.GameBoard() successful = myGameBoard.placeInitialWorker(myPlayer, 0, -1, 0) self.assertFalse(successful)
def test_getNeighboringPositions_Center(self): myWorker = worker.Worker() worker.row = 2 worker.col = 2 neighboringPositions = gameBoard.GameBoard().getNeighboringPositions(worker.row, worker.col) self.assertEqual([[1, 2], [1, 3], [1, 1], [2, 3], [2, 1], [3, 2], [3, 3], [3, 1]], neighboringPositions)
def test_getValidMoves_TopLeftCornerEmptyBoard(self): row = 0 col = 0 validMoves = gameBoard.GameBoard().getValidMoves(row, col) self.assertEqual([[0, 1], [1, 0], [1, 1]], validMoves)
def test_getNeighboringPositions_TopLeftCorner(self): myWorker = worker.Worker() worker.row = 0 worker.col = 0 neighboringPositions = gameBoard.GameBoard().getNeighboringPositions(worker.row, worker.col) self.assertEqual([[0, 1], [1, 0], [1, 1]], neighboringPositions)
def test_getNeighboringPositions_BottomRightCorner(self): myWorker = worker.Worker() worker.row = 4 worker.col = 4 neighboringPositions = gameBoard.GameBoard().getNeighboringPositions(worker.row, worker.col) self.assertEqual([[3, 4], [3, 3], [4, 3]], neighboringPositions)
def test_validatePosition_TopLeftCornerValidPos(self): self.assertTrue(gameBoard.GameBoard().validatePosition(0, 0))
def test_workersWillCollide_Collision(self): myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[2][2].occupied = True self.assertTrue(myGameBoard.workersWillCollide(2, 2))
def test_validateMoveLevel_DownOneLevelInvalid(self): myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[0][0].level = -1 self.assertFalse(myGameBoard.validateMoveLevel(1, 0, 0, 0))
def test_validateMoveLevel_UpTwoLevelsInvalid(self): myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[0][0].level = 2 myGameBoard.gameBoard[1][0].level = 0 self.assertFalse(myGameBoard.validateMoveLevel(1, 0, 0, 0))
def test_validatePosition_BottomEdgeInvalidPos(self): self.assertFalse(gameBoard.GameBoard().validatePosition(5, 0))
import player import gameBoard import random import minimax import time from numpy import inf if __name__ == '__main__': # Setup Game player1 = player.Player(0) player2 = player.Player(1) players = [player1, player2] myGameBoard = gameBoard.GameBoard() myGameBoard.printGameBoardWorkers(-1, -1, players) myMiniMax = minimax.MiniMax() # Initial worker placement # for playerNum in range(2): # for workerNum in range(2): # placedWorker = False # while placedWorker == False: # row = random.randint(0, 4) # col = random.randint(0, 4) # placedWorker = myGameBoard.placeInitialWorker(players[playerNum], workerNum, row, col) # myGameBoard.printGameBoardWorkers(-1, -1, players) myGameBoard.placeInitialWorker(players[0], 0, 0, 0) myGameBoard.placeInitialWorker(players[0], 1, 0, 1) myGameBoard.placeInitialWorker(players[1], 0, 1, 0) myGameBoard.placeInitialWorker(players[1], 1, 1, 1) for turnNum in range(100): print('TURN: ', turnNum)
def test_validatePosition_TopEdgeInvalidPos(self): self.assertFalse(gameBoard.GameBoard().validatePosition(-1, 0))
def test_validatePosition_RightEdgeInvalidPos(self): self.assertFalse(gameBoard.GameBoard().validatePosition(2, 5))
def test_validatePosition_BottomRightCornerValidPos(self): self.assertTrue(gameBoard.GameBoard().validatePosition(4, 4))
def test_placeInitialWorker_CenterInvalid(self): myPlayer = player.Player(0) myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[2][2].occupied = True successful = myGameBoard.placeInitialWorker(myPlayer, 0, 2, 2) self.assertFalse(successful and myGameBoard.gameBoard[2][2].occupied)
def test_workersWillCollide_NoCollision(self): myGameBoard = gameBoard.GameBoard() self.assertFalse(myGameBoard.workersWillCollide(2, 2))
def test_verifyValidBuild_tileMaxLevel(self): myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[0][0].level = 4 self.assertFalse(myGameBoard.verifyValidBuild(0, 0))
def test_validateMoveLevel_DownTwoLevelsValid(self): myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[0][0].level = 0 myGameBoard.gameBoard[1][0].level = 2 self.assertTrue(myGameBoard.validateMoveLevel(1, 0, 0, 0))
def test_verifyValidBuild_emptyTile(self): myGameBoard = gameBoard.GameBoard() self.assertTrue(myGameBoard.verifyValidBuild(0, 0))
def test_validateMoveLevel_UpOneLevelValid(self): myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[0][0].level = 1 self.assertTrue(myGameBoard.validateMoveLevel(1, 0, 0, 0))
def copyGameBoard(self, currentGameBoard): customGameBoard = gameBoard.GameBoard() for row in range(len(currentGameBoard.gameBoard)): for col in range(len(currentGameBoard.gameBoard[row])): customGameBoard.gameBoard[row][col] = copy.deepcopy(currentGameBoard.gameBoard[row][col]) return customGameBoard
def test_verifyValidBuild_tileWithWorker(self): myGameBoard = gameBoard.GameBoard() myGameBoard.gameBoard[0][0].occupied = True self.assertFalse(myGameBoard.verifyValidBuild(0, 0))