LE JEU DE LA VIE

violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 - 18 déc. 2005 à 18:53
jeanlouispy Messages postés 1 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 18 mars 2008 - 18 mars 2008 à 19:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35154-le-jeu-de-la-vie

jeanlouispy Messages postés 1 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 18 mars 2008
18 mars 2008 à 19:51
Hello !!!
Pour les Pb de licence de certain controls Vb6 il faut créer les clés ci dessous dans le registre :

copier le texte ci-dessous dans un fichier .txt puis renommer l'extension en .reg puis exécuter et voilà

REGEDIT
HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights.

// Masked Edit Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\BC96F860-9928-11cf-8AFA-00AA00C00905 = mmimfflflmqmlfffrlnmofhfkgrlmmfmqkqj

// Chart Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT\Licenses\12B142A4-BD51-11d1-8C08-0000F8754DA1 = aadhgafabafajhchnbchehfambfbbachmfmb

// Common Dialog Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\4D553650-6ABE-11cf-8ADB-00AA00C00905 = gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj

// ADO Data Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT\Licenses\C4145310-469C-11d1-B182-00A0C922E820 = konhqhioohihphkouimonhqhvnwiqhhhnjti

// Common Controls-3 6.0 license key
HKEY_CLASSES_ROOT\Licenses\38911DA0-E448-11D0-84A3-00DD01104159 = mcpckchcdchjcjcclidcgcgchdqdcjhcojpd

// Windows Common Controls-2 5.0 (SP2) license key
HKEY_CLASSES_ROOT\Licenses\9E799BF1-8817-11cf-958F-0020AFC28C3B = uqpqnqkjujkjjjjqwktjrjkjtkupsjnjtoun

// Windows Common Controls license key
HKEY_CLASSES_ROOT\Licenses\57CBF9E0-6AA7-11cf-8ADB-00AA00C00905 = aahakhchghkhfhaamghhbhbhkbpgfhahlfle

// Data Bound Grid Control 5.0(SP3) license key
HKEY_CLASSES_ROOT\Licenses\556C75F1-EFBC-11CF-B9F3-00A0247033C4 = xybiedobrqsprbijaegcbislrsiucfjdhisl

// Data Bound List Controls 6.0 license key
HKEY_CLASSES_ROOT\Licenses\096EFC40-6ABF-11cf-850C-08002B30345D = knsgigmnmngnmnigthmgpninrmumhgkgrlrk

// Internet Transfer Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\78E1BDD1-9941-11cf-9756-00AA00C00908 = yjrjvqkjlqqjnqkjvprqsjnjvkuknjpjtoun

// Multimedia Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\B1EFCCF0-6AC1-11cf-8ADB-00AA00C00905 = qqkjvqpqmqjjpqjjvpqqkqmqvkypoqjquoun

// Chart Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\7C35CA30-D112-11cf-8E72-00A0C90F26F8 = whmhmhohmhiorhkouimhihihwiwinhlosmsl

// Windows Common Controls-2 6.0 license key
HKEY_CLASSES_ROOT\Licenses\4F86BADF-9F77-11d1-B1B7-0000F8753F5D = iplpwpnippopupiivjrioppisjsjlpiiokuj

// Windows Common Controls 6.0 license key
HKEY_CLASSES_ROOT\Licenses\ED4B87C4-9F76-11d1-8BF7-0000F8754DA1 = knlggnmntgggrninthpgmnngrhqhnnjnslsh

// Comm Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905 = kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun

// DataGrid Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT\Licenses\CDE57A55-8B86-11D0-b3C6-00A0C90AEA82 = ekpkhddkjkekpdjkqemkfkldoeoefkfdjfqe

// DataList Control 6.0 (OLEDB) license key
HKEY_CLASSES_ROOT\Licenses\A133F000-CCB0-11d0-A316-00AA00688B10 = cibbcimbpihbbbbbnhdbeidiocmcbbdbgdoc

// DBWin license key
HKEY_CLASSES_ROOT\Licenses\D015B071-D2ED-11d0-A31A-00AA00688B10 = gjdcfjpcmjicjcdcoihcechjlioiccechepd

// MSDBRPT license key
HKEY_CLASSES_ROOT\Licenses\9DF1A470-BA8E-11D0-849C-00A0C90DC8A9 = cchcqjejhcgcqcfjpdfcdjkckiqikchcojpd

// FlexGrid Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\72E67120-5959-11cf-91F6-C2863C385E30 = ibcbbbebqbdbciebmcobmbhifcmciibblgmf

// MAPI Controls 6.0 license key
HKEY_CLASSES_ROOT\Licenses\899B3E80-6AC6-11cf-8ADB-00AA00C00905 = wjsjjjlqmjpjrjjjvpqqkqmqukypoqjquoun

// MSRDO 2.0 license key
HKEY_CLASSES_ROOT\Licenses\B1692F60-23B0-11D0-8E95-00A0C90F26F8 = mjjjccncgjijrcfjpdfjfcejpdkdkcgjojpd

// RemoteData Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\43478d75-78e0-11cf-8e78-00a0d100038e = imshohohphlmnhimuinmphmmuiminhlmsmsl

// Windowless Controls 6.0 license key
HKEY_CLASSES_ROOT\Licenses\80E80EF0-DBBE-11D0-BCE2-00A0C90DCA10 = qijimitpmpnpxplpvjnikpkpqoxjmpkpoivj

// PictureClip Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\6FB38640-6AC7-11cf-8ADB-00AA00C00905 = gdjkokgdldikhdddpjkkekgknesjikdkoioh

// Rich TextBox Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\DC4D7920-6AC8-11cf-8ADB-00AA00C00905 = iokouhloohrojhhhtnooiokomiwnmohosmsl

// Sheridan Tab Control license key
HKEY_CLASSES_ROOT\Licenses\190B7910-992A-11cf-8AFA-00AA00C00905 = gclclcejjcmjdcccoikjlcecoioijjcjnhng

// SysInfo Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\E32E2733-1BC5-11d0-B8C3-00A0C90DCA10 = kmhfimlflmmfpffmsgfmhmimngtghmoflhsg

// Winsock Control 6.0 license key
HKEY_CLASSES_ROOT\Licenses\2c49f800-c2dd-11cf-9ad6-0080c7e7b78d = mlrljgrlhltlngjlthrligklpkrhllglqlrk
lexsty Messages postés 169 Date d'inscription samedi 10 décembre 2005 Statut Membre Dernière intervention 18 juin 2017
21 juin 2006 à 00:44
Bonjour.
Je trouve cette simulation très intéressante.
Et bravo pour ce travail!
A plus.
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
1 avril 2006 à 20:13
Ok ! Merci à toi !
@+
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
31 mars 2006 à 18:41
Salut!
Content que mon site t'é plus!
Je pense que oui, ya des 10-periodique ou meme 20 ou 30 mais faut les trouver! Dur-dur, les combinaisons sont quasi infini! Mais bon j'y travaille, je te met un commentaire si j'ai du nouveau.
A la prochaine!
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
30 mars 2006 à 21:49
Salut !
Je ne connaissais pas l'adresse que tu m'as donnée, c'est vraiment intéressant (démos en applet java, c'est du tout bon).
Merci bien pour ce site !

Concernant ta figure, je l'ai essayée, c'est effectivement une figure 5-périodique. 5, c'est relativement important, je trouve. Existe t-il des figures 10-périodiques ?? 20-périodiques ??
Grande question.

Sinon, dans le site dont tu m'as donnée l'adresse, il y a une figure relativement impressionnante... celle de la mémoire.

Le jeu de la vie apparait comme simple, mais très très nombreuses sont les possibilités.

Merci pour l'intérêt que tu portes à ma source !
@+
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
30 mars 2006 à 17:55
zut j'ai oublié le @+
alor @+!
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
30 mars 2006 à 17:54
Salut Violent_Ken!
Excuse si jé pas tro compri ton explication mais ton site est interecent, merci! Si tu veux j'ai trouvé une page qui pourait t'interesser, mais peut etre que tu la connait déja:

http://www.vieartificielle.com/article/?action=article&id=91&nl=3&pattern=max

Ya des tas de structures différentes et tu sais quoi? Jé meme trouvé ton remplisseur! Sisi! ;)
Jé aussi fé(tou seul, com un gran ;)) une figure en 5-périodique:

00011000
00011000
00011000
11111111
11111111
00011000
00011000
00011000

En fait c'est une croi toute bete mais elle est sympa je pense...
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
29 mars 2006 à 20:58
Salut !
Une courbe de Gauss est une courbe particulière, caractérisée par l'équation f(x)=exp(-x²).
En clair, cette courbe présente une "bosse" caractéristique au "millieu", et f(x) (valeur lue sur l'axe vertical) décroit pour les valeurs d'avant et d'après cette bosse.
Je ne sais pas si je suis très clair, mais voilà quelque chose qui t'expliquera peut être mieux (en tout cas de manière beaucoup plus rigoureuse)
http://fr.wikipedia.org/wiki/Courbe_de_Gauss

Cela dit, je ne sais pas si la courbe que je donne est réellement une courbe de Gauss, mais la forme générale s'en approche (extremum et pentes croissantes/décroissantes avant/après).

Meric pour ton commentaire !!
@+
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
29 mars 2006 à 13:34
Super! Merci Violent_ken! J'ai compris et j'ai essayé ton exemple: effectivement tout se développe! Et pareil pour cacophrene: ses chiffres marchent, j'ai testé(non pas que je ne le croyais pas, mais je voulais voir ce qu'ils donnaient). Sinon(excuse s'il y a encore des questions, mais j'ai que 13 ans!), c'est quoi la courbe de Gauss? J'ai compris que tu la compare à la courbe que te donne ton prog en bas, mais moi je trouve juste qu'elle monte puis redecent... C'est dommage que je n'ai voté que 9, le 10 était largement mérité, mais on ne peut pas revoter. @ +
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
28 mars 2006 à 21:28
Je pense que le jeu en lui même est bien décrit dans le présentation de la source.
Il s'agit de placer des cellules sur une matrice, et d'observer l'évolution de cette population (population=ensemble des cellules) dans le temps. L'évolution est régie par les lois de la vie, données tout en haut.

Figure stable : on dit qu'une figure est stable si elle ne change pas dans le temps (c'est à dire qu'elle reste identique, quelque soit le temps écoulé)
Figure instable : figure qui se transforme dans le temps (c'est à dire qu'elle ne reste pas identique durant l'évolution)
Figure n-périodique : figure qui se répète périodiquement. Remplacer le 'n' par un entier naturel. Par exemple, une figure 2-périodique est une figure qui connait deux états distincts, un état pour le temps t=2*x (avec x naturel), et un état distinct pour le temps t=2*x+1 (x naturel)

Les chiffres donnés par Cacophrene représentent une matrice : le '1' signifie que la cellule est vivante, et le '0' qu'elle est morte.

La structure du serpent, par exemple, est une figure (entendre par là ensemble de cellules vivantes) remarquable, de part l'évolution qu'elle a dans le temps.


Note : essayé l'exemple de population que je donne, tu verras ce qu'est qu'une stucture remarquable
@+
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
28 mars 2006 à 20:33
Salut à tous! Dites, vous ne pouriez pas m'expliquer, j'ai rien compris... C'est quoi des figures stables, instables ou n-périodique? Et c'est quoi les nombres donnés par Cacophrene, avec les structures du serpent et du mangeur? J'ai mis 9, car ca a quand meme l'air très interessant, je cherchait un jeu de la vie, mais je comprend rien, désolé! Si quelqu'un peut m'expliquer, sa m'arrangerais, merci d'avance!
cs_popo66 Messages postés 4 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 9 janvier 2006
9 janv. 2006 à 11:36
ce mathématicien etait un bon génie il nous a fourni une métaphore de l'organisation de l'univers
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
24 déc. 2005 à 08:57
Salut !

La liste des figures stables n'est pas exhaustive. Tu peux par exemple y ajouter une structure connue sous le nom de serpent donnée par la matrice :

1101
1011

ou même une version plus grande :

11000
10101
00011

Existe aussi le mangeur :

0011
0101
0100
1100

Sinon pour la courbe en effet ça en a l'air. Reste à savoir si c'en est une ;-)
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
23 déc. 2005 à 22:14
Et voilà le fichier *.pdf !!
En prime j'ai ajouté un exemple (remplisseur.jv). C'est l'exemple bien connu d'un structure amenant à remplir la grille. Essayez-là absolument !! J'ai mis du temps à la dessiner !

Cacophrene ==> Pour la réponse à ma question, c'est effectivement un dosage entre mort par étouffement, mort par isolation et naissance qui amène à environ 40%. Et ce qui est remarquable, c'est l'allure de la courbe que je donne dans le fichier *.pdf ==> courbe de Gauss, quasiment.
@+
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
23 déc. 2005 à 21:47
Re !

J'ai trouvé mon bonheur sur cette page : http://t0m.free.fr/jdlv/jdlv_auto.htm

Cordialement,
Cacophrène
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
23 déc. 2005 à 21:34
Salut !

J'ai un embryon d'idée (rien de plus) concernant ta question Violent_Ken. On peut penser que l'augmentation de la densité fait diminuer la fréquence d'application de la règle "mourir par désertification" (le cas < 2), et donc augmenter le maximum, cela jusqu'à un seuil (approché par une densité de 0.4) à partir duquel la règle "mourir par surpopulation (le cas > 3)" s'applique de plus en plus et refait chuter le maximum.

Pour ce qui est d'une approche théorique, on doit sans aucun doute pouvoir s'en tirer à bon compte en supposant que la répartition des cellules est uniforme sur la surface considérée, en déduire des probabilités d'exécution des règles de naissance et de décès, puis en déduire une valeur qui permet d'obtenir le meilleur équilibre (et donc la valeur la plus grande). Par contre si on ne suppose pas la répartition constante sur toute la surface, ou pire si on considère cette surface comme un tore (les côtés bouclent les uns avec les autres), cela sera sans aucun doute plus difficile.

Bien à toi,
Cacophrène
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
23 déc. 2005 à 21:03
Oups ! Ne lisez pas
"à ma source et fichier *.pdf"
mais
"à ma source un fichier *.pdf"
Désolé !
Je travaille sur le *.pdf...
@+
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
23 déc. 2005 à 21:01
Salut !

Merci Cacophrene pour le commentaire et la note !

En effet, on peut remarquer l'existence de structures stables, instables, n-périodiques, mais aussi n-périodiques se déplaçant (quoique rare).
On peut donc se poser la question que tu te poses, Cacophrene, mais je ne connais pas de moyen pour les repérer. A par tester et observer, je ne vois pas ? Si quelqu'un d'autre a une idée, çà m'intéresse aussi !

Deuxième question que moi je me pose : en posant des cellules aléatoirement, on peut remarquer un phénomène bizarre. En effet, en posant 10% du nombre de cellules max. aléatoirement, le pic (sans compter au temps t=0) prend la valeur de 450 environ. A 20%, il devient de 2000. A 30%, il passe à 3500. A 40%, 3600. A 50%, 2800. A 60%, 1550. A 70%, 600. A 80%, 130, et à 90% 30.
Le maximum est donc atteint pour une densité initiale de 40% environ. Peut on calculer ce chiffre de manière théorique, et non expérimentale ?
Si vous avez des idées, faîtes m'en part !

Je vais rajouter à ma source et fichier *.pdf, regroupant quelques "figures" périodiques et stables, et des statistiques diverses.
@+
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
23 déc. 2005 à 20:20
Salut !

Oui, c'est sûr que ce n'est pas qu'un jeu, puisque c'est aussi, malgré sa simplicité, une machine de Turing ! En tout cas ce code a suscité chez moi une interrogation à laquelle je n'ai pas trouvé de réponse, et que je me permets de vous soumettre.

L'utilisation d'un tel simiulateur montre l'existence de structures stables, oscillantes ou n-périodiques (on leur donne des noms amusants sur le net d'ailleurs). Je cherche désespérément un moyen de repérer de telles structures (surtout les structures n-périodiques) sans trop de tests. Si quelqu'un a une idée, je suis preneur.

Sinon, pour le programme lui-même, je le trouve d'autant mieux fait qu'il est plein d'options et très bien commenté.

Cordialement,
Cacophrène

PS : j'ai noté 10.
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
21 déc. 2005 à 18:44
Salut camillus !
Je pense en effet que le problème viens de ton logiciel "visual studio.net 2003". Mon programme a été fait en VB6, donc je suppose incompatible avec vb.net.
"echec de la mise à niveau : une exception s'est produite : composant CommonDialog n'a pas de licence au moment du design référencé" ==> ?? je vois vraiment pas, désolé !

En espérant que tu puisse trouver quelqu'un qui t'aide un peu plus, ou que tu puisse accéder à VB6, je te souhaite une bonne prog ! @+
cs_camillus Messages postés 8 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 21 décembre 2005
21 déc. 2005 à 15:31
Zut, je n'arrive pas à l'ouvrir. décidemment je dois vraiment être nulle.
j'utilise visual studio.net 2003, c'est peut etre ça le problème non ?

il me dit : echec de la mise à niveau : une exception s'est produite : composant CommonDialog n'a pas de licence au moment du design référencé.
le problème c'est que je ne sais pas me servir de visual studio (mais j'ai que ca à disposition pour lheure) par contre je sais me servir de vb6 mais je ne l'ai pas à disposition. donc si on pouvait me dire comment faire...

merci

camillus (qui semblerait il n'est pas faite poour le vb !)
Utilisateur anonyme
18 déc. 2005 à 21:18
Vraiment très bien
Un bon algorithme, vitesse d'évolution assez rapide
Sympa 9/10
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
18 déc. 2005 à 20:40
Salut Econs :
-C'est bien Mat2 qui était visé !
-Oui, j'avais inversé + et -, merci de me le faire remarquer ! C'est aussi possible de changer la vitesse avec le progressbar (en cliquant dessus et en déplaçant la souris)

Les deux bugs sont maintenant corrigés. Merci à toi pour ton commentaire et pour m'avoir permis de les corriger !
Merci, @+
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
18 déc. 2005 à 20:31
============================================
A la ligne indiquée, la deuxième instruction devrait modifier Mat2, et non Mat.

Private Sub Pic_cell_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 0 Then Exit Sub
DoEvents
'alors la on ajoute des cellules
Dim X_ As Long, Y_ As Long
X_ = Int((X - 1) / 3) + 1
Y_ = Int((Y - 1) / 3) + 1
If Button = 1 Then NewCell X_, Y_
If Button = 2 Then RemoveCell X_, Y_
If Button 4 Then Mat(X_, Y_) 1: Mat(X_, Y_) = 1 <-------
Afficher
End Sub


=======================================
Petit truc bête : tu as inveré les boutons + et - pour la vitesse de défilement.

=======================================

Rien d'autre à ajouter. C'est vraiment très bien. Tu n'apportes pas qu'un simple jeu de la vie, mais il y a plein de petites fonctionnalités sympas pour faire évoluer le jeu.
Bref, c'est chouette !
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
18 déc. 2005 à 18:53
Voilà ! Postez tous vos commentaires !!
@+