ATCO Metapixel - jeu de Conway de la vie

Jeu de la vie de Conway est un type de 2D automate cellulaire qui utilise un ensemble de règles simples pour décrire le comportement des cellules au cours des étapes de temps discret. Étonnamment, vous pouvez générer le comportement très complexe d’automates cellulaires même si les règles habituellement peuvent se résumer en une phrase. Dans les automates cellulaires 2D, comportement de la cellule à l’étape suivante de temps est dicté par son état actuel et l’état actuel de ses huit voisins. Les règles de jeu de Conway de vie sont reproduits ci-dessous :

  1. N’importe quelle cellule vivent avec moins de deux voisins direct meurt, comme si causés par les enfants de moins de la population.
  2. Les cellules vivantes avec deux ou trois voisins vivants se nourrit à la prochaine génération.
  3. N’importe quelle cellule direct avec plus de trois voisins direct meurt, comme si par le surpeuplement.
  4. Toute cellule morte avec exactement trois voisins direct devient un de cellules vivantes, comme si par reproduction.

Beaucoup de modèles intéressants ont été étudiées dans la vie, quelques modèles simples sont présentés ici. Certains modèles, appelés « nature morte » sont stationnaires et ne changent pas au fil du temps (bloc, pain, bateau). « Oscillateurs » sont le motif qui se répète après un certain nombre d’étapes (



,


,


). « Vaisseaux spatiaux » est un type d’oscillateur qui traversent l’espace comme ils oscillent. La forme plus simple et la plus courante du vaisseau spatial est appelée un


. Un autre vaisseau commun est le


. « Guns » sont des structures qui produisent un flux de vaisseaux spatiaux, ici est un exemple de


. Certaines conditions initiales très simples créent un comportement complex, comme c’est le cas avec le r pentominos, un modèle de cinq cellule.

En utilisant une combinaison de vaisseaux spatiaux, des natures mortes, oscillateurs, fusils et autres objets de base, il est possible de construire des structures extrêmement complexes dans la vie. Voici un exemple d’un pistolet de période 416 qui construit les vaisseaux 60P5H2V0 à l’aide d’une série de collisions planeur chronométré :

En 2006, Brice dûment publié une structure appelée l' OTCA Metapixel ; son but est d’émuler le comportement d’une seule cellule de vie. Je suis tombé sur cette vidéo la semaine dernière et a décidé que je devais comprendre comment il fonctionne :

L’OTCA Metapixel n’est pas le premier ou le plus rapide metapixel découvert dans la vie (aussi vérifier la P5760 maille de vie et la cellule profonde), mais il a la propriété intéressante de ressemblant à une cellule de vie avec zoom arrière. Il a aussi un registre qui permet de le programmer à se comporter selon n’importe quel arbitraire vie comme automate cellulaire ruleset.

J’ai obtenu tous mes infos de la Vie Wiki, le site de l’OTCAet le Lexique de la vie et (surtout) par téléchargement Golly et regarder l’OTCA Metapixel exécuter.

Voici comment cela fonctionne :

Horloge - un rayon tracteur est un ruisseau de vaisseaux spatiaux qui tirez lentement sur un objet dans la direction de sa source. Un exemple simple est le rayon tracteur de pain. Cette vidéo montre un type légèrement différent du rayon tracteur dans une dent de scie.

L’OTCA Metapixel utilise un rayon tracteur comme une horloge pour réglementer la chronologie des événements :

Dans la vidéo ci-dessus, un rayon tracteur tire un bloc vers le bas par 8 piles dans chaque collision, libérant un planeur à droite chaque fois. Une clôture sur le côté du faisceau tracteur fait de Eater 1détruit les planeurs immédiatement, mais il y a quelques trous dans la clôture qui permettent aux planeurs de traverser et d’interagir avec d’autres structures dans le metapixel à intervalles régulièrement.

Le premier coup dans la vidéo montre la source du bloc et trois planeurs de tir dans un vaisseau spatial léger (LWSS) paquet pistolet, qui jaillit alors trois séries de trois LWSSes, un jeu pour chaque aile entrant. La photo suivante montre la source du faisceau tracteur et quatre planeurs plus tiré depuis le rayon tracteur dans la metapixel. Cette première aile initie un voisin comte décoder la séquence, les deux planeurs lire les résultats du décodeur, et le dernier planeur déclenche une cascade de logique qui finalement décide s’il faut tourner le metapixel allumé ou éteint dans le prochain cycle d’horloge (tous décrits plus en détail plus loin). Le rôle des 7 planeurs se résume dans



.

Au cours de chaque cycle de l’horloge de l’OTCA Metapixel, le bloc est détruit à la source du faisceau tracteur et restauré dans sa position de départ, poursuivant le cycle.

Règles et logiques - les règles de la metapixel sont encodés dans deux colonnes (enregistre) comme le montre les images ci-dessous. Règles de vie comme automates sont écrites dans la forme B # / s #, décrite ici. Règles de Conway sont définis comme B3/S23, donc les bits correspondants des registres de l’OTCA metapixel sont remplis avec un mangeur-1 .

registres de l’État

À chaque cycle d’horloge trois séries de trois LWSSes (9 au total sur une seule ligne) sont tirés un fusil de paquet (déclenché par l’horloge, expliqué plus haut) et envoyés sur une boucle complète autour de la metapixel. Comme le train de vaisseaux spatiaux passe par chacun de ses voisins de Moore , le premier navire du train est en collision avec un étang dans son chemin d’accès si le voisin est actuellement vivant, détruisant le navire et en diminuant le nombre total de navires dans le train par un. Donc si un metapixel a 4 voisins vivants, seulement cinq LWSSes retournera après avoir terminé une passe autour du périmètre. Une collision d’un train de LWSSes avec un étang est indiquée ci-dessous à environ 0:32 (je vais vous expliquer comment les étangs y arriver plus tard) :

Cette vidéo montre également le berger du train des LWSSes autour de la metapixel par twin bees navettes et autres réflecteurset un exemple de « ajustement des couleurs » des navires (en changeant leur phase légèrement) par une paire de canons de planeur. Le chemin de la LWSSes ainsi que l’emplacement des régleurs de couleur et des étangs possibles est affiché dans



.

Le chemin d’accès complet du train LWSS est illustré ci-dessous. Remarquez comment un navire est prélevé à l’avant du train qui passe chaque voisin de vie.

Lorsque le train de LWSSes termine une boucle, ils sont canalisés vers une mémoire tampon sync et p46 p40 convertisseur où ils ont donné la même phase. Puis ils sont envoyés dans le registre de règles où ils sont est entré en collision avec un autre LWSS venant de la direction opposée (provenant d’un des planeurs coup hors de l’horloge) pour décoder le train de LWSS dans le nombre de voisins vivants (représenté dans



).

L’emplacement de la collision entre le train LWSS et le LWSS originaire de forme l’horloge dépend de combien de LWSS ont été détruites par l’avant du train pendant la boucle autour de la metapixel. Le mécanisme est mis en place afin que la collision jaillit de deux planeurs dans des directions opposées, orientées vers le Registre qui correspond au nombre de vie voisins que le metapixel a (encore une fois, voir



comme référence).

Normalement, les planeurs seront chacun entrent en collision avec une ruche pour produire un bloc et un étang, c’est ce qu’on appelle une réaction honeybit. Si vous regardez depuis environ 6 min dans la vidéo ci-dessus, vous verrez la collision de la LWSSes antiparallèles, envoyant deux planeurs vers 4ème slot (compte vers le haut par le bas, en commençant par 0) dans les registres de la naissance et de la survie, et à environ 06:30 deux étangs sont forment dans les registres. Les vaisseaux restants dans le train LWSS entrent en collision avec un mangeur-1 et sont détruits. La vidéo ci-dessous montre un examen approfondi à travers de nombreuses générations :

Si l’emplacement dans le Registre est occupé par un mangeur-1 (comme le logement 3e dans le registre des naissances, ainsi que les fentes de 2e et 3e dans les registres de survie, nouveau décompte à partir du bas commençant par 0), puis l’aile entrant est détruit avant qu’il ait une chance de déclencher une réaction de honeybit avec la ruche. Ce produit aucun étang dans le registre. Dans ce mécanisme un registre a un étang si le nombre de voisins de vie ne satisfait pas les conditions de vie dans la prochaine génération et aucun étang si elle le fait. Se souvenir de que cette information est partagée entre deux registres (naissance et survie) et dans une étape ultérieure, qu'une logique se penchera sur l’état actuel de la metapixel pour déterminer qui s’inscrire pour lire à partir (décrit plus loin). Ce mécanisme est ce qui rend l’OTCA Metapixel programmable pour n’importe quel groupe de règles de vie comme, assez cool.

Ensuite, l’horloge jaillit une paire de LWSSes de lire ces registres (un LWSS pour chaque registre), suivant les trajectoires représentés dans



. Si un étang est présent dans un registre, le LWSS se heurte à l’étang et est détruit. Ceci termine la réaction honeybit et restaure la ruche dans la même position, qu'il était à l’origine. Si le LWSS n’a aucun étang sur son passage, il est permis de continuer dans le mécanisme logique suivant. Dans la vidéo ci-dessus, voir si vous pouvez prédire l’état suivant de le metapixel par lecture des registres.

Avant de passer à la finale logique du système, je vais regarder comment les États les voisins sont comptés vers le haut.



montre les 8 canaux d’entrée/sortie de chaque metapixel. En prenant le regarder de plus près l’un d’eux, vous verrez une autre réaction de honeybit qui se passe :

La réaction de honeybit sur la gauche correspond à l’état de la metapixel sur la droite, et la réaction à droite correspond à l’état de la metapixel sur la gauche. Le LWSS train se déplace dans le sens horaire autour du metapixel, appartient donc le train en marche vers le bas de l’écran appartient au pixel sur la gauche et le train en marche vers le haut de l’écran au pixel sur le droit.

Ces réactions de honeybit sont fixées par un vaisseau spatial de poids moyen (CCPM) qui se déplace dans un chemin dans le sens anti-horaire autour du pixel de chaque cycle d’horloge.



une description de son chemin et le chemin d’accès de tous les planeurs qu’il génère pour 8 honeybit réactions autour du metapixel. Le CCPM est créé uniquement si l’état actuel de la metapixel est vivant et à la fin de la boucle autour du pixel, elle est détruite.

La finale logique de la metacell est résumée dans



.

Première quelques définitions :

C est l’état actuel de la cellule, 1 ou 0

B est l’état du registre des naissances, 1 pour les conditions de naissance satisfait, 0 pour non satisfaits

S s’il est convaincu de l’état de l’enregistreur de survie, 1 pour, 0 pour non satisfaits

Les États de C, B et S sont stockés dans le metapixel par la présence ("1") ou non ("0") de trois bateaux. Bateaux ont la propriété intéressante que lorsqu’ils sont touchés avec un planeur qu’ils reflètent une nouvelle aile avec une trajectoire perpendiculaire à la trajectoire de l’aile entrant. Cette collision a détruit le bateau, donc bateaux est connus comme un réflecteurs de temps. La position des bateaux dans la metacell est représentée dans



. Les bateaux B et S sont définies à l’aide de la LWSSes qui sont en mesure de passer par les registres de naissance et de la survie pendant l’étape de décodage décrit ci-dessus. Dans cette vidéo, montre comment les États de la B et S sont sur « 1 » par une paire de LWSSes à partir de 03:47, du moment qu’ils sont définis est livré à 04:54 :

Un planeur est utilisé pour lire les États de C, B et S et définir un étang en G ou H (représenté dans



). La logique de formation pond G et H (« 1 » signifie un étang est formé, « 0 » ne signifie aucun étang) est donnée par la logique suivante :

Si C est présent, alors :

G = ! S (G est égal à l’opposé de S)

H = 0

Si C n’est pas présent :

G = 0

H = B

Le planeur final publié par l’horloge (décrit au début) définit d’une cascade de logique qui calcule ces relations. Le planeur est libéré par le petit trou dans le mur à côté de l’horloge, à un peu moins de la moitié du côté gauche de la vidéo ci-dessus, déclenchant la formation d’un LWSS qui se déplace vers la droite de la vidéo, libérant deux planeurs sur son chemin (par exemple à partir d’environ 16:12). Le premier planeur rebondit et finalement se transforme en une LWSS qui lit les résultats sur G et H, plus que dans le paragraphe suivant. Le deuxième planeur se dirige vers C, si C est présent il reflète et démarre en direction de S. Si S est présent il reflète en un mangeur ne meurt pas, si S n’est pas présent il continue d’une ruche à G et fait une réaction honeybit, formant un étang. Si C n’est pas présent, le deuxième planeur se dirige vers B à la place. Si B est présent, le planeur réfléchit B et fait une réaction honeybit à H, sinon il se heurte à un mangeur et meurt. 16:20 dans la vidéo ci-dessus montre le planeur se reflétant sur C, passant par un S absent et faisant un étang à G.

À 16:38 vous pouvez voir un étang fixé à G et une LWSS venant de la gauche pour lire G et H. Si G ou H a un étang de la valeur, le LWSS est détruite, tel qu’illustré à 16:39. Si ni sont définies (voir 10:47) le LWSS continue sur et forme un bateau à notT (représenté par T avec une ligne en haut sur



). Cela peut se résumer à la logique :

notT = ! (G || H) (notT est égale à 1 quand G et H sont les deux 0, sinon c’est 0)

Une troisième aile publiée à 10:57 par l’original LWSS logique cascade déclencheur se dirige vers notT. Si le bateau est présent, il reflète le bateau et frappe un mangeur, si le bateau est absent il continue de T (encore une fois,



). Le planeur est détruit par un mangeur à 11:16, mais vous pouvez le voir la tête de T à partir de 05:33.

Un quatrième planeur est libéré par le LWSS original qui se transforme en une LWSS qui nettoie les bateaux restes laissés à B ou S après ont terminé les opérations logiques. Un exemple commence à 05:24. Cette LWSS n’a aucune autre fonction, il est détruit par un bateau, qu'il nettoie, ou un mangeur. Sa trajectoire est montré



.

Après tout cela nous reste avec l’état suivant :

T = présence d’un LWSS à T, la logique formelle, car cet État est donné par :

T =! notT = G || H = (C & & ! S) || (! C & & B)

que vous pouvez lire comme « si le pixel est actuellement vivant et il ne conforme pas aux exigences pour la survie, ou si le pixel est actuellement mort et satisfait aux exigences pour la naissance, » essentiellement si le prochain état metapixel diffère de l’état actuel il y aura un LWSS à T.

Le LWSS à T suit le chemin montré



. À 06:28, vous pouvez voir un exemple de la LWSS transforme en une série de rebondissements. À 06:39 il tire un planeur au large de laquelle se transforme en une LWSS qui se dirige vers la mémoire tampon de synchronisation et, éventuellement, le bit de bateau État cellule (différent de C, plus sur cela dans le paragraphe suivant). Le LWSS original continue vers la gauche, tir un autre planeur à 06:44, création d’un troisième LWSS qui se dirige vers le coin inférieur droit de la metapixel pour activer/désactiver l’état de l’affichage de la sortie ; les têtes LWSS originales pour le coin supérieur gauche de la metapixel à faire la même (plus sur cela dans la prochaine section).

Le bit de bateau État cellule est ce qui stocke en réalité l’état actuel de la cellule, (C est actualisé périodiquement selon l’état de la mèche de bateau). Si le bit de bateau est présent, ce qui indique que l’état actuel de la metapixel est « off », le nouveau LWSS se formera un planeur qui entre en collision avec elle et le supprime (commence à 07:03). Si le bit de bateau État cellule est absent, ce qui indique que l’état actuel de la metapixel est « on », le LWSS entrants formeront un planeur qui crée un nouveau bit de bateau (qui commence à 18:58).

Enfin, nous allons suivre le chemin de la LWSS originale qui a déclenché cette série d’événements. Elle suit le chemin externe montré



, obtient converti en CCPM et se dirige vers le foret de bateau État cellule. Si le bateau est peu présent, il entre en collision avec elle et meurt, bien qu’il ne conserve pas le bit de bateau au cours de cette mort (03:18). Si le bit de bateau n’est pas présent, elle passe sain et sauf et maintient la position vers la droite (07:14). Il s’agit de la CCPM même qui effectue une boucle dans le sens anti-horaire autour de la cellule, déclenchant des réactions de honeybit sur les entrées de tous les voisins. Cette CCPM n’est autorisée à faire la boucle lorsque le bit de bateau État cellule n’est pas présent, quand le metapixel est « on ». Juste avant son départ pour faire la boucle, il tire sur un planeur qui rebondit et finalement définit un bateau à C (07:20). À 07:54 vous pouvez le voir en déclenchant la première des 8 honeybit réactions autour du metapixel, un pour chaque voisin de Moore.

Affiche - le dernier morceau de la metapixel est l’affichage de sortie qui utilise une tonne de vaisseaux spatiaux pour remplir une zone carrée grande afin qu’il ressemble plus ou moins blanc. Deux synchronisés LWSSes activer/désactiver l’affichage de la sortie ; ils sont venus le dernier mécanisme logique décrit dans les paragraphes précédents, illustré



. Leur calendrier est synchronisé vers le haut à travers une série de


, puis elles sont utilisées pour activer/désactiver activer une arme à feu HWSS qui déclenche une série de LWSS "out of the blue" réactions. Les ruisseaux de LWSSes remplir l’espace carré et s’annihilent mutuellement dans le centre de la metapixel, illustré


. Les mécanismes pour les deux loquets sont similaires :

J’ai joint tous les fichiers vidéo pour cette instructable ci-dessous dans le cas de la compression d’youtube est ce qui les rend difficile à voir.

Articles Liés

Automates cellulaires et une implémentation du jeu de Conway de vie

Automates cellulaires et une implémentation du jeu de Conway de vie

Autant que je sache, n'ont été deux instructables articles sur les automates cellulaires qui se trouvent ici et ici. Ni l'article explique ce que sont les automates cellulaires, pourquoi ils sont intéressants ou comment on peut les mettre dans le cod
Matrice de LED - jeu de la vie

Matrice de LED - jeu de la vie

Ce projet s'exécutera jeu de Conway , de la vie sur une matrice de 8 x 8 LED.Il possède 2 boutons, un pour la mise en place d'un champ aléatoire, l'autre pour démarrer ou arrêter les itérations.Étape 1: matériaux Une matrice de 8 x 8 LED2 x aprox. ré
Amusez-vous avec Arduino, rien d’autre besoin

Amusez-vous avec Arduino, rien d’autre besoin

Pour le montage d'essai vide dans l'image c'est parce qu'il n'y a aucun circuit à construire, tout ce dont vous avez besoin est un Arduino.J'étais curieux de voir comment un Arduino fonctionnerait en maths et en graphisme simple texte basé alors j'ai
Matrice de 8 x 8 LED pour RaspberryPi et 3 programmes

Matrice de 8 x 8 LED pour RaspberryPi et 3 programmes

Il s'agit d'une matrice de 8 x 8 LED pour un RaspberryPi et trois programmes d'exécuter sur elle :1 - un programme « Hello World » avec une police anglaise complète.2 - un jeu de dés.3 - une petite version de 8 x 8 de jeu de la vie de Conway..Vous au
PicChess

PicChess

de vous permet jouer aux échecs ?Ce projet est un jeu d'échecs de microcontrôleur. L'objectif doit être en mesure de jouer aux échecs sur un moniteur VGA, y compris un ordinateur intelligent de jouer contre. Tout cela a été accompli avec un microcont
Jeu de vie Kit

Jeu de vie Kit

les jeu des commissions de la vie sont une plate-forme évolutive pour les visualisations des automates cellulaires. Chaque planche contient 16 LEDs dans une grille de 4 x 4, un microcontrôleur et communication et réseau de distribution de puissance.
Opération taille de vie jeu

Opération taille de vie jeu

comme un enfant j'ai aimé le jeu de Milton Bradley fonctionnement, le buzzer toujours m'a fait peur quand il a explosé, mais c'était amusant. Le but du jeu opération consiste à enlever une partie du corps avec des contact avec la pince à épiler pour
RGB LED Pixel tactile réactive Table de jeu

RGB LED Pixel tactile réactive Table de jeu

Les tables sont des objets utiles à avoir et que nous avions besoin d'une nouvelle table basse pour le salon c'était logique pour construire mon propre avec quelques fonctionnalités supplémentaires électronique.Ma conception de la table comprend les
Plus vieux jeu vidéo enregistrer Hacking

Plus vieux jeu vidéo enregistrer Hacking

êtes-vous marre des Vieux jeux de PC que vous avez terminé et que vous ne jouez jamais plus, Eh bien, voici une façon de donner une nouvelle vie à votre vieux jeu. Fondamentalement, vous allez apprendre à modifier l'enregistrement fichier pour obteni
LED Cube 8 x 8 x 8

LED Cube 8 x 8 x 8

affichage 3-dimensionnelle de créer votre propre 8 x 8 x 8 LED Cube !Nous croyons que ce Instructable est le plus complet guide étape par étape pour construire un 8 x 8 x 8 que LED Cube jamais publié sur l'intertubes. Il vous apprendra tout de princi
Réaliser une matrice de 8 x 10 L.E.D

Réaliser une matrice de 8 x 10 L.E.D

mise à jour 1: J'ai ajouté jeu de le CODE pour CONWAY de la vieMISE À JOUR 2: MAINTENANT, VOUS POUVEZ ENREGISTRER CERTAINES BROCHES DE L'ARDUINO À L'AIDE DU REGISTRE À 1 DÉCALAGE.Dans ce instructable je vais vous montrer comment générer une matrice L
Trois dimensions de l’échiquier

Trois dimensions de l’échiquier

Pour mon projet de côté, j'ai décidé de faire un trois dimensions jeu d'échecs, tout comme le genre que Kirk et Spock célèbre jouent dans Star Trek : The Original Series.3D Chess est joué tout comme jeu d'échecs traditionnel, mais avec la troisième d
Faire un Tamagotchi Bureau

Faire un Tamagotchi Bureau

Un jour j'étais assis derrière mon bureau au travail et j'ai eu ce besoin étrange de construire quelque chose, après en regardant autour pour un peu, j'ai obtenu mon oeil sur une matrice de LED et qui a suscité une idée dans ma tête: « Je veux faire
Altoids Tin : Kit de survie de poche

Altoids Tin : Kit de survie de poche

je sais que vous les gars avez probablement vu ces avant ; J'ai aussi bien. Cependant, ceux que j'ai vu aussi bien à l'extérieur de ce soft et dedans ont été très mauvaises représentations de ce que peut être ce petit kit. Ce kit doit être comptabili