Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

Maze-generator

Генератор лабиринта и его визуализация (поддержка файлов)

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Maze Generator

Десктопное приложение на Delphi (VCL) для генерации и поиска решения в лабиринтах.

Технологии

  • Язык: Delphi (Object Pascal)
  • UI: VCL (Visual Component Library)
  • Платформа: Windows
  • Форматы: TXT, XLSX, BMP, PNG, JPEG

Архитектура

Модули

Модуль Назначение
uMain Главное меню — запуск, информация о программе и авторе
uProgramRun Экран настроек — размеры, цвета, позиции старта/финиша, загрузка
uShowMaze Отображение лабиринта — меню решить/сохранить/удалить путь
uPrim Генерация лабиринта — алгоритм Прима
uBFS Поиск пути — BFS (Breadth-First Search)
uDFS Поиск пути — DFS (Depth-First Search)
uAStar Поиск пути — A* (A-Star с эвристикой Пифагора)
uMyProcedures Общие процедуры: загрузка/генерация/поиск/отрисовка пути
uSharedData Общие типы (TMap, TWay, TQueue) и глобальные переменные

Data Flow

  1. Пользователь задаёт параметры → Generate → алгоритм Прима → лабиринт на TPaintBox
  2. Solve → последовательно запускаются BFS, A*, DFS → каждый рисует путь своим цветом → замер времени
  3. Загрузка: .txt / .xlsx → парсинг в TMap → отображение
  4. Сохранение: .bmp / .png / .jpeg / .xlsx / .txt

Структуры данных

  • TMap = Array of Array of Char — сетка лабиринта (x — стена, 0 — проход, S — старт, E — финиш)
  • TAlgorArray = Array of Array of Integer — массив расстояний для алгоритмов поиска
  • TWay — связный список (путь, найденный A*)
  • TQueue — двунаправленный список (очередь для BFS/DFS)

Возможности

Генерация

  • Размеры лабиринта от 3×3 до 100×100
  • Позиция старта и финиша: на краю или внутри лабиринта

Кастомизация

  • Цвет фона (проходов)
  • Цвет стен
  • Цвет пути для каждого алгоритма (BFS / A* / DFS)
  • Валидация конфликтов цветов (одинаковые цвета подсвечиваются предупреждением)

Поиск решения

  • BFS — находит кратчайший путь
  • DFS — ищет путь в глубину
  • A* — эвристический поиск (евклидово расстояние)
  • Замер времени выполнения каждого алгоритма
  • Возможность удалить найденный путь

Загрузка

  • .txt — данные лабиринта
  • .xlsx — Excel 2007+

Сохранение

  • .bmp — растровое изображение
  • .png — PNG
  • .jpeg — JPEG
  • .xlsx — Excel 2007+
  • .txt — данные лабиринта

Сборка

Откройте MazeGenerator.dpr (или .dproj) в Embarcadero Delphi и нажмите Run (F9).

Требования:

  • Embarcadero Delphi (любая версия с VCL)
  • Windows
  • Для работы с Excel требуется установленный Microsoft Excel (OLE Automation)

Лицензия

См. LICENSE.