Patrzyłem na niektóre algorytmy i artykuły dotyczące proceduralnego generowania lochów. Problem polega na tym, że próbuję wygenerować dom z pokojami, które wydają się nie spełniać moich wymagań.
Po pierwsze, lochy mają korytarze, w których domy mają sale. I choć początkowo mogą wydawać się takie same, korytarz jest niczym więcej niż obszarem, który nie jest pokojem, podczas gdy korytarz jest specjalnie zaprojektowany do łączenia jednego obszaru z drugim.
Inną ważną różnicą w domu jest to, że masz określoną szerokość i wysokość, i musisz wypełnić całą rzecz pokojami i korytarzami, podczas gdy w lochach jest pusta przestrzeń.
Myślę, że korytarze w domu to coś pomiędzy korytarzem lochu (prowadzi do innych pomieszczeń) a pustą przestrzenią w lochu (nie jest to wyraźnie zdefiniowane w kodzie).
W szczególności wymagania są następujące:
- Jest zestaw predefiniowanych pokoi
, których nie mogę tworzyć ścian i drzwi w locie. - Pokoje można obracać, ale nie można ich zmieniać.
Ponownie, ponieważ mam predefiniowany zestaw pokoi, mogę je tylko obracać, a nie zmieniać ich rozmiar. - Wymiary domu są ustawione i muszą być całkowicie wypełnione pokojami (lub korytarzami)
To znaczy, chcę wypełnić dom 14x20 dostępnymi pokojami, upewniając się, że nie ma pustej przestrzeni.
Oto kilka zdjęć, aby to trochę wyjaśnić:
Jak widać, w domu „pusta przestrzeń” jest jeszcze dostępna dla pieszych i prowadzi z jednego pokoju do drugiego.
Powiedziawszy to wszystko, może dom jest naprawdę bardzo ciasno wypełnionym lochiem z korytarzami. Lub jest to coś łatwiejszego niż loch. Może coś tam jest i nie znalazłem tego, bo tak naprawdę nie wiem, czego szukać.
Oto gdzie chciałbym twojej pomocy: czy mógłbyś mi dać wskazówki, jak zaprojektować ten algorytm? Wszelkie przemyślenia na temat tego, jakie kroki podejmie? Jeśli stworzyłeś generator lochów, jak zmodyfikowałbyś go, aby spełniał moje wymagania? Możesz być tak szczegółowy lub tak ogólny, jak chcesz. Naprawdę chcę wybrać twój mózg.