@Egoshka

Реализация лабиринта по алгоритму Уилсона. Как сделать это в C# WinForms?

Подскажите, как можно реализовать лабиринт по алгоритму Уилсона? Желательно сделать понятный код и только приветствуется использование PictureBox.
Покапавшись в интернете нашёл что-то подобное - https://habr.com/ru/post/321210/ (обратим внимание что интересует именно алгоритм Уилсона(второй в статье)). Там он реализован на lua, но задаюсь вопросом как перевести подобный алгоритм в C# WFM.

Буду благодарен наброскам, кускам, целым кодам с вашим пониманием алгоритма, заранее спасибо за помощь!
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
В чем проблема перевести с lua на C#?

Там в алгоритме ничего сверх сложного и какой-то встроенной библиотеки не используется. Понятно, что MazeGrid - это двумерный массив? Aux - это класс с методами createGrid (возвращает двумерный массив класса с полями visited, right_wall, bottom_wall), wilson (реализация алгоритма) и всякие вспомогателные hashKey/deHashKey. Еще есть поля width/height/sx/sy.

Сам алгоритм в wilson() использует циклы while и for, if, elseif - все это переводится на C# не задействуя мозг вообще. Чисто механически. Ну, разве что о типах переменных чуть чуть подумать придется. Но, ясно же, что dir - это строка, isMoved - bool.

Потом, когда вы это все переведете, можно начинать улучшать код. Типа вместо строк для направлений использовать enum.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы