Kto interesuje się choć trochę informatyką (nie mylić z komputerami), z pewnością słyszał o stworzonej przez Johna Conwaya grze w życie, pozostałym polecam hasło w Wikipedii. W skrócie: mamy planszę podzieloną na kwadratowe komórki, niektóre „żywe” (zabarwione na czarno), pozostałe „martwe” (na biało). W każdej iteracji komórki, które mają dokładnie trzech żywych sąsiadów (poziomo, pionowo lub na ukos), stają się żywe, komórki z dwoma żywymi sąsiadami zachowują swój aktualny stan, wszystkie pozostałe stają się martwe.
Gdzie tu jakaś interakcja? Cóż, nie ma żadnej – wbrew nazwie nie jest to gra, tylko automat. Tym, co niezmiennie interesuje w nim matematyków, jest fakt, że mimo banalnie prostych reguł zachowanie automatu jest praktycznie nieprzewidywalne – układy komórek zmieniają się chaotycznie, czasem szybko wygasając, a czasem rosnąc w nieskończoność i poza najbardziej trywialnymi przypadkami nie da się stwierdzić, jak dla danego stanu będzie postępować ewolucja. Jedynym sposobem jest po prostu puścić automat w ruch – żadnej drogi na skróty nie ma.
Czemu o tym wszystkim piszę? Otóż zainteresowałem się ostatnio, jak by ten automat działał dla innych zestawów reguł – a że jest tylko jeden sposób, żeby to sprawdzić, napisałem narzędzie do tego celu:
Gdyby ktoś miał problemy z rozszyfrowaniem interfejsu: tabelka na górze pozwala ustalać, jak liczba sąsiadów komórki wpływa na jej stan (szary kolor oznacza zachowanie aktualnego stanu); pole tekstowe poniżej zawiera liczbowy zapis konfiguracji, który można też losowo zmienić przyciskiem po prawej; czerwony przycisk czyści planszę, pozostawiając jedną żywą komórkę pośrodku; kolejne pole umożliwia wygenerowanie losowej planszy z zadanym procentem żywych komórek; przyciski w ostatniej linii pozwalają, kolejno: zapauzować automat (ustawienie domyślne), wykonać jedną iterację, wystartować automat w tempie jednej iteracji na sekundę i, dla mniej cierpliwych, dziesięciu iteracji na sekundę.
Dodatkowo można ręcznie zmieniać stan wybranych komórek, po prostu klikając na planszy – nic więc nie stoi na przeszkodzie, by przetestować dowolne własne ustawienie komórek.
Wszystkich możliwych zestawów reguł jest, jak łatwo policzyć, 39 = 19 683 (tak naprawdę o połowę mniej, bo konfiguracja zapisana od końca daje ten sam efekt co wyjściowa, tylko z odwróconymi kolorami), więc jest co badać. Bawcie się dobrze!
Komentarze
Zrobiłem kiedyś dość obszerny wpis o GoL, przy okazji dowiedziałem się, że da się z tego zbudować kompletną maszynę Turinga ;)
https://xpil.eu/game-of-life/
P.S. GoL da się też zrobić w 1D. Nie jest tak porywająca, jak w 2D (lub więcej-D), ale też jest ciekawie: https://xpil.eu/sierpinski-i-automat-numer-90/
Maszyna Turinga to jeszcze mało – są i tacy zboczeńcy, co postanowili zbudować w GoL komputer zdolny do odpalenia Tetrisa:
https://codegolf.stackexchange.com/questions/11880
Bardzo fajny projekt. Przydałaby się tylko legenda na stronie, który kolor co oznacza i tytuły do narzędzi. Czytałem wcześniej wpis, więc jakieś tam podstawy miałem, ale mimo to dłuższą chwilę zeszło mi rozkminienie, co jest co.
@”zachowanie automatu jest praktycznie nieprzewidywalne”
Zobacz to: https://codegolf.stackexchange.com/questions/88783/build-a-digital-clock-in-conways-game-of-life/
Zacząłem czytać „Kto interesuje się choć trochę informatyką […] z pewnością słyszał” i od razu zakrzyknąłem „Chyba nie słyszał, a programował swój silnik!”. Potem doczytałem dalej i byłem już kontent. ;-)
Wow, zaimponowałeś mi tym swoim narzędziem. Trochę łatwiej jest to pojąć w stosunku do oryginału, będę się temu przyglądał. Pozdrawiam :)