Пример #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;
                        }
                    }
                }
            }
        }
Пример #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 ();
        }