Le jeu de la vie et de la fatigue de Stewie est assez similaire au plus célèbre jeu de la vie de Conway .
L'univers du jeu de la vie et de la fatigue de Stewie (GoLF) est une grille orthogonale bidimensionnelle infinie de cellules carrées, dont chacune est dans l'un des trois états possibles, vivant, mort ou fatigué. Chaque cellule interagit avec ses huit voisins, qui sont les cellules adjacentes horizontalement, verticalement ou en diagonale. À chaque étape du temps, les transitions suivantes se produisent:
- Toute cellule vivante avec moins de deux voisins vivants meurt, comme si elle était causée par la sous-population.
- Toute cellule vivante avec deux ou trois voisins vivants vit jusqu'à la prochaine génération.
- Toute cellule vivante avec plus de trois voisins vivants meurt, comme par surpopulation.
- Toute cellule morte avec exactement trois voisins vivants devient une cellule vivante, comme par reproduction.
- Toute cellule vivante depuis deux générations consécutives meurt, comme par fatigue. Il ne peut pas reprendre vie avant la prochaine génération
- Toute cellule qui se trouve en dehors de la limite de la grille d'entrée est morte, comme si elle était tombée d'une falaise.
Défi:
Votre défi est de prendre une grille de dimensions n par m représentant l'état initial d'un GoLF, et un entier p , et de sortir l'état du jeu après p générations.
Règles:
- Les formats d'entrée et de sortie sont facultatifs, mais les grilles d'entrée / sortie doivent avoir la même représentation
- Vous pouvez choisir n'importe quel symbole imprimable pour représenter les cellules vivantes et mortes (je les utiliserai
1
pour les cellules vivantes et0
pour les cellules mortes). - Vous pouvez choisir si vous avez 0 ou 1 indexé. Dans les exemples,
p=1
signifie l'état après une étape. - Le code le plus court dans chaque langue gagne
- La fonction intégrée pour l'automatisation cellulaire est autorisée
Cas de test:
Dans les exemples, j'ai seulement inclus la grille d'entrée dans l'entrée, pas p . J'ai fourni des sorties pour diverses valeurs de p . Vous ne devez sortir que la grille qui va avec une entrée donnée p .
Input:
0 0 0 0 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
0 0 0 0 0
--- Output ---
p = 1
0 0 0 0 0
0 0 0 0 0
0 1 1 1 0
0 0 0 0 0
0 0 0 0 0
p = 2
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
p = 3 -> All dead
---
Input:
0 1 0 0 0 0
0 0 1 0 0 0
1 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
--- Output ---
p = 1
0 0 0 0 0 0
1 0 1 0 0 0
0 1 1 0 0 0
0 1 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 2
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
0 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 3
0 0 0 0 0 0
0 0 0 0 0 0
0 1 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 4 -> All dead
Input
0 1 1 0 1 1 0
1 1 0 1 1 1 1
0 1 0 0 0 1 0
0 0 0 1 1 0 1
1 0 0 1 0 1 1
0 0 1 1 0 1 1
1 1 0 0 0 0 1
--- Output ---
p = 1
1 1 1 0 0 0 1
1 0 0 1 0 0 1
1 1 0 0 0 0 0
0 0 1 1 0 0 1
0 0 0 0 0 0 0
1 0 1 1 0 0 0
0 1 1 0 0 1 1
p = 2
1 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 1 0 0 0
0 1 1 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 1 0 0 0
p = 3
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 1 0 0 0 0
1 1 0 0 0 0 0
0 1 1 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 0 0 0
p = 4
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 1 0 0 0 0
1 0 0 0 0 0 0
1 0 1 0 0 0 0
0 1 1 0 0 0 0
0 0 0 0 0 0 0
p = 5
0 0 0 0 0 0 0
0 1 0 0 0 0 0
1 0 0 0 0 0 0
0 0 1 0 0 0 0
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
p = 6
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 7
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 1 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 8
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 9 -> All dead
Oui, je suis conscient que toutes les graines initiales ne finiront pas par la mort de toutes les cellules.
la source
Réponses:
MATL ,
343025 octets5 octets supprimés grâce à une suggestion de @CalculatorFeline !
Essayez-le en ligne!
Les entrées sont une matrice et un nombre. La matrice utilise
;
comme séparateur de lignes. Les matrices des trois cas de test sont entrées commeExplication
la source
3Y6
plus en détail? De plus, si l'élément central du noyau était.5
, vous pouvez vérifier CGOL avec juste2<value<4
. Pourrait aider.5<=value<=7
. Quant à3Y6
, c'est juste un littéral prédéfini. Il y a aussi1Y6
, qui est le 4-quartierAPL (Dyalog Classic 16.0) , 59 octets
Essayez-le en ligne! (émulé sur Classic 15.0)
APL (Dyalog Unicode 16.0) , 85 octets
Essayez-le en ligne! (émulé sur Unicode 15.0)
Demande la grille puis la p . Imprime la nouvelle grille après p générations.
Notez que cela utilise la nouvelle
⌺
primitive (Stencil) qui n'est pas incluse dans le jeu de caractères Classic, donc une version plus courte et une version à moins d'octets.Explication à suivre…
la source
display
fonction est ici .Golly RuleLoader, 295 octets
La grille d'entrée doit être collée, les limites sont dans le nom de la règle (par exemple
5
*3
estY:P5,3
), appuyez sur espace pour avancer.la source
Java 8, 333 octets
Explication:
la source