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é
1
para células vivas y0
para células muertas). - Puede elegir si tiene 0 o 1 indexado. En los ejemplos,
p=1
significa 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
3Y6
con 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
display
funció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
*3
isY:P5,3
), presione la barra espaciadora para avanzar.fuente
Java 8, 333 bytes
Explicación:
fuente