Я розглядав деякі алгоритми та статті про процедурну генерацію підземелля. Проблема в тому, що я намагаюся створити будинок із кімнатами, і вони, здається, не відповідають моїм вимогам.
Для одного підземелля мають коридори, де в будинках є зали. І хоча спочатку вони можуть здатися однаковими, зал - це не що інше, як площа, яка не є кімнатою, тоді як коридор призначений спеціально для з'єднання однієї зони з іншою.
Ще одна важлива відмінність будинку - це те, що ти маєш конкретну ширину та висоту, і ти повинен заповнити всю річ приміщеннями та залами, тоді як у підземеллі - порожній простір.
Я думаю, що зали в будинку - це щось середнє між коридором підземелля (потрапляє в інші кімнати) і порожнім місцем у підземеллі (це чітко не визначено в коді).
Більш конкретно, вимоги:
- Існує набір заздалегідь заданих кімнат, які
я не можу створювати стіни та двері з льоту. - Кімнати можна повертати, але не змінювати їх
знов, тому що у мене заздалегідь визначений набір кімнат, я можу лише повертати їх, а не змінювати їх розмір. - Розміри будинку встановлені і повинні бути повністю заповнені кімнатами (або залами),
тобто я хочу заповнити будинок розміром 14х20 наявними кімнатами, упевнившись, що немає порожнього місця.
Ось кілька зображень, щоб зробити це трохи більш зрозумілим:
Як бачите, в будинку "порожній простір" все ще проходить, і він переносить вас з однієї кімнати в іншу.
Отож, сказавши все це, можливо, будинок - це просто дійсно щільно забита підземелля з коридорами. Або це щось легше, ніж підземелля. Можливо, щось там є, і я цього не знайшов, бо я не знаю, що саме шукати.
Тут я хотів би отримати вашу допомогу: ви могли б дати мені вказівки, як створити цей алгоритм? Будь-які думки щодо того, які кроки він буде робити? Якщо ви створили генератор підземелля, як би ви змінили його, щоб він відповідав моїм вимогам? Ви можете бути настільки конкретними або такими ж загальними, як вам подобається. Я дуже хочу забрати твій мізок.