def test_checkCollision_leaves_cycles_alive_with_no_collision(self):

        cycleList = [LightCycle.LCycle(2, 3, "E", (255, 0, 0)), LightCycle.LCycle(5, 4, "W", (0, 255, 0))]

        boardX, boardY = 100, 100

        collisionChecker.checkCollision(cycleList, boardX, boardY)

        for cycle in cycleList:
            self.assertEquals(cycle.isAlive(), True)
    def test_checkCollision_kills_cycle_if_it_goes_off_the_board_1(self):

        cycleList = [LightCycle.LCycle(1, 1, "W", (255, 0, 0)), LightCycle.LCycle(5, 4, "W", (0, 255, 0))]

        boardX, boardY = 100, 100
        cycleList[0].goStraight()
        cycleList[0].goStraight()

        collisionChecker.checkCollision(cycleList, boardX, boardY)

        self.assertEquals(cycleList[0].isAlive(), False)
        self.assertEquals(cycleList[1].isAlive(), True)
    def test_checkCollision_kills_cycles_if_they_collide(self):

        boardX, boardY = 100, 100

        cycleList = [LightCycle.LCycle(1, 1, "E", (255, 0, 0)), LightCycle.LCycle(3, 1, "W", (0, 255, 0))]

        cycleList[0].goStraight()
        cycleList[1].goStraight()

        collisionChecker.checkCollision(cycleList, boardX, boardY)

        self.assertEquals(cycleList[0].isAlive(), False)
        self.assertEquals(cycleList[1].isAlive(), False)
    def test_checkCollision_kills_cycle_if_it_collides_with_a_different_trail(self):

        boardX, boardY = 100, 100

        cycleList = [LightCycle.LCycle(1, 2, "E", (255, 0, 0)), LightCycle.LCycle(3, 1, "S", (0, 255, 0))]

        cycleList[1].goStraight()
        cycleList[1].goStraight()
        cycleList[0].goStraight()
        cycleList[0].goStraight()

        collisionChecker.checkCollision(cycleList, boardX, boardY)

        self.assertEquals(cycleList[0].isAlive(), False)
        self.assertEquals(cycleList[1].isAlive(), True)
def main():
	#board size
	boardWidth = 40
	boardHeight = 40
	#set up gui
	gui = lcGUI.lcGUI(boardWidth,boardHeight,7, 60) #board width, height, scaleFactor, fps
	
	#set up units
	player1cycle = LCycle(10, 20, 'E', (255,0,0))
	player2cycle = LCycle(30, 20, 'W', (0,255,0))
	cycleList = [player1cycle, player2cycle]

	#setupAI
	player1AI = p1AI(player1cycle, player2cycle, boardWidth, boardHeight)
	player2AI = p2AI(player2cycle, player1cycle, boardWidth, boardHeight)

	gameOver = False
	while not gameOver:

		gui.handleEvents()

		#get player moves
		p1move = player1AI.getMove()
		p2move = player2AI.getMove()
		
		#move players
		movePlayer(player1cycle, p1move)
		movePlayer(player2cycle, p2move)
		
		#check for collisions
		collisionChecker.checkCollision(cycleList, boardWidth,boardHeight)

		#draw to the screen
		gui.draw(cycleList)
		
		#check to see if cycle is dead
		for cycle in cycleList:
			if cycle.isAlive() != True:
				gameOver = True
			
	while not gui.keyPressed():
		pass
	
	return 0