/// <summary>/// Конструктор /// </summary> internal Radar(Mind mind,IAPI api) { map = new MapSector[api.getMaxX()+1,api.getMaxY()+1]; // создается поле для сканирования map.Initialize (); this.mind = mind; this.api = api; recycleSectors = new Queue<MapSector>(); ICoordinates xy = Helper.Coordinates ( api.getMinX (),api.getMinY () ); for (int i = api.getMinX (); i <= api.getMaxX (); i++) { for (int j = api.getMinY (); j <= api.getMaxY (); j++) { Helper.otherPositionOfThis ( xy,i,j ); if (api.isNorm(xy)) { map[i, j] = new MapSector(xy, xy, 0); if (api.getTypeOfField(xy) == TypesOfField.WALL) { map[i, j].type = TypesOfField.WALL; } else { map[i, j].type = TypesOfField.NOTHING; } } } } }
/// <summary> создается поле, и забиваются расположения стен и всего остального /// </summary> internal Radar(Mind mind,IAPI api) { map = new Map (api.getMinX(),api.getMinY(), api.getMaxX()+1,api.getMaxY()+1); // создается поле для сканирования this.mind = mind; // добавляются ссылки для обратного вызова this.api = api; recycleSectors = new Queue<MapSector>(); ICoordinates xy = StepsAndCoord.Coordinates ( api.getMinX (),api.getMinY () ); for (int i = api.getMinX (); i <= api.getMaxX (); i++) { // проход по карте построчно for (int j = api.getMinY (); j <= api.getMaxY (); j++) { StepsAndCoord.otherPositionOfThis ( xy,i,j ); if (api.isNorm(xy)) { map[i, j] = new MapSector(); if (api.getTypeOfField(xy) == TypesOfField.WALL) { map[i, j].type = TypesOfField.WALL; map[i,j].xy = StepsAndCoord.Coordinates ( i,j ); } else { map[i,j].xy = StepsAndCoord.Coordinates ( i,j ); map[i,j].type = api.getTypeOfField ( xy ); } } } } xFunct (); }
/// <summary>конструктор /// </summary> /// <param name="needElement">тип ячейки к которой необходимо проложить маршрут</param> /// <param name="startPoint">отправная точка</param> /// <param name="stepCount">максимальная удаленность объекта</param> /// <returns></returns> internal Logistics(ICoordinates xy,int gunTimer,int roadLen,Logistics back) { this.len = roadLen; this.m_gunTimer = gunTimer; this.m_xy = xy; this.m_back = back; this.mind = mind; }
internal Logistics(Mind m) { mind = m; }
/// <summary> /// получение ссылки на реализацию методов интерфейсов /// </summary> public void Initialize(Interfaces.IAPI x_api) { m_api = x_api; mind = new Mind ( api.endAfterTime (),api.getCoordOfMe () ); radar = new Radar ( mind,api ); }
internal Logistics(Mind mind) { this.mind = mind; }
///<summary> обратный вызов ///</summary> internal void callBack(Mind _mind) { this.mind = _mind; }