Exemple #1
0
 public void AddAnt(int col, int row, int team)
 {
     if (team == 0)
     {
         var ant = new MyAnt { X = col, Y = row };
         var index = MyAnts.BinarySearch(ant);
         if (index < 0)
         {
             MyAnts.Insert(~index, ant);
             NewAnt(ant);
             ant.Live = true;
             ant.Home = Hills.Where(x => x.DirectDistanceTo(ant) == Hills.Min(h => h.DirectDistanceTo(ant))).First();
         }
         else
         {
             ApplyAntVision(ant);
             MyAnts[index].Live = true;
         }
     }
     else
     {
         var ant = new Ant { X = col, Y = row, Team = team };
         EnemyAnts.Add(ant);
     }
     Map[col, row] = Tile.Ant;
 }
Exemple #2
0
 void NewAnt(MyAnt ant)
 {
     FillVisionMap(ant);
     foreach (var loc in FullVision)
     {
         var point = loc + ant;
         var tile = GetTile(point);
         if (tile == Tile.Unseen)
             SetTile(point, Tile.Land);
     }
 }
Exemple #3
0
 void ApplyAntVision(MyAnt ant)
 {
     FillVisionMap(ant);
     foreach (var loc in MoveVision)
     {
         var point = loc + ant;
         var tile = GetTile(point);
         if (tile == Tile.Unseen)
             SetTile(point, Tile.Land);
     }
 }