Programujemy grę w życie

W tym roku szkolnym swoją działalność rozpoczęło Szkolne Koło Programistów CKZiU. Najczęściej spotykamy się na Discordzie, ale ostatnio postanowiliśmy zorganizować pierwsze stacjonarne spotkanie koła, na którym obecni byli uczniowie, uczennica oraz absolwenci ?

Tematem spotkania było programowanie gry w życie według reguł brytyjskiego matematyka Johna Conwaya, a wykorzystywaną technologią był czysty JavaScript.

Gra w życie to jeden z pierwszych i najbardziej znanych przykładów automatu komórkowego. Za pomocą dwóch prostych reguł można tworzyć ciekawe struktury. Jak nam poszło?

W HTMLu umieściliśmy tylko diva pełniącego funkcję kontenera oraz przyciski nawigacyjne:

Dodaliśmy szczyptę CSSów:

Nadszedł czas na kodowanie. Utworzyliśmy dwuwymiarową tablicę, która trzyma komórki. Szybko okazało się, że konieczne jest utworzenie drugiej, „wirtualnej” tablicy, która będzie przetrzymywała aktualny stan gry. Narysowaliśmy grida oraz dodaliśmy funkcje nasłuchujące zdarzenia na każdym divie, aby za pomocą kliknięcia można było „ożywiać” lub „uśmiercać” komórki.

Najbardziej karkołomną okazała się funkcja, która miała zliczać żywych sąsiadów. W czasie zajęć napisaliśmy bezwstydnie prostacki i rozwlekły kod, ale niektórzy uczniowie w czasie pracy indywidualnej poradzili sobie o wiele lepiej. Na przykład tak:

Całość prezentowała się następująco:

A oto rezultat naszej pracy:

Wszystkich programistów z Elektrowni zapraszamy do dołączenia do naszego serwera na Discordzie. Dzięki za spotkanie i do następnego!

WB