|
4 / 4 / 0
Регистрация: 01.10.2011
Сообщений: 33
|
||||||
Генерация случайного лабиринта25.10.2011, 20:24. Показов 13530. Ответов 9
Метки нет (Все метки)
Вообщем требуется сгенерировать лабиринт 12х12 с одним входом и выходом. Лабиринт представляется символьным массивом, где '#' - стенка, а '.' - путь, по которому можно пройти. Собственно у меня затык с пониманием как надо реализовать. Максимум что получилось по нормальному одну длинную дорожку вправо и вниз сделать. Всё остальное вместо лабиринта рисует некое поле.
Собственно первое что пришло в голову сделать рекурсивный вариант. Но он у меня получился крайне плохо. В основном нужны советы именно по алгоритму и в каком направлении думать. Готовый код не очень нужен ![]() Примерный код(там внутри правда еще функция путешествия по лабиринту, она не совсем правильная, но я её представляю как дорабатывать, просто сначала надо сгенерировать лабиринт, чтобы все ошибки увидеть).
0
|
||||||
| 25.10.2011, 20:24 | |
|
Ответы с готовыми решениями:
9
Генерация случайного числа, максимально случайного Генерация лабиринта Генерация лабиринта |
|
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
|
|
| 25.10.2011, 21:29 | |
|
Ну я бы сделал примерно так:
Есть матрица 12 на 12, начинаем в 0 0, и далее рекурсивная рандомная функция, то есть смотришь генерируешь число от 0 до 3, в какую сторону идти, если точка занята, то следующую смотришь, если все заняты, то функцию обрывается, и генерируешь её заново, и так пока функция не выйдет за пределы массива, то есть не найдет выход, ну и естественно в время путешествия отмечаешь нужные точки, а потом проходишься по готовой матрице и отмечаешь не отмеченные точки матрицей
0
|
|
|
4 / 4 / 0
Регистрация: 01.10.2011
Сообщений: 33
|
||
| 25.10.2011, 22:14 [ТС] | ||
1
|
||
|
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
|
|
| 25.10.2011, 22:20 | |
|
Есть еще предложения перед тем как перейти на след точку, посмотри граничит ли она с другими, которые уже входят в путь, если да то выбираешь следующую точку, если таких точек нет, рекурсия обрывается
0
|
|
|
78 / 10 / 2
Регистрация: 11.10.2010
Сообщений: 88
|
|
| 25.10.2011, 23:09 | |
|
не из Дейтелов задачка?
0
|
|
|
4 / 4 / 0
Регистрация: 01.10.2011
Сообщений: 33
|
||
| 25.10.2011, 23:17 [ТС] | ||
|
0
|
||
|
4 / 4 / 0
Регистрация: 01.10.2011
Сообщений: 33
|
|
| 27.10.2011, 10:34 [ТС] | |
|
Надеюсь что кто-нибудь еще сможет помочь, дать пару идей и прочее.
0
|
|
|
23 / 6 / 2
Регистрация: 22.02.2015
Сообщений: 10
|
||||||
| 22.02.2015, 20:50 | ||||||
|
Вводятся ширина и высота, лабиринт генерируется, и сам находит выход. Вам предлагается выбрать, просматривать, как ищется путь или нет.(yes/no). Удачи
0
|
||||||
|
3 / 3 / 1
Регистрация: 19.02.2014
Сообщений: 115
|
|
| 18.04.2015, 23:03 | |
|
А может кто пояснить если не трудно.Что делается в строчках с 53 по 85 в коде что привел ЯрославК? Пытаюсь разобраться в коде,понимаю что там вроде как "рисуются" линии прохода от входа до выхода,но не могу понять каким образом
. С 25й по 53юю как бы все понятно,что и как "рисуется",сначала рамка,потом вход\выход и 1ые точки.А вот потом,сколько ни сидел ни соображал,не могу врубиться .И может у кого есть код с пояснениями,что и как строится?По книге Дейтела там просят сделать лабиринт в двумерном массиве,единственное что смог сделать,это дополнить этот код и скопировать лабиринт из одномерного массива что тут приводится в двумерный.Но все же хочется понять алгоритм.Поясните пожалуйста,кому не трудно.
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
||||||
| 26.02.2017, 03:41 | ||||||
|
Долго мучался, но кое что, вроде бы, получилось.
0
|
||||||
| 26.02.2017, 03:41 | |
|
Помогаю со студенческими работами здесь
10
Генерация 6 свободного лабиринта Генерация случайного числа Генерация случайного числа Генерация случайного списка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|