public CState(IAPI Api) { API = Api; MapWidthVal = API.getMaxX() - API.getMinX() + 1; MapHeightVal = API.getMaxY() - API.getMinY() + 1; Map = new CMap(MapWidthVal, MapHeightVal, API.endAfterTime()); Map.ReadMap(API); MyHealth = API.myHealth(); MyPoints = API.myPoints(); MyCoord.Set(API.getCoordOfMe()); PredStep.Set(Steps.STEP, MyCoord); }
public void ReadMap(IAPI api) { CCoord coord = new CCoord(); for (int x = 0; x < Width; x++) for (int y = 0; y < Height; y++) { coord.Set(x, y); this[x, y] = api.getTypeOfField(coord); } if (!MyCoord.EqualsXY(api.getCoordOfMe().X0, api.getCoordOfMe().Y0)) throw new Exception("Ошибка в API. Несоответствие данных"); CorrectEndTimeout(api.endAfterTime()); }