Le jeu de la vie
Le jeu de la vie de Conway en direct : une grille de 150 × 150 stockée dans une seule liste, avancée dix fois par seconde par une action, dessinée en carte de chaleur.
Le jeu de la vie de Conway est un automate cellulaire sur une grille carrée. Chaque cellule est vivante ou morte, et toutes les cellules se mettent à jour ensemble, une fois par génération, d'après le nombre de leurs huit voisines : une cellule morte ayant exactement trois voisines vivantes naît, une cellule vivante ayant deux ou trois voisines survit, et toute autre cellule meurt ou reste morte. Ces trois règles, sans joueur ni hasard, produisent des planeurs qui se déplacent, des oscillateurs qui clignotent sans fin, des canons qui émettent un flux infini de planeurs, et des motifs capables de calculer tout ce qu'un ordinateur peut calculer.
Ce document garde toute la grille de 150 \times 150 dans une seule liste S de N^2 cellules, ligne par ligne, de sorte que la cellule (x, y) est S[1 + x + Ny] . Le nombre de voisines n est construit sans aucune boucle : faire tourner la liste d'une position aligne chaque cellule avec sa voisine horizontale, la faire tourner de N l'aligne avec sa voisine verticale, et de N \pm 1 avec une voisine diagonale. Huit rotations additionnées donnent d'un coup le nombre de voisines vivantes de chaque cellule, et le bouclage de la rotation fait de la grille un tore : un planeur qui sort par le bord droit revient par le bord gauche. La cellule d'action réécrit S à partir de n dix fois par seconde avec une seule règle par morceaux ; la carte de chaleur relit la grille par l'indice de liste et peint les cellules vivantes en noir.
La grille de départ est un canon à planeurs de Gosper, le premier motif trouvé qui croît sans limite, saisi à la génération 120 pour que son flux de planeurs soit déjà en route. Au bout du flux, un mangeur, un petit motif stable, absorbe chaque planeur et reste tel qu'il était : toute l'image se répète donc exactement toutes les 30 générations. Le document s'ouvre sur cette partie de la grille ; faites un zoom arrière pour voir le reste. Mettez l'action en pause pour figer une génération, ou modifiez la liste pour planter votre propre motif. D'après le graphe Desmos 2lzec8zwrz de Fabrice Neyret.
JavaScript est requis pour afficher le tracé interactif.