.NET 4.x Получить список координат всех доступных объектов около указанного объекта - C#
Формулировка задачи:
Есть матрица объектов размера NxM.
Необходимо как то получить список координат всех доступных объектов около указанного объекта.
Причем количество шагов до второго объекта не должно привышать 15
Для примера картинка что надо. По другому сам не могу придумать как сформулировать.
Красным отметил стартовую точку. Серым объекты список координат которых надо получить, Чёрное это стена.
Радиус 4, количество шагов не более 15
Картинки ниже.
Собственно псевдакод самого массива
По диагонали ходить можно , менять исходный массив нельзя...
class Obj{} class Stone:Obj{}; class Grass:Obj{}; class Animal:Obj{}; Obj[,] plant = new Obj[50,25];
Решение задачи: «.NET 4.x Получить список координат всех доступных объектов около указанного объекта»
textual
Листинг программы
class Program { public class Point { public Point(Int32 i, Int32 j) { Y = j; X = i; } public Int32 X { get; private set; } public Int32 Y { get; private set; } } class Obj { public override string ToString() { return "0 "; } } class Stone : Obj { public override string ToString() { return "8 "; } }; class Grass : Obj { public override string ToString() { return "1 "; } }; class Animal : Obj { public override string ToString() { return "2 "; } }; static readonly Obj[,] Plant = new Obj[25, 25]; static void Main(string[] args) { for (var x = 0; x < Plant.GetLength(0); x++) for (var y = 0; y < Plant.GetLength(0); y++) Plant[x, y] = new Obj(); Plant[10, 10] = new Animal(); for (var x = 0; x < Plant.GetLength(0); x++, Console.WriteLine()) for (var y = 0; y < Plant.GetLength(0); y++) { Console.Write(Plant[x, y].ToString()); } GetArea(10, 10, 4, 15); Console.ReadLine(); } private static List<Point> GetArea(Int32 x, Int32 y, Int32 radius, Int32 step) { var temp = new List<Point>(); return temp; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д