Интерактивное графическое приложение с использованием OpenGL.
Цель работы – разработать интерактивное графическое приложение, реализующее лабиринт с визуализацией с помощью OpenGL.
Разработанное приложение отвечает следующим требованиям:
1. Реализовано несколько принципиально различных методов генерации лабиринта (2 или больше).
2. Пользователь может влиять на результат генерации задавая ряд параметров:
a. размеры (ширина, высота сетки);
b. seed для генерации случайных чисел;
c. прочее в зависимости от реализованных алгоритмов.
3. Сгенерированные лабиринты могут быть сохранены в каком-то формате в файл и затем могут быть оттуда загружены.
4. каждая клетка в лабиринте – квадрат со стороной в несколько пикселей на изображении.
5. Анимированная визуализация самого процесса генерации.
6. Реализовано несколько (3+) алгоритмов решения лабиринта, выдающих в качестве
результата:
a. кратчайший путь;
b. несколько корректных путей.
7. Вход и выход из лабиринта задаются пользователем.
8. В соответствии с видом визуализации лабиринта, реализована визуализация полученных путей через лабиринт. Для путей также выводится их длина.
9. Пользователь передвигается в лабиринте так: вид сверху на лабиринт, положение пользователя – какая-то метка (точка, ромб, крестик и т.д.), видимость ограничена окружностью некоторого радиуса (например, 10 клеток лабиринта) с центром в позиции пользователя.
10. Двигаясь по лабиринту, пользователь оставляет за собой след, просто окрашивая посещенные клетки, или рисуя линию, проходящую через них и т. п.
11. При достижении цели (т.е. выхода), пользователь получает какой-то визуальный сигнал об этом, а также в основное окно приложения или в консоль выводится статистика – затраченное время, длина пути - число пройденных клеток.
12. Реализована возможность начать с начала – по нажатию определенной кнопки, пользователь возвращается к входу и вся статистика обнуляется.