Zadanie zaliczeniowe z laboratorium Pascala i C. ZSI I. 04/05 ------------------------------------------------------------- Zadane: 10.11.2004, odbior: 24.11.2004, 2 punkty. Zad 2. Napisać program symulacyjny "Grę w Życie". Zasady gry w Życie. Gra w Życie jest symulacją odbywającą się na prostokątnej pokratkowanej planszy. Krawędzie planszy są ze sobą sklejone (tzn. idąc w prawo ze skrajnie prawego pola planszy przejdziemy na znajdujące się w tym samym wierszu skrajnie lewe pole i analogicznie w pionie). Każda kratka jest pusta lub zawiera komorkę, która reprezentuje żywego osobnika. Populacja żywych osobników zmienia się z pokolenia na pokolenie wg następujących reguł: 1. Jeśli żywy osobnik ma co najwyżej jednego żywego sąsiada, to umiera z samotności. 2. Jeśli żywy osobnik posiada co najmniej czterech żywych sąsiadów, to umiera z przeludnienia. 3. Jeżeli żywy osobnik posiada co najmniej dwóch i co najwyżej trzech żywych sąsiadów, to przeżywa. 4. W pustej kratce rodzi się życie, jeśli sąsiaduje ona z dokładnie 3 kratkami zawierającymi żywe osobniki. Sąasiadami kratki jest wszystkie 8 otaczających ją kratek. Zauważmy, że zwn sklejenie krawędzi _każda_ kratka ma 8 otaczających ją komórek. Program powinien: a) wczytać ze standardowego wejścia dane zawierające liczbę kroków symulacji i początkowy stan symulacji, b) w kolejnych krokach wyświetlać następujące po sobie układy osobników. Format danych wejściowych: * pierwszy wiersz zawiera liczbę naturalną k określającą liczbę kroków symulacji. * kolejne n-wierszy (n jest stała w programie, ustalamy że będzie ona równa 23) zawiera po n znaków. Każdy znak jest albo znakiem ' ' (spacja - reprezentuje puste pole) albo '*' (osobnik). Format danych wyjściowych: k bloków o podanym niżej formacie: * n wierszy zawierających po n znaków (' ' i '*') interpretowanych jw. * między każdą kolejną parą bloków jeden wiersz zawierający n znaków '-' (minus) Pierwszy blok reprezentuje stan początkowy (to, co podano na wejściu), każdy następny blok opisuje stan symulacji po kolejnym jej kroku. Uwaga: wszystkie wiersze wypisywane przez program powinny mieć dokładnie n znaków.