Moi-même et une équipe travaillons sur un jeu de construction d'usine qui donne au joueur une usine aléatoire au début du jeu. Pour essayer de faire en sorte qu'il y ait un sentiment d '«équité», l'idéal serait que l'usine générée de façon aléatoire ait une superficie de quelques unités de (valeur d'espace réservé) 30.
Il est relativement simple d'écrire un générateur de rectangle aléatoire de base pour répondre à ces spécifications, mais notre objectif est que l'usine soit plus complexe, peut-être composée de 2, 3 ou même 4 rectangles qui se croisent, produisant des formes plus complexes (pensez à L, Bâtiments en forme de U et O).
J'ai essayé de générer un rectangle aléatoire, puis d'utiliser l'algèbre de base pour remplir un deuxième rectangle, mais jusqu'à présent, je n'ai eu aucune chance d'implémenter plus de 2 rectangles, et même dans ce cas, je ne suis pas satisfait des résultats pour un design à 2 rectangles seulement .
Quelques informations plus pertinentes: 2D de haut en bas Certaines des mécaniques sont de style factorio, donc les pièces devraient avoir une longueur et une largeur raisonnables pour laisser de la place aux machines Actuellement à Java et à Lua (peuvent utiliser des bibliothèques intégrées à partir de l'une ou l'autre si nécessaire)
Merci d'avance!
EDIT: Quand je dis «bonnes» ou «mauvaises» sorties, une mauvaise sortie serait toute sortie dont l'espace est inutilisable par le lecteur. La forme d'usine limite l'endroit où le joueur peut placer des machines d'usine telles que des bandes transporteuses. Idéalement, l'usine ne devrait pas avoir de zones de 1 à 2 blocs de large, la forme ne devrait pas être un ou deux grands rectangles avec une ligne de 1 à 2 blocs "suspendus" d'un côté. Une bonne sortie serait là où tout l'espace au sol est "réalisable", donc toutes les zones ont au moins 3 à 4 blocs de largeur. Une bonne sortie ne doit pas toujours être complexe (1 ou 2 rectangles est correct), mais elle devrait avoir une bonne chance si elle est composée de plus de 1-2 rectangles.