Utilisateur:Metaluser666/Automate de Bexandre
Développé par | Bexandre |
---|---|
Première version | [1] |
Dernière version | () |
Écrit en | Batch, assembleur[2] |
Environnement | Microsoft Windows |
Type | Automate cellulaire, jeu sans joueur |
Politique de distribution | Gratuit |
Licence | Open source |
Site web | http://bexandre.alwaysdata.net/automate.html |
L'automate de Bexandre est un automate cellulaire (que l'on peut également caser comme algorithme probabiliste graphique) créé par le programmeur français Bexandre. Cet automate est un tour de force technique pour le Batch et utilise le hasard et le pseudo-aléatoire pour arriver à ses fins, car il utilise un générateur de nombres pseudo-aléatoires.
Règles
modifierÉtats
modifierLes cellules ont 5 états possibles, contrairement à beaucoup d'autres qui, eux, n'en ont que deux. Ces 5 états sont: vide, tête verte, tête rouge, point vert et point rouge. Des chiffres sont générés par hasard par le programme. Néanmoins, ces chiffres seront toujours compris entre −1 et 11. On peut donc définir des mouvements à partir de celles-ci: si le chiffre généré est compris entre -1 et 3, alors la tête rouge va une cellule en haut. S'il est compris entre 3 et 6, elle va une cellule en bas. S'il est compris entre 6 et 9, elle va une cellule à droite. S'il est compris entre 9 et 11, elle va une cellule à gauche. La tête verte a, elle, d'autres définitions, mais les chiffres sont les mêmes. De plus, si une tête va à 40 cellules depuis le haut, elles se font éjecter 29 cellules en arrière. Dernièrement, si elle va à 30 cellules depuis la gauche, il sera éjecté à 19 cellules en arrière.
Utilité
modifierCe programme d'automate cellulaire permet de représenter graphiquement le hasard. Ce hasard-là est tout de même contrôlé, car il n'inclut que des chiffres entre -1 et 11. Il permet aussi de constater que le hasard peut donner des situations assez intéressantes: les têtes vont parfois se loger dans un coin et y rester pendant un moment, ou, au contraire, bouger dans tous les sens. Quand une tête est sur un point qu'il a créé, il est rare qu'il reste dessus, mais ça peut tout autant arriver qu'il n'en pose jamais à un endroit dans lequel il a déjà mit un point (durant une période de 100 frames, qinon, malgré la place, c'est impossible). Pourtant, rien n'indique dans les codes que la tête devrait plutôt se diriger autre part que là où il a posé un point. Néanmoins, il est moins rare de voir une tête mettre un point sur celui de l'autre qui se balade près d'elle.
Bugs
modifier- Il arrive que les têtes ne bougent pas. C'est dû à un bug dans le programme. Cela a premièrement causé un énorme bug qui consistait au fait que l'une (voire les deux) tête(s) restent figées indéfiniment. Une solution fut premièrement trouvée: réinitialiser la position des têtes tous les 100 frames. Puis, par pur hasard, Bexandre a trouvé la solution qui permettait aux têtes de toujours bouger, même après un long moment où l'une restait figée: changer les valeurs, tout simplement[3].
- La règle des chiffres compris entre -1 et 11 devraient plutôt, selon les codes, être celle des chiffres entre 1 et 9. Néanmoins, un autre bug fait que -1, 10 et 11 sont également présents[3].
L'automate de Bexandre et le jeu de la vie
modifierPoints communs
modifierLe jeu de la vie de John Horton Conway a quelques similitudes avec l'automate de Bexandre – même avec 45 ans d'écart. Premièrement, les frames équivalent aux générations. Deuxièmement, c'est un automate cellulaire, comme le Conway's Game of Life, ce qui signifie que chaque cellule a des états variables. Les deux automates cellulaires imposent également des conditions aux cellules.
Différences
modifierContrairement au jeu de la vie dans lequel les cellules n'ont que 2 états possibles ("vivants" ou "morts"), elles en ont 5 dans l'automate de Bexandre. De plus, les règles dictent les mouvements des cellules de manière contrôlée, ce qui nous permet de créer des patterns dans le jeu de la vie. Mais dans l'automate de Bexandre, aucun pattern n'est prédictible, car tout comportement y est aléatoire.