El juego de la vida y la fatiga de Stewie es bastante similar al más famoso juego de la vida de Conway .
El universo del Juego de la vida y la fatiga de Stewie (GoLF) es una cuadrícula ortogonal bidimensional infinita de celdas cuadradas, cada una de las cuales se encuentra en uno de los tres estados posibles: vivo, muerto o cansado. Cada celda interactúa con sus ocho vecinos, que son las celdas que están adyacentes horizontal, vertical o diagonalmente. En cada paso en el tiempo, ocurren las siguientes transiciones:
- Cualquier célula viva con menos de dos vecinos vivos muere, como si fuera causada por la subpoblación.
- Cualquier célula viva con dos o tres vecinos vivos vive hasta la próxima generación.
- Cualquier célula viva con más de tres vecinos vivos muere, como por sobrepoblación.
- Cualquier célula muerta con exactamente tres vecinos vivos se convierte en una célula viva, como por reproducción.
- Cualquier célula que haya estado viva durante dos generaciones consecutivas muere, como por fatiga. No puede despertar a la vida nuevamente hasta la próxima generación
- Cualquier celda que esté fuera del límite de la cuadrícula de entrada está muerta, como si se hubiera caído de un acantilado.
Desafío:
Su desafío es tomar una cuadrícula de dimensiones n-por-m que represente el estado inicial de un GoLF y un número entero p , y generar el estado del juego después de p generaciones.
Reglas:
- Los formatos de entrada y salida son opcionales, pero las cuadrículas de entrada / salida deben tener la misma representación
- Puede elegir cualquier símbolo imprimible para representar células vivas y muertas (usaré
1para células vivas y0para células muertas). - Puede elegir si tiene 0 o 1 indexado. En los ejemplos,
p=1significa el estado después de un paso. - El código más corto en cada idioma gana
- La función incorporada para la automatización celular está permitida
Casos de prueba:
En los ejemplos, solo he incluido la cuadrícula de entrada en la entrada, no p . He proporcionado salidas para varios valores p . Solo generará la cuadrícula que va con una entrada dada 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
Sí, soy consciente de que todas las semillas iniciales no terminarán en todas las células muertas.
fuente

Respuestas:
MATL ,
343025 bytes¡5 bytes eliminados gracias a una sugerencia de @CalculatorFeline !
Pruébalo en línea!
Las entradas son una matriz y un número. La matriz se usa
;como separador de filas. Las matrices para los tres casos de prueba se ingresan comoExplicación
fuente
3Y6con más detalle? Además, si el elemento central del núcleo era.5, podría verificar CGOL con solo2<value<4. Podría ayudar.5<=value<=7. En cuanto a3Y6, es solo un literal predefinido. También hay1Y6, que es el barrio de 4APL (Dyalog Classic 16.0) , 59 bytes
Pruébalo en línea! (emulado en Classic 15.0)
APL (Dyalog Unicode 16.0) , 85 bytes
Pruébalo en línea! (emulado en Unicode 15.0)
Solicita cuadrícula y luego p . Imprime la nueva cuadrícula después de p generaciones.
Tenga en cuenta que esto utiliza la nueva
⌺primitiva (Stencil) que no está incluida en el juego de caracteres clásico, por lo tanto, una versión más corta y una versión de menos bytes.Explicación a seguir ...
fuente
displayfunción está aquí .Golly RuleLoader, 295 bytes
La cuadrícula de entrada debe pegarse, los límites están en el nombre de la regla (por ejemplo,
5*3isY:P5,3), presione la barra espaciadora para avanzar.fuente
Java 8, 333 bytes
Explicación:
fuente