Exemple #1
0
 private static IEnumerable <Point> GetNeighbours(Point from, IWorld world)
 {
     //А если перемешивать всех соседей перед тем как вернуть, то поведение мух визуально будет естественнее.
     for (int x = from.X - 1; x <= from.X + 1; ++x)
     {
         for (int y = from.Y - 1; y <= from.Y + 1; ++y)
         {
             var point = new Point(x, y);
             if (world.InsideWorld(point) && !(x == from.X && y == from.Y) && (x == from.X || y == from.Y))
             {
                 if (!world.Contains <Wall>(point) && !world.Contains <Source>(point))
                 {
                     yield return(new Point(x, y));
                 }
             }
         }
     }
 }