Le bouton ci-dessous permet de lancer l'application "QLife".
Cette application vous permettra de simuler différentes formes du jeu de la vie.
Il a été conçu pour simuler, entre autre, le "jeu de la vie éternelle" en introduisant des fluctuations aléatoires permettant au jeu de ne jamais atteindre d'état périodique.
Pour commencer
Pour commencer la simulation, il existe plusieurs solutions :
- Cliquer sur le tableau noir pour dessiner des formes puis activer le timer en cochant la case à cocher
- Sélectionner un "Random Filler" comme "Final Processor" et cliquer sur "Step", puis sélectionner le "Fluctuation Processor" et activer le timer en cochant la case à cocher
- Activer le timer en cochant la case à cocher, augmenter le paramètre "Range" du "Fluctuation Processor" au delà de 2.5 jusqu'à l'apparition des premières formes, puis réduire de nouveau ce paramètre jusqu'à une valeur proche de 0
- ...
L'algorithme
Chaque cellule peut prendre une valeur quelconque entre 0 et 1. Une valeur de 0 correspond à une cellule morte. Une valeur de 1 correspond à une cellule vivante. Chaque itération consiste en l'application de la procédure suivante, sur chaque cellule :
- Le "neighbour calculator" sélectionné détermine une valeur n en fonction du voisinage de la cellule.
- Le "creation processor" et le "survivance processor" déterminent chacun une valeur c(n) et s(n), correspondant au nouvel état d'une cellule supposée respectivement morte ou vivante en fonction de n.
- Un état intermédiaire e(t+1) est calculé en pondérant c(n) et s(n) suivant l'état actuel de la cellule, à partir de la formule suivante :
e(t+1)=s(n)*e(t) + c(n)*(1 - e(t))
.
- Le "final processor" est appliqué à cet état intermédiaire pour déterminer le nouvel état de la cellule.
Le code source de l'applet est disponible dans l'archive java.
Les calculateurs et les processeurs
Les différents éléments sélectionnables sont les suivant :
- Le "Neighbour Calculator" additionne les valeurs ds voisins directs.
- Le "Density Calculator" calcule la densité autour de la cellule en pondérant les valeurs voisines suivant la distance au carré.
- Un "Square Processor" permet à une cellule de survivre (d'être crée) si la valeur n est comprise dans un certain intervalle.
- Le "Fluctuation processor", quand sa valeur est suffisamment faible, permet au jeu de se renouveler éternellement en introduisant un bruit gaussien sur les valeurs finales des cellules. Le "Random Calulator", introduisant des fluctuations lors du calcul du nombre de voisins, produit un résultat équivalent.
- Les "Normal Law processor" appliquent une valeur de survie ou de création suivant une loi normale autour d'une moyenne pour la valeur n.
- Le "Screen Cleaner" et le "Random Filler" permettent de remplir l'écran de valeurs nulles ou aléatoires.
La configuration par défaut est équivalente au jeu de la vie classique. Dans la pratique les valeurs différentes de 0 ou de 1 disparaissent après quelques itérations dans cette configuration.