Jeu de la vie de john conway ( son utilité est prouvée dans les commentaires ) concept a la base du jeu simcity

Soyez le premier à donner votre avis sur cette source.

Vue 7 130 fois - Téléchargée 613 fois

Description

Ce code a pour but de représenter les masses de population.
Le monde dans lequel ces populations vivent est représenté par une surface plane.
Mais en réalité, la surface visible représentée est un tore (Ce qui débordent sur un coté apparaît à son opposé) ( pour ceux qui ne savent pas un tore ressemble a un anneau ou un beignet )
Cette surface est divisé en unités de surface (carré) chaque carré est :
--> SOIT peuplé
--> SOIT vide

Les populations des carrés naissent, vivent et meurent suivant des lois.
Les population peuvent :
--> Naître ( densité de population requise mais pas trop élevée )
--> Subsister ( Natalité = Mortalité )
--> Mourir de vieillesse ( ou de solitude lol )
--> Mourir de surpopulation ( densité de population trop élevé )

Chaque possibilité est régit par le nombre de carrés habité autours du carré considéré.
Il y a 8 carrés qui environnent chaque carré, même pour ceux des bords (bords qui, je le rappelle n'existent pas en réalité)

Les lois sont donc les suivantes :
Si aucun ou 1 carré environnant est habité, alors la population (si elle était là), meurt.
Si 2 carrés environnant sont habités, alors la population (si elle était là), subsiste.
Si 3 carrés environnant sont habités, alors une population apparaît ou subsiste.
Si 4 ou plusieurs carrés environnant son habités, alors la population meurt (surpopulation).

Ces lois semblent assez simples, mais mises en pratique, elles donnent des résultats assez étranges. Voyez par vous même ....

-={[ZeroCool ]}=-

Source / Exemple :


See le Zip

Conclusion :


Ben voila la version 2, avec des exemples pour les curieux :)
Sinon j'ai fait une commande pour sauver les coordonnées, comme ça pas de foulure de poigner à taper sur son clavier pour rentrer toutes les cellules de votre exemple :)

Ah oui pour ce qui est question de la config de l'algo? faite attention a ce que vous entrez.
En effet si vous mettez la survie a 1 mais que vous n'avez as mis la solitude a 0, comme dans le select case, le test de solitude arrive avant celui de la survie, la cellule mourra , meme si elle possede une cellule dans son entourage ...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cqui789
Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
2 -
Je crois que j'ai trouve le bug:
dans la sub algo
dans la boucle, quand sens=true

tu ecrit

Case Survie To NaissanceInf - 1 ' Survit
lstPop2(k, i) = lstPop2(k, i)

je crois qu'il fallait viser l'autre tableau:

Case Survie To NaissanceInf - 1 ' Survit
lstPop2(k, i) = lstPop1(k, i)

Dit moi si je me trompe?

Autrement, j'ai simplifie le calcule de B et G et H:

B = NbrCase - 1
For i = 0 To NbrCase - 1
If i NbrCase - 1 Then H 0 Else H = i + 1
G = NbrCase - 1
For k = 0 To NbrCase - 1
.
.
.
G = k
Next k
B = i
Next

D'abort, il est inutile de calculer B et H pour chaque valeur de K
en suite, si on definit G et B juste avant le next qui les concernent, il seront pret pour la boucle suivante et on peut les initialiser comme il faut, sans test dans la boucle
cqui789
Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
2 -
Tres joli et certainement pas inutile mais il doit y avoir un leger bug...
J'ai a un moment, 4 case (2x2) qui doivent donner une forme stable mais qui ne le sont pas:

XX
XX

devient

_XX
XXXX

puis
X__X
X__X
_XX

puis
_XX
X__X

et retour a la forme du debut

allors que sur le meme damier, d'autre formes semblables sont fixes
cjeannot
Messages postés
8
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
27 septembre 2004
-
ba nan c'est pas si inutile que ca, surtout quand on peut l'utiliser en classe... merci!!
SibosisITS
Messages postés
72
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
20 juin 2003
-
Je connaîs ce prog... mais sous dos... Je l'avais vu sur une ancienne revue à laquelle j'étais abonné (Science & Vie Junior pour ceux qui connaissent ;). Perso, je ne trouve pas ça inutile d'observer l'évolution d'une telle population... Figure toi qu'il y a des gens qui passent leur journée devant des programmes de ce type (en bien plus évolué bien entendu) : ne peut être déclaré d'inutile que ce qui ne sert à personne... Et puis, je ferais remarquer que ce programme est la base même d'un jeu on ne peut plus célèbre : vous l'avais deviné, c'est SIMCITY !!! Sur le principe, car dans Simcity, il y a beaucoup plus de paramètres qui interviennent... (avec des paramètres de migration, etc...) Aurais-tu entrepris de reprogrammer SimCity Zerocool ? ;)
Franchement, ça mérite bien un 9... ou 10... je sais pas encore... selon le felling de l'instant où je vais voter :^)

@++ et bonne prog...

(: Sibo ;)
cs_Zeroc00l
Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010
-
Je me prépare à mettre la new version :)

Dans le code, la boucle qui test les cellules, est trop lente
Dans la prochaine version ( qui arrive bientôt ) je vais mettre un TextBox pour changer le nombre de case.
Mais si vous mettez 100 *100 , les 4 conditions a tester pour G D B et G, dans le Timer ralentissent trop le code ( à mon goût ), sachant qu'elles ne sont utilisées que pour les cellules en bordure )
Je vais donc mettre une deuxième méthode de calcul plus volumineuse en ligne de code, mais qui devrait être plus rapide ( surtout pour les grand format de "monde" )

( et puis de toute facon ca fait quoi d'avoir 1.5 Ko en plus sur son pc ? !!! hein ? bon ... c'est pas une version commercialisable de toute façon :) )

Ah oui j'ai failli oublier, je prépare une liste d'exemples, ( déja existant ou que j'ai trouvé par hasard )

Voila ...
A++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.