Gra życia i zmęczenia Stewiego jest bardzo podobna do bardziej znanej gry życia Conwaya .
Wszechświat Stewie's Game of Life and Fatigue (GoLF) to nieskończona dwuwymiarowa ortogonalna siatka kwadratowych komórek, z których każda jest w jednym z trzech możliwych stanów: żywym, martwym lub zmęczonym. Każda komórka wchodzi w interakcje z ośmioma sąsiadami, które są komórkami sąsiadującymi poziomo, pionowo lub po przekątnej. Na każdym etapie występują następujące przejścia:
- Każda żywa komórka z mniej niż dwoma żywymi sąsiadami umiera, jakby była spowodowana niedostateczną liczbą ludności.
- Każda żywa komórka z dwoma lub trzema żyjącymi sąsiadami żyje w następnym pokoleniu.
- Każda żywa komórka z więcej niż trzema żywymi sąsiadami umiera, jakby przeludnienie.
- Każda martwa komórka z dokładnie trzema żywymi sąsiadami staje się żywą komórką, jakby przez rozmnażanie.
- Każda komórka, która żyje przez dwa kolejne pokolenia, umiera, jakby ze zmęczenia. Nie może obudzić się do następnego życia
- Każda komórka znajdująca się poza granicą siatki wejściowej jest martwa, jakby spadła z klifu.
Wyzwanie:
Twoim zadaniem jest wziąć siatkę wymiarów n-by-m reprezentującą początkowy stan GoLF i liczbę całkowitą p , i wyprowadzić stan gry po p pokoleniach.
Zasady:
- Formaty wejściowe i wyjściowe są opcjonalne, ale siatki wejściowe / wyjściowe powinny mieć taką samą reprezentację
- Możesz wybrać dowolne symbole do wydrukowania reprezentujące żywe i martwe komórki (użyję
1
dla żywych komórek i0
martwych komórek). - Możesz wybrać, czy masz 0 lub 1 indeksowany. W przykładach
p=1
oznacza stan po jednym kroku. - Wygrywa najkrótszy kod w każdym języku
- Wbudowane funkcje automatyzacji komórkowej są dozwolone
Przypadki testowe:
W przykładach dołączyłem tylko siatkę wejściową, a nie p . Podałem dane wyjściowe dla różnych wartości p . Wyprowadzasz tylko siatkę, która idzie z danym wejściem 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
Tak, wiem, że wszystkie początkowe nasiona nie kończą się martwymi komórkami.