2017-03-27 4 views
0

Je fais un roguelike où le réglage est un monde ouvert sur une planète générée de façon procédurale. Je veux que la distribution de chaque biome soit organique. Il y a 5 biomes différents. Existe-t-il un moyen de les distribuer organiquement sans un énorme algorithme compliqué? Je veux que l'espace occupé par chaque biome soit presque égal.Automate cellulaire avec plus de 2 états (plus que juste vivants ou morts)

J'ai travaillé avec des automates cellulaires avant quand je faisais les générateurs de terrain pour chaque biome. Il y avait 2 états différents pour chaque tuile là. Y a-t-il un moyen efficace de faire 5? J'utilise python 2.5, bien qu'un code spécifique ne soit pas nécessaire. La théorie de programmation sur elle est bien.

Si la question est trop ouverte, y a-t-il des ressources que je pourrais examiner pour ce genre de problème?

Répondre

0

Vous pouvez définir un automate cellulaire sur n'importe quel espace d'état de cellule. Il suffit de formuler la fonction de mise à jour de la cellule comme F:Q^n->QQ est votre espace d'état (ici Q={0,1,2,3,4,5}) et n est la taille de votre quartier.

Pour commencer, il suffit d'écrire F comme règle de la majorité, à savoir, 0 étant l'état neutre, F(c) doit retourner la valeur 1-5 avec le nombre le plus élevé dans le quartier, et 0 si aucun est présent. En cas d'égalité, vous pouvez choisir l'un des max au hasard. Dans un état initial, commencez par une configuration avec 5 cellules relativement équidistantes avec les états 1-5 (vous pouvez les construire de manière déterministe par une position fixe qui peut être décalée/mise en miroir, ou générer ces points de façon aléatoire).

Lorsque toutes les cellules ont une valeur différente de 0, vous avez votre carte.

N'hésitez pas à améliorer la fonction de mise à jour, par exemple en appliquant la règle avec une probabilité donnée.