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.