Skip to content

Latest commit

 

History

History
40 lines (31 loc) · 2.61 KB

NOTE.md

File metadata and controls

40 lines (31 loc) · 2.61 KB

Описание 📃

Написать программу с GUI интерфейсом, которая выполнит поиск и отображение пути от точки A до точки B, выбранные пользователем.

Поле, в котором выполняется поиск пути представляет собой прямоугольник разделенный на "квадраты". Ширина и высота поля задается пользователем (в "квадратах").

Каждый "квадрат" может быть либо доступным для движения, либо занят стеной. Задача состоит в поиске пути от точки A до точки B с обходом препятствий (смотри рисунок).

Главное окно программы

Требования

  • По нажатию кнопки "Generate" должно создаваться поле и случайным образом заполняться препятствиями.
  • Использовать поиск в глубину или поиск в ширину.
  • Клик по "квадрату" - установка точки A или B.
  • Для отрисовки поля использовать QGraphicsScene.
  • Масштабирование поля (например, колесом мыши. Событие WheelEvent).
  • Создать конфигурационный файл с местоположением главного окна (использовать QSettings).
  • Приложение должно проверять введённые пользователем данные.
  • При возникновении ошибок должно появляться окно с сообщением (использовать QMessageBox).

Пожелания

  • Реализовать поиск пути в отдельном потоке.
  • Отображение пути от точки A до любой точки в момент наведения на нее курсора (событие MouseMove).

Сборка и запуск

  • Qt 5.15.2, MinGW 8.1.0
  • Qt 6.5.0, MinGW 11.2.0

Источники

  • QGraphicsView zooming in and out under mouse position using the mouse wheel тут
  • Алгоритм "поиск в ширину" тут