@Egoshka

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

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

Буду благодарен наброскам, кускам, целым кодам с вашим пониманием алгоритма, заранее спасибо за помощь!
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы