Моделирование случайного блуждания в C++ ImGui

Случайное блуждание может быть связано с процессом случайного блуждания агента в некоторой среде. Следующий шаг агента определяется нормально распределенным выбором направления обхода. В двух двумерных пространствах агент, находящийся в одной клетке лабиринта, может переходить в четыре принадлежащие друг другу ячейки (вправо, влево, вверх и вниз). Процесс случайного блуждания накладывает ограничение на переход агента, который возможен, если агент еще не посещал следующую ячейку. Обход прекращается, если агент не может перейти ни в какую другую ячейку. Посещаются все клетки, близкие к фактическому положению агента.
Помимо определенных правил обхода, определяющих условия перехода, наиболее важным является процесс выбора следующего шага. Агент использует машину случайных чисел, которая равномерно генерирует направления агента. Это означает, что выбор каждого направления имеет одинаковую вероятность. В C++ мы применяем стандартную процедуру, о которой вы можете прочитать здесь.

Реализацию решения я развернул на C++ с визуализацией в ImGui. Знакомство с C++ ImGui и информацию о компиляции и сборке программ вы найдете в одной из моих предыдущих статей.

Исходный код вы найдете на моем GitHub.

Вот пример процесса случайного блуждания.

Спасибо за чтение.