Opisywany projekt to historia składająca się z wielu elementów. Niektóre krążyły w moim umyśle przez 50 lat, łącząc się w końcu w bardzo satysfakcjonującą całość. Zaczęło się od „Gry w życie”, o której po raz pierwszy usłyszałem pod koniec lat 70. Brałem wtedy udział w moim pierwszym (i jedynym) kursie programowania – w języku BASIC, przy użyciu terminala DECwriter podłączonego do minikomputera PDP-11 w mojej szkole średniej. Jednym z ćwiczeń było napisanie programu do „Gry w życie”. Był to przykład stosowania w BASIC-u zagnieżdżonych pętli FOR...NEXT – świetne, zabawne ćwiczenie dla początkującego programisty, w wyniku którego powstawały fascynujące zmieniające się wzory. W kolejnych latach nie mijała moja fascynacja tą grą. A gra przenosiła się kolejno z terminali minikomputerów na monitory PC-tów, laptopy i iPady.
Gra w życie
W skrócie: „Gra w życie” [1] jest prostą symulacją automatu komórkowego, opartą na określonych regułach. Rozgrywana jest na prostokątnej planszy o dowolnym rozmiarze. Elementami gry są komórki, rozlokowane w kratkach planszy. W trakcie gry, w kolejnych pokoleniach, komórki mogą trwać, umierać lub się rodzić. Przeżycie lub wyginięcie danej komórki w następnym pokoleniu zależy tylko od tego, ilu sąsiadów ma ta komórka w pokoleniu bieżącym. Na prostokątnej planszy każda kratka ma od zera do ośmiu sąsiadów.
Oryginalne zasady sformułowane przez Conwaya są następujące:
- komórka przetrwa do następnego pokolenia, jeśli ma dwóch lub trzech sąsiadów; komórki z mniejszą liczbą sąsiadów „umierają z samotności”, komórki z większą liczbą sąsiadów „umierają z przeludnienia”;
- w pustej kratce urodzi się w następnym pokoleniu nowa komórka, jeśli kratka ta ma jako sąsiadów dokładnie trzy komórki.
Conway wybrał te zasady w toku eksperymentów, tak aby były spełnione następujące kryteria [2]:
- nie powinno być takiego układu początkowego, dla którego istnieje prosty dowód na to, że populacja może rosnąć bez ograniczeń;
- powinny istnieć układy początkowe, które najwyraźniej rosną bez ograniczeń;
- powinny istnieć proste układy początkowe, które rosną i zmieniają się przez dłuższy czas, zanim zakończą się na trzy możliwe sposoby:
- całkowicie zanikając – z powodu przeludnienia lub samotności,
- przechodząc w układ stabilny, który od tej pory pozostaje niezmienny,
- wchodząc w fazę oscylacji, w której układy tworzą niekończący się cykl o długości dwóch lub więcej pokoleń.
W 1970 roku gra była rozgrywana pionkami na szachownicy zwykłych warcabów. Wkrótce jednak cały proces został skomputeryzowany, a innowacje trwają do dziś [3].