Программа, моделирующая движения автомобилей на автостраде «HighWay»
Описание программы
Программа предназначена для моделирования поведения автомобилей на 3-х полосной автодороге в условиях наличия системы управления торможением автомобилей (отслеживающая аварийные ситуации и, в случае принятия соответствующего решения, применяющая экстренное торможение).
Программа была написана учениками лицея № 000 Тимофеевым Кириллом и Парахудой Андреем на языке программирования C++ с использованием открытой библиотеки SDL (исходный код находится в файле «HighWay. cpp» и поставляется внутри архива с программой). Она совмещает в себе графический интерфейс (для удобства пользователя), а так же запись данных в текстовой лог. Об управлении возможностями программы ниже, в соответствующем разделе). Обзор графического интерфейса представлен ниже.
Программа скомпилирована на ОС Windows XP SP 2 и предназначена для запуска на совместимых ОС/платформах.
Структура GUI (графического интерфейса):
- Верхний левый угол — панель управления (о ней подробнее в соответствующем разделе)
Основная часть экрана — 3х полосная автодорога с схематично отображенными автомобилями ( реальные их размеры не соотносятся с их схематичным изображением, потому как все вычисления происходят алгебраически, а GUI используется только для редактирования характеристик и удобства пользователя). Установка программы
Установка программы состоит в извлечении (по надобности) файлов программы из архива ( исполняемого файла программы, - dll библиотек, необходимых для запуска исполняемого файла и папки «source», содержащей файлы, также необходимые для корректного отображение программы).
Запуск программы производится путем запуска исполняемого файла программы (HighWay. exe). О выходе из программы будет сказано ниже (в разделе, посвященном эксплуатации программы).
Эксплуатация программы
Программа поддерживает управление ее возможностями несколькими способами:
· Панель управления, отображающаяся в левом верхнем углу окна:
1.
Большая красно-черная кнопка в левом верхнем углу панели управления — отвечает за паузу (ставит или снимает программу с паузы, по умолчанию при запуске программы пауза включена)
2. Красная кнопка с белой стрелкой, указывающей вправо — отвечает за уменьшение задержки процесса визуализации программы (ускоряет ранее замедленную визуализацию). Кнопку рекомендуется нажимать в режиме работы визуализации (с выключенной паузой).
1. Серо - синяя кнопка с белой стрелкой, указывающей влево — отвечает за замедление процесса визуализации программы (при нажатии на нее, правее отображается желтая цифра, показывающая значение задержки). Аналогично предыдущей кнопке, ее рекомендуется нажимать в режиме выключенной паузы.
2. Темно-красная кнопка в правой части панели управления — включает или выключает режим удаления разбившихся автомобилей (по умолчанию этот режим отключен, разбившимся автомобилем считается тот, что столкнулся с впереди стоящим).
3. Кнопка в нижней части панели управления, правее надписи «loop cars» - включает или выключает режим «зацикливания» автомобилей (по умолчанию отключена, при активации появляется флажок зеленого цвета, зацикливаются машины, находящиеся в данный момент на экране, при достижении конца видимой части экрана они начинают отображаться с начала).
· Всплывающее меню, появляющееся в результате нажатия на конкретный автомобиль в режиме паузы, возможны три действия:
1.
Уничтожение данного автомобиля — при активации, данный автомобиль уничтожается и всплывающее меню исчезает, программа выходит из режима паузы.
2. Просмотр характеристик данного автомобиля — вызывает меню характеристик, которое позволяет редактировать данные.
3. Добавление нового автомобиля — это действие вызывает добавление нового автомобиля позади данного (на текущий момент эта функция не работает, но мы активно работаем над этим).
· Меню характеристик автомобиля — вызывается из предыдущего меню, позволяет редактировать текущие и глобальные свойства конкретного автомобиля:
1.
Normal speed – скорость, к которой стремится автомобиль (путем уменьшения или увеличения скорости).
2. Now speed – текущая скорость данного автомобиля.
3. Position – текущая позиция автомобиля.
4. Car length – длина данного автомобиля.
5. Road line – ряд данного автомобиля (считается от нижнего края экрана, может принимать значения от 1 до 3).
6. Car's A – текущее ускорение автомобиля.
7. Car number – номер текущего автомобиля на данный момент на дороге.
Все значения кроме номера автомобиля могут изменяться путем нажатия на кнопки «+» или «-» , находящиеся правее значения, соответственно увеличивая или уменьшая соответствующие значения. Для удобства их изменения (изменение проходит с неким заранее заданным шагом) может производится нажатие как на левую, так и на правую кнопку мыши, а также для ускорения процесса, кнопки реагируют на изменение положения (в любую сторону) колеса мыши (mouse wheel) при соответствующем наведении на нужную область.


