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))
Beispiel #5
0
 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))
Beispiel #19
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))
Beispiel #29
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))