Решение задачи «Авиаразведка» на C#

C#

Разработать программу «Авиаразведка». Создать условную карту местно-
сти размером N x N. В ячейках карты расположить некоторое количество раз-
личных целей (например, танки, пушки, склады с горюче-смазочными материа-
лами и др.). Из произвольной точки, находящейся на границе карты, стартует самолёт-разведчик. Достигнув противоположной границы карты, он меняет курс и
летит в обратном направлении. Так продолжается до тех пор, пока не будет по-
крыта вся карта местности. Самолёт-разведчик фиксирует цели, чьи координаты
совпадают с его координатами и по достижении границ карты сообщает в штаб
информацию о типе и количестве обнаруженных целей. Процесс полёта самолета
и расположение целей визуализировать с помощью символов псевдографики.

Решение задачи "Авиаразведка" на C#

Шаг 1 Создание класса Карта Map

Для создания карты N x M добавим в проект класс Map содержащие поля:

  • fields (char[,]) — Двумерный массив символов
  • rows (int) — кол-во строк, доступен только для чтения
  • columns (int) -кол-во столбцов, доступен только для чтения
  • Field (Dictionary<int, char>) — Словарь номер-символ, для генерации значений поля

Конструктор класса принимает два числа типа int, количество строк и столбцов, сохраняет их и запускает метод для генерации карты метод GenerateMap.

Так же добавим индексатор для получения доступа к массиву

Шаг 2 Создание класса Самолет (Plane)

Создадим объект самолет с параметрами x и y, где хранится текущие координаты самолета. Свойство CurLine — возвращает значение текущей строки.

Свойство ShotMap — Массив с картой

allObjects — список для сохранения всех «сфотографированных» объектов.

При создании класса, конструктор заполняет массив ShotMap символами #.

Перед классом нужно объявить делегат dlgPlane

public delegate void dlgShot(object sender);

 

Шаг 3 Код в Main()

Объявим переменные для паузы SLEEP в мс. и размеры поля. После этого можно запускать наш самолет в полет нажав F5.

Добавить комментарий