public static void RecountMoving()
 {
     for (int i = 0; i < mainStatic.regiment_stat.Count; i++)
     {
         if (mainStatic.regiment_stat[i].moveCell == true)
         {
             /// Убрать из старой клетки
             mypai NewPai;
             NewPai.command = mainStatic.regiment_stat[i].command;
             NewPai.regNum  = i;
             int       cellNumber = mainStatic.regiment_stat[i].cellX + mainStatic.regiment_stat[i].cellZ * M;
             cell_data NewCell    = new cell_data();
             // Переложим чтобы не было пустых
             // Кладем в буфер все кроме двигаемого
             for (int t = 0; t < cell[cellNumber].data.Count; t++)
             {
                 if (t != i)
                 {
                     mypai temp;
                     temp.regNum  = cell[cellNumber].data[t].regNum;
                     temp.command = cell[cellNumber].data[t].command;
                     NewCell.data.Add(temp);
                 }
             }
             cell[cellNumber].data.Clear();
             cell[cellNumber] = NewCell;
             /// Положить в новую клетку
             mypai tempp;
             tempp.command = mainStatic.regiment_stat[i].command;
             tempp.regNum  = i;
             cell[(mainStatic.regiment_stat[i].cellX + mainStatic.regiment_stat[i].cellZ * M)].data.Add(tempp);
         }
     }
 }
 static int CellSize = 20;// Если фронты не большие
 /// от -500 до 500
 public static void  mapCellconstr()
 {
     /// объявляем список клеток
     cell = new List <cell_data>();
     for (int w = 0; w < mapCell.M * mapCell.N; w++)
     {
         cell_data data = new cell_data();
         cell.Add(data);
     }
 }
    /// <summary>
    /// Функция, которая дает список номеров полков, которые находятся рядом (длдя расчета видимости)
    /// </summary>
    /// <returns>The near reg.</returns>
    /// <param name="num">Number.</param>
    public static List <int> GetNearReg(int num)
    {
        List <int> res = new List <int> ();
        /// Вытаскиваем номер ячейки, где лежит полк
        Vector2 temp = GetCell(num);
        int     x    = (int)temp.x;
        int     y    = (int)temp.y;
        /// Как далеко смотрим по сторонам
        int DEF = 5;

        for (int i = -DEF; i < DEF; i++)
        {
            for (int k = -DEF; k < DEF; k++)
            {
                //Получаем данные из конкретной клетки
                cell_data r = GetCell(x + i, y + k);
                for (int t = 0; t < r.data.Count; t++)
                {
                    res.Add(r.data[t].regNum);
                }
            }
        }
        return(res);
    }