private Player InitManualPlayer() { //return null; var sensor = new Sensor(new SensorModel(Game.SensingDistance, 0.0, 0.0, 0.0)); //TODO manual does not need decision maker. ManualPlayer should inherit from player var adm = new SimpleHighLevelDecisionMaker(null, new List <IActionPlanner> { new SimpleMotionPlanner() }); var motionActuator = new MotionActuator(MotionActuatorModel.Perfect); var shootingActuator = new ShootingActuator(ShootingActuatorModel.Standart); return(new Player(_world, Config.ManualStartPosition, sensor, new List <IActuator> { motionActuator, shootingActuator }, adm) { GameIdentity = Entity.GAME_IDENTITY.MANUAL, Id = ++_idCounter }); }
private Player InitBotPlayer() { var sensor = new Sensor(new SensorModel(Game.SensingDistance, 0.0, 0.0, 0.0)); var planners = new List <IActionPlanner> { new TargetedMotionPlanner(Config.TargetPosition, Config.TurningResolutionFactorOfPI * Math.PI) }; var offlineGameClock = new GameClock(); var offlineGame = new Game(null, null, new List <Player>(), new List <Entity>(), null, offlineGameClock); var adm = new HighLevelDecisionMaker(null, offlineGame, offlineGameClock, planners, new PlayerFactory(_world), Config.NumberOfForwardLookingOfflineMoves); var motionActuator = new MotionActuator(MotionActuatorModel.Perfect); var shootingActuator = new ShootingActuator(ShootingActuatorModel.Standart); //TODO enforce gameentity and id in ctor return(new Player(_world, Config.BotStartPosition, sensor, new List <IActuator> { motionActuator }, adm) { GameIdentity = Entity.GAME_IDENTITY.BOT, Id = ++_idCounter }); }