Il gioco della vita e la fatica di Stewie è abbastanza simile al più famoso gioco della vita di Conway .
L'universo di Stewie's Game of Life and Fatigue (GoLF) è una griglia ortogonale bidimensionale infinita di celle quadrate, ognuna delle quali si trova in uno dei tre stati possibili, vivo, morto o stanco. Ogni cellula interagisce con i suoi otto vicini, che sono le celle adiacenti orizzontalmente, verticalmente o diagonalmente. Ad ogni passaggio nel tempo, si verificano le seguenti transizioni:
- Ogni cellula viva con meno di due vicini vivi muore, come se fosse causata da sottopopolazione.
- Qualsiasi cellula viva con due o tre vicini vivi vive alla generazione successiva.
- Ogni cellula viva con più di tre vicini vivi muore, come se fosse sovrappopolata.
- Qualsiasi cellula morta con esattamente tre vicini vivi diventa una cellula viva, come per riproduzione.
- Ogni cellula che è stata in vita per due generazioni consecutive muore, come se fosse affaticata. Non può tornare alla vita fino alla prossima generazione
- Qualsiasi cella che si trova al di fuori del limite della griglia di input è morta, come se fosse caduta da una scogliera.
Sfida:
La tua sfida è prendere una griglia di dimensioni n-per-m che rappresenta lo stato iniziale di un GoLF e un numero intero p , e generare lo stato del Gioco dopo p generazioni.
Regole:
- I formati di input e output sono facoltativi, ma le griglie input / output devono avere la stessa rappresentazione
- Puoi scegliere qualsiasi simbolo stampabile per rappresentare le cellule vive e morte (userò
1
per le cellule vive e0
per le cellule morte). - Puoi scegliere se hai 0 o 1 indicizzato. Negli esempi,
p=1
indica lo stato dopo un passaggio. - Vince il codice più corto in ogni lingua
- Sono consentite le funzioni integrate per l'automazione cellulare
Casi test:
Negli esempi, ho incluso solo la griglia di input nell'input, non p . Ho fornito output per vari valori p . Devi solo generare la griglia che accompagna un dato input 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ì, sono consapevole che tutti i semi iniziali non finiranno in tutte le cellule morte.