Eu e uma equipe estamos trabalhando em um jogo de construtor de fábrica que fornece ao jogador uma fábrica aleatória no início do jogo. Para tentar garantir que haja uma sensação de "justiça", idealmente, a fábrica gerada aleatoriamente teria uma área dentro de algumas unidades de (valor do espaço reservado) 30.
É relativamente simples escrever um gerador de retângulo aleatório básico para atender a essas especificações, mas nosso objetivo é que a fábrica seja mais complexa, talvez composta de 2, 3 ou até 4 retângulos que se cruzam, produzindo formas mais complexas (pense em L, Edifícios em forma de U e O).
Tentei gerar um retângulo aleatório e depois usar álgebra básica para preencher um segundo retângulo, mas até agora não tive sorte implementando mais de 2 retângulos, e mesmo assim estou descontente com os resultados de apenas um design de 2 retângulos .
Algumas informações mais relevantes: 2D de cima para baixo Algumas das mecânicas são do estilo fatorio, de modo que as salas devem ter comprimento e largura razoáveis para permitir espaço para máquinas Atualmente em Java e Lua (pode usar bibliotecas integradas, se necessário)
Desde já, obrigado!
EDIT: Quando digo saídas "boas" ou "ruins", uma saída ruim seria qualquer saída que tenha espaço inutilizável pelo player. O formato da fábrica limita onde o jogador pode colocar máquinas de fábrica, como correias transportadoras. Idealmente, a fábrica não deve ter áreas com apenas 1 a 2 blocos de largura, a forma não deve ter um ou dois retângulos grandes com uma linha de 1 a 2 blocos "pendurados" para um lado. Uma boa saída seria onde todo o espaço físico é "viável"; portanto, todas as áreas têm pelo menos 3-4 blocos de largura. Uma boa saída nem sempre precisa ser complexa (1 ou 2 retângulos são aceitáveis), mas deve ter uma boa chance se for composta por mais de 1-2 retângulos.