J'ai écrit quelque chose de semblable à ce que vous êtes après pour automatiser l'économiseur d'écran de style clone de la Civilisation 1. Pour l'enregistrement, j'ai écrit ceci en VB.net mais puisque vous n'avez rien dit au sujet de la langue ou de la plate-forme dans votre question, je vais garder un niveau abstrait.
La "carte" spécifie le nombre de continents, d'un continent à l'écart de taille (par exemple 1.0 permettrait de garder tous les continents, avec le même approximative de la superficie des terres, jusqu'à 0,1 permettrait continents avec 1/10e de la masse du plus grand continent), le maximum de la superficie des terres (en pourcentage) pour générer, et la centrale des terres biais. Une "graine" est distribué de façon aléatoire autour de la carte pour chaque continent, pondérée vers le centre de la carte, comme par la centrale de biais (par exemple, un faible biais de produit distribué continents de plus en plus semblables à la Terre, où, comme d'un centre, haut de biais ressemblent plus à une Pangée). Ensuite, pour chaque itération de la croissance, les "graines" attribuer des cases de terre selon un algorithme de répartition (plus sur cela plus tard) jusqu'à un maximum de superficie a été atteint.
La distribution des terres de l'algorithme peut être aussi précis que vous voulez, mais j'ai trouvé plus intéressant des résultats de l'application de différents algorithmes génétiques et de lancer les dés. Conway "Jeu de la Vie" est vraiment facile à démarrer avec. Vous aurez besoin d'ajouter un peu de prise de conscience mondiale de la logique pour éviter des choses comme les continents croissante dans les uns des autres, mais pour la plupart des choses de prendre soin d'eux-mêmes. Le problème que j'ai trouvé avec plus de fractale basée sur des approches (ce qui était mon premier inclinaison) a été le résultat de regardé trop de motifs, ou conduire à un trop grand nombre de scénarios nécessitant hacky-sentiment solution de contournement des règles pour obtenir un résultat qui ne me sentais toujours pas assez dynamique. Selon l'algorithme que vous utilisez, vous pouvez appliquer un "flou" sur le passage de résultat pour éliminer des choses comme abondante unique-carré de l'océan de tuiles et de carreaux côtes. Dans le cas de quelque chose comme un continent d'être pondus, entouré par plusieurs autres et avoir de nulle part à gauche pour pousser, déplacer les graines pour un nouveau point sur la carte et poursuivre la croissance passe. Oui, on peut dire que vous souvent plus de continents que prévu, mais si c'est vraiment quelque chose que vous fermement ne veux pas puis un autre moyen d'éviter cela est d'influencer la croissance des algorithmes ils sont favorables à la croissance dans la direction avec moins de proximité à d'autres graines. Au pire (à mon avis en tout cas), vous pouvez marquer une série non valide lorsqu'une graine a nulle part à gauche de croître et de générer une nouvelle carte. Assurez-vous de fixer un nombre maximum de tentatives de quoi que ce soit si irréaliste est spécifié (comme raccord 50, même pondérée continents sur une 10x10 conseil d'administration), il ne passe pas toujours en essayant de trouver une solution valable.
Je ne peux pas garantir combien de Civ etc le faire, et bien sûr ne pas cacher les choses, comme le climat, l'âge de la terre, etc, mais en jouant avec les graines de la croissance de l'algorithme, vous pouvez obtenir assez intéressante des résultats qui ressemblent à des continents, archipels, etc. Vous pouvez utiliser la même approche pour produire " bio " à la recherche des rivières, des montagnes etc trop.