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