Kurs programowania 1 - 2010
Lista nr 6 na 6,13 stycznia
Zadanie 1 Napisz w formie apletu, korzystając z wątków, następującą symulację:
• Plansza do symulacji jest prostokątem n na m pól. Na planszy pewna liczba pól
jest zajęta przez żywe komórki (tylko jedna żywa komórka może być na danym
polu).
• Żywa komórka jest wątkiem który co pewien czas (opóźnienie jest równe losowo
wybranej liczbie milisekund z przedziału [0.5k, 1.5k], gdzie k jest parametrem pro-
gramu) sprawdza swoje otoczenie (cztery sąsiednie pola, planszę traktujemy jak
torus) i wykonuje jedną z nastepujących akcji:
– jeśli ma 0 lub 4 żywych sąsiadów to umiera;
– jeśli ma jednego żywego sąsiada to tworzy potomka (nowy wątek) i umieszcza
go na polu przeciwnym do żyjącego sąsiada;
– jeśli ma dwóch sąsiadów to nie robi nic;
– jeśli ma trzech sąsiadów to ucieka na sąsiednie niezajęte pole.
• Aplet powinien poinformować, że nie ma żywych komórek.
• Rozmiar planszy, początkowa ilość żywych komórek i szybkość działania (k) po-
winny być podane jako parametry. Początkowe położenie żywych komórek po-
winno być losowe.
• Należy zadbać o synchronizację planszy i komórek, aby nie dochodziło do konflik-
tów (zajęcia jednego pola przez dwie żywe komórki).
• Aplet powinien też działać jako samodzielna aplikacja z odpowiednio podanymi
parametrami.
Należy zadbać o odpowiednie skalowanie oraz dobór kolorów aplikacji.