/// <summary> /// Init batle game between two tanks set on a 2d map /// </summary> /// <param name="map">Map is stored as int map; value 0 means empty, other value (1) means not empty</param> /// <param name="blueTankModel">First tank in battlefield</param> /// <param name="posBlue">2 length array represents postion of blue tank on map</param> /// <param name="redTankModel">second tank in battlefield</param> /// <param name="posRed">2 length array represents postion of red tank on map</param> /// <param name="maxTurns">Maximum number of game's turns</param> public TankBattleGame(int[][] map, TankModel blueTankModel, int[] posBlue, TankModel redTankModel, int[] posRed, int maxTurns = 100) { MaxTurns = maxTurns; GameMap = map; var validator = new TankModelValidator(); var resultBlueTankModel = validator.Validate(blueTankModel); if (!resultBlueTankModel.IsValid) { throw new Exception($"Tank model failed, Exception message{resultBlueTankModel.Errors[0].ErrorMessage}"); } var resultRedTankModel = validator.Validate(redTankModel); if (!resultRedTankModel.IsValid) { throw new Exception($"Tank model failed, Exception message{resultRedTankModel.Errors[0].ErrorMessage}"); } BlueTank = new CombatTank(posBlue[0], posBlue[1], blueTankModel); RedTank = new CombatTank(posRed[0], posRed[1], redTankModel); PathAlgo = new AStar(); }
public CombatTank(int x, int y, TankModel m) : base(m.ModelName, m.Speed, m.GunRange, m.GunPower, m.ShieldLife) { PosX = x; PosY = y; }