Я та команда працюють над грою на заводі будівельника, яка дає гравцеві випадкову фабрику на початку гри. Щоб спробувати переконатися, що існує відчуття «справедливості», в ідеалі фабрика, що генерується випадковим чином, мала б площу в межах кількох одиниць (значення заповнювача) 30.
Написати базовий генератор випадкових прямокутників досить просто, щоб відповідати цим характеристикам, але наша мета - фабрика бути складнішою, можливо, складеною з 2, 3 або навіть 4 прямокутників, що перетинаються, створюючи більш складні форми (подумайте про L, Будинки у формі U та O).
Я спробував створити випадковий прямокутник, а потім за допомогою базової алгебри заповнити другий прямокутник, але поки що мені не пощастило реалізувати більше 2 прямокутників, і навіть тоді я незадоволений результатами лише для 2-х прямокутників .
Ще кілька релевантних відомостей: 2D зверху вниз Деякі механізми мають факторний стиль, тому кімнати повинні мати розумну довжину та ширину, щоб звільнити місця для машин Зараз в Яві та Луї (можна використовувати вбудовані бібліотеки з будь-якої необхідності)
Спасибі заздалегідь!
EDIT: Коли я кажу "хороший" або "поганий" вихід, поганим результатом буде будь-який вихід, у якому простір не використовується. Заводські обмеження форми, де гравець може розмістити заводські машини, такі як конвеєрні стрічки. В ідеалі на фабриці не повинно бути ділянок, шириною яких є лише 1-2 блоки, форма не повинна бути одним або двома великими прямокутниками з лінією з 1-2 блоків, що «висить» на одну сторону. Хорошим результатом було б те, коли весь простір підлоги "працездатний", тому всі області шириною принаймні 3-4 блоки. Хороший вихід не завжди повинен бути складним (1 або 2 прямокутники добре), але він повинен мати неабиякі шанси, якщо він складається з більш ніж 1-2 прямокутників.