Я пытался сделать небольшую простую игру, чтобы просто проверить мою логику, и это простой лабиринт, он уродлив и до сих пор отстой.
Движок работает довольно хорошо, учитывая, что лабиринтуже существует (матрица), это может быть даже приятно, но я не собираюсь рисовать несколько карт, которые могут устанавливать значения для 400 (20x20) полей матрицы.не смешно.
Тогда я создал функцию для ее рандомизации, устанавливая пол / стену для каждого поля, и (я ожидал, что) не каждая карта является выигрышной.затем я сделал другую функцию, которая проверяет, можно ли воспроизводить карты (получает две точки и проверяет, существует ли допустимый путь между ними, тогда я просто передаю начало и конец. Довольно изящно), и это работает.
Если вы не заметили, это ОЧЕНЬ глупый способ создания моего случайного лабиринта по следующим причинам:
1 - Это может получиться очень легко (гигантские острова полаили несколько стен вместе, образующих только один чрезвычайно видимый путь, создающий тупой (хотя и действительный) лабиринт
2 - Это потенциально самый быстрый способ создания идеального случайного лабиринта КОГДА-ЛИБО, нов то же время он потенциально самый медленный и занимает столько времени, сколько ... бесконечно. Эта разница заметна еще больше, когда я устанавливаю сетку на 30x30 или более (когда что-то не переполняется)
3 - Это глупо и оскорблять саму логику.
В своей защите я не планировал делать так с самого начала, как описано, одна вещь привела к другой.
Итак, я начал думать о способах сделать красивый (полный путей, хитрый и выигрышный) лабиринт, затем я подумал о создании крошечных маленьких (скажем) блоков 5x5 с предварительно разработанными входами и монтированиемони вместе таким образом, что это подходит, но это пошло бы вразрез с моим истинным случайным желанием, а также моим нежеланием рисовать его вручную.
Тогда яЯ подумал о функции для создания случайного пути, запуска его один раз до конца и запуска его несколько раз где-то близко к концу, а также о некоторых переходах и прочем, некоторые создания тупиков, что мне показалось лучше, но япросто не мог себе представить, что это создает приличный лабиринт.
Вы можете проверить, что я уже сделал по этой ссылке.
Примечание: я не собираюсь наносить вред чьему-либо компьютеру.
Первый, кто откроет его, прокомментируйте здесь, говоря, что это безопасно. - Готово (спасибо, Jonno_FTW)
Если вы все еще не доверяете нам,Виртуальная машина.
ОБС: Я знаю, что это не лучший способ что-либо разработать.Мне нужен хороший игровой движок, бла-бла-бла, для меня это был какой-то вызов.