Parking Simulation — это учебный проект, реализующий дискретно-событийную модель работы парковки. Пользователь задаёт количество парковочных мест, интенсивность потока машин (λ), стратегию очереди и скорость симуляции. Программа визуализирует движение автомобилей, занятость парковки, очередь и генерирует журнал событий.
Проект создан в рамках дисциплины «Технологии программирования».
-
📦 Генерация автомобилей с заданной интенсивностью (λ машин/час).
-
🅿️ Моделирование поиска места:- машины становятся в очередь,
- назначаются на свободное место,
- выполняют заезд, стоянку, выезд.
-
👀 Визуализация парковки — движение машин по маршрутам.
-
📝 Журнал событий (Event log): ARRIVE, QUEUE_WAIT, ASSIGN_PLACE, TAKE_FROM_QUEUE, DEPART
-
📊 Метрики в реальном времени:
- число мест,
- занятость,
- время симуляции,
- длина очереди.
-
📁 Автоматический экспорт событий в лог-файлы (формат
parking_log_YYYY-MM-DD_HH-MM-SS.csv). -
🔎 Открытие папки с логами одной кнопкой.
-
Пользователь нажимает Старт.
-
Каждый интервал времени, заданный λ, создаётся новая машина.
-
Машина помещается в очередь.
-
При появлении свободного места:
- выбирается машина с наивысшим приоритетом,
- назначается парковочное место,
- машина визуально заезжает и стоит указанное время.
-
После выезда освобождённое место передаётся следующей машине из очереди.
-
Все события фиксируются в журнале и UI.
| Файл | Описание |
|---|---|
main.gd |
Управление симуляцией: генерация машин, очередь, назначение мест |
car.gd |
Логика отдельной машины: заезд, стоянка, выезд |
parking_lot.gd / place.gd` |
Работа с парковочными местами |
ui.gd |
Слайдеры, кнопки, вывод журнала, метрик |
Journal.gd |
Логирование событий, запись в файл с буферизацией |
Открыть проект в Godot 4 → Запустить сцену main.tscn.
- Количество мест — задаёт размер парковки.
- λ(t) — интенсивность потока автомобилей (машин в час).
- Скорость симуляции — ускоряет или замедляет течение времени.
- Пауза / Рестарт — управление симуляцией.
- Открыть папку с логами — открывает лог-файлы симуляции.
- События — отображает последние строки журнала в реальном времени.
- Метрики — число мест, занятость, время симуляции, длина очереди.
Логи автоматически сохраняются в:
user://parking_log_YYYY-MM-DD_HH-MM-SS.csv
Пример строки:
ASSIGN_PLACE;Car128382; 3606.2
TAKE_FROM_QUEUE;Taxi743357; 3606.2
DEPART;Disabled16594; 3639.5
Открыть папку с логами можно из UI.
- Чтобы открыть проект, необходим Godot Engine 4.5.1.
- Для обычного использования, ОС: Windows
- Полная реализация распределений времени стоянки (E1, E2, E3).
- Добавление стратегий очереди (D1/D2/D3) в интерфейс.
- Более точная реализация λ(t) по кусочным интервалам суток.
- Модуль сравнения нескольких сценариев.
Данило Драгович Проект для курса «Технологии программирования», НИТУ МИСИС.
