Menu Zamknij

Game of Life (Sucks… sometimes)

Game of Like (Sucks… sometimes) to moja implementacja znanej (?) Gry w życie, której autorem (twórcą) jest John Conway. Zgodnie z tym co można przeczytać na wikipedii Gra w Życie to


… jeden z pierwszych i najbardziej znanych przykładów automatu komórkowego

https://pl.wikipedia.org/wiki/Gra_w_%C5%BCycie

Jeżeli nie chce Ci się czytać wikipedii to śpieszę z krótkim objaśnieniem. Gra w życie to taki swoisty symulator świata zamieszkały przez jednokomórkowce. Świat ten rządzi się pewnymi prawami. Podstawowymi (tymi na których oparłem swoją wersję GoL) są prawa Conwaya, które są następujące.

  • jeżeli komórka świata jest pusta (bez organizmu) i ma dokładnie 3 żywych sąsiadów to staje się ona żywa
  • jeżeli żywy organizm ma 2 lub 3 sąsiadów pozostaje żywa w następnym cyklu czasu
  • jeżeli żywy organizm ma 1 lub powyżej 3 żywych sąsiadów to umiera w następnym cyklu czasu

Proste prawda? Może i określenie ‘gra’ jest trochę na wyrost bo w tym przypadku nie ma żadnego celu, gracz nie zdobywa punktów i praktycznie nie może wygrać ani przegrać, a jego interakcja z programem ogranicza się jedynie do wygenerowania świata z losowo rozmieszczonymi żywymi organizmami albo do ręcznego ich ustawiania w pustym świecie.

Moja implementacja tej gry powstała w wyniku przypadku. Zajmowałem się tworzeniem zupełnie innej (właściwej gry), potrzebowałem do niej algorytmu, którego zadaniem było generowanie losowego terenu (wysp na morzu). Szukałem pomocy w internecie i okazało się, że mogę wykorzystać to tego celu ten z Game of Life, po lekkiej modyfikacji zasad. Zainteresowałem się tematem i… tak powstała Game of Life (Sucks… sometimes)

Screen z Game of Life (Sucks... sometimes)
Screen z Game of Life (Sucks… sometimes)
INSTRUKCJA

Sprawa jest prosta tak samo jak zasady.

  1. Najpierw ustalamy rozmiar świata za pomocą pól [World Width] i [World Height]. Tutaj wpisujemy ilość komórek dla długości i wysokości świata.
  2. Następnie ustalamy rozmiar komórki dla świata w polach [Width of cell] oraz [Height of cell]. Tutaj rozmiar podawany jest w pikselach.
  3. Aby wygenerować pusty świat klikamy [CREATE THE WORLD]. Jeśli chcemy zasiedlić losowe pola świata należy ustawić wartość [Chance to be alive] wpisując wartość z zakresu 0 do 100 lub używając suwaka obok. To procentowa szansa na pojawienie się żywego organizmu.
  4. Po wygenerowaniu świata można ręcznie ustawić żywe organizmy w polach świata klikając w wybrane miejsce [LPM]. Kliknięcie w żywy organizm powoduje jego zlikwidowanie. 
  5. Teraz można uruchomić symulację przesuwając suwak [Simulation speed]. Tutaj wartość podawana jest w milisekundach (0-1000), czyli im mniejsza wartość tym szybciej będą następowały po sobie kolejne cykle symulacji. 

Wykonywalny (EXE) plik z grą można pobrać tutaj lub można pobrać kod źródłowy tutaj.