def Run(self): for gamepair in self._TestsKeys: try: sleep(2) firstPlayer = self._InstanceCreator( gamepair[0], self._BotsData[gamepair[0]]) secondPlayer = self._InstanceCreator( gamepair[1], self._BotsData[gamepair[1]]) gamecontroller = GameController(self._ConfigProvider, firstPlayer, secondPlayer) if not gamecontroller.valid: print("Invalid game controller") else: print( f"Game between {gamepair[0]} and gamepair{gamepair[1]}" ) starttime = time.time() gamecontroller.Run() endtime = time.time() print( f"Game took {endtime-starttime} seconds Winner={gamecontroller.VictoryReason.winner} WinnignReason={gamecontroller.VictoryReason.winningireason}" ) except: print(sys.exc_info())
def test_GameController_SimpleRun_NoWinner(self): sleep(2) # Time in seconds. playerfacade1=NoMovePlayerFacade() playerfacade2=NoMovePlayerFacade() gamecontroller = GameController(self._ConfigProvider,playerfacade1,playerfacade2) gamecontroller.Run() self.assertTrue(gamecontroller.VictoryReason.winningireason==WinnigReason.NO_WIN, "OK") self.assertTrue(gamecontroller.VictoryReason.winner==WinnigPlayer.NO_WINNER, "OK")
def test_GameController_Exception(self): sleep(2) # Time in seconds. playerfacade1 = NoMovePlayerFacade() playerfacade2 = ExceptionThrowingPlayerFacade(4) gamecontroller = GameController(self._ConfigProvider, playerfacade1, playerfacade2) gamecontroller.Run() self.assertTrue(gamecontroller.VictoryReason.winningireason == WinnigReason.PLAYER_2_CRASH, "OK") self.assertTrue(gamecontroller.VictoryReason.winner == WinnigPlayer.PLAYER_1, "OK")
def test_GameController_SimpleRun_Score(self): sleep(2) # Time in seconds. playerfacade1 = NoMovePlayerFacade() playerfacade2 = NoMovePlayerFacade() # SetPlayer 1 To threatposition self._ConfigProvider.addValue('Player1.Config', 'StartPositionX', '7') self._ConfigProvider.addValue('Player1.Config', 'StartPositionY', '3') gamecontroller = GameController(self._ConfigProvider, playerfacade1, playerfacade2) gamecontroller.Run() self.assertTrue(gamecontroller.VictoryReason.winningireason == WinnigReason.NO_WIN, "OK") self.assertTrue(gamecontroller.VictoryReason.winner == WinnigPlayer.NO_WINNER, "OK")
def test_GameController_SimpleRun_Destruction(self): sleep(2) # Time in seconds. playerfacade1 = NoMovePlayerFacade() playerfacade2 = NoMovePlayerFacade() # SetPlayer 1 To threatposition self._ConfigProvider.addValue('Player1.Config', 'StartPositionX', '2') self._ConfigProvider.addValue('Player1.Config', 'StartPositionY', '2') gamecontroller = GameController(self._ConfigProvider, playerfacade1, playerfacade2) gamecontroller.Run() self.assertTrue(gamecontroller.VictoryReason.winningireason == WinnigReason.DESTRUCTION, "OK") self.assertTrue(gamecontroller.VictoryReason.winner == WinnigPlayer.PLAYER_1, "OK")
def test_GameController_Threatend(self): sleep(2) # Time in seconds. self._ConfigProvider.addValue('Game.Config', 'MapFileName', self._MovingPath) self._ConfigProvider.addValue('Player1.Config', 'StartPositionX', '0') self._ConfigProvider.addValue('Player1.Config', 'StartPositionY', '0') self._ConfigProvider.addValue('Player2.Config', 'StartPositionX', '2') self._ConfigProvider.addValue('Player2.Config', 'StartPositionY', '2') playerfacade1 = NoMovePlayerFacade() playerfacade2 = EvadingPlayerFacade() gamecontroller = GameController(self._ConfigProvider, playerfacade1, playerfacade2) gamecontroller.Run() self.assertTrue(playerfacade2.Evades>0, "OK")
def test_GameController_SimpleRun_Score_Chack(self): sleep(2) # Time in seconds. playerfacade1 = NoMovePlayerFacade() playerfacade2 = NoMovePlayerFacade() # SetPlayer 1 To threatposition self._ConfigProvider.addValue('Player1.Config', 'StartPositionX', '7') self._ConfigProvider.addValue('Player1.Config', 'StartPositionY', '3') self._ConfigProvider.addValue('Game.Config', 'TotalPlayTime', '10') self._ConfigProvider.addValue('RestPoint.Config', 'RestPointTimeToProfit', '3') self._ConfigProvider.addValue('RestPoint.Config', 'RestPointTimeToRegenerate', '5') gamecontroller = GameController(self._ConfigProvider, playerfacade1, playerfacade2) gamecontroller.Run() self.assertTrue(gamecontroller.VictoryReason.winner==WinnigPlayer.NO_WINNER, "OK") self.assertTrue(gamecontroller.VictoryReason.winningireason==WinnigReason.NO_WIN, "OK") self.assertTrue(gamecontroller.Player_1_State.score == -5, "OK")
def test_GameController_SameMovement(self): sleep(2) # Time in seconds. self._ConfigProvider.addValue('Game.Config', 'MapFileName', self._NoControllingPointsMap) self._ConfigProvider.addValue('Player1.Config', 'StartPositionX', '0') self._ConfigProvider.addValue('Player1.Config', 'StartPositionY', '0') self._ConfigProvider.addValue('Player2.Config', 'StartPositionX', '2') self._ConfigProvider.addValue('Player2.Config', 'StartPositionY', '2') playerfacade1 = SamePointMovingPlayerFacade() playerfacade2 = SamePointMovingPlayerFacade() gamecontroller = GameController(self._ConfigProvider, playerfacade1, playerfacade2) gamecontroller.Run() self.assertTrue(gamecontroller.VictoryReason.winningireason == WinnigReason.GAME_TIME_OUT, "OK") self.assertTrue(gamecontroller.VictoryReason.winner == WinnigPlayer.NO_WINNER, "OK") self.assertTrue(gamecontroller.Player_1_State.score == 0, "OK") self.assertTrue(gamecontroller.Player_2_State.score == 0, "OK")
def test_GameController_TestState(self): sleep(2) # Time in seconds. playerfacade1 = NoMovePlayerFacade() playerfacade2 = NoMovePlayerFacade() gamecontroller = GameController(self._ConfigProvider, playerfacade1, playerfacade2) gamecontroller.Run() gamestate1 = playerfacade1.MyEngine.GetGameState() gamestate2=playerfacade2.MyEngine.GetGameState() self.assertTrue(playerfacade1.MyEngine.Dimensions.width == 10, "OK") self.assertTrue(playerfacade1.MyEngine.Dimensions.height == 10, "OK") self.assertTrue(gamestate1.MyPlayer.timeinposition == 20, "OK") self.assertTrue(gamestate1.EnemyPlayer.timeinposition == 20, "OK") self.assertTrue(gamestate1.playingtime==20, "OK") self.assertTrue(gamestate2.MyPlayer.timeinposition == 20, "OK") self.assertTrue(gamestate2.EnemyPlayer.timeinposition == 20, "OK") self.assertTrue(gamestate2.playingtime == 20, "OK")
def test_GameController_Load(self): sleep(2) # Time in seconds. playerfacade1=NoMovePlayerFacade() playerfacade2=NoMovePlayerFacade() gamecontroller = GameController(self._ConfigProvider,playerfacade1,playerfacade2) self.assertTrue(gamecontroller.valid, "OK")