Beispiel #1
0
        /// <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;
                        }
                    }
                }
            }
        }
Beispiel #2
0
        /// <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 ();
        }
Beispiel #3
0
 /// <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;
 }
Beispiel #4
0
 internal Logistics(Mind m)
 {
     mind = m;
 }
Beispiel #5
0
 /// <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 );
 }
Beispiel #6
0
 internal Logistics(Mind mind)
 {
     this.mind = mind;
 }
Beispiel #7
0
 ///<summary> обратный вызов
 ///</summary>
 internal void callBack(Mind _mind)
 {
     this.mind = _mind;
 }