Zadanie robione w Javie.
Treść:
Gra toczy się na kwadratowej planszy o boku n podzielonej na komórek n^2. Każda komórka (z wyjątkiem leżących na brzegach planszy) ma ośmiu "sąsiadów", czyli komórki przylegające do niej bokami i rogami. Komórka może być pusta albo zajęta przez mrówkę. Stany komórek zmieniają się dynamicznie. Mrówka wybiera losowo jedną z ośmiu komórek sąsiednich. Jeżeli wybrana komórka jest wolna, to mrówka zmienia swoje położenie. W przeciwnym przypadku pozostaje na miejscu. Mrówki powinny być zaimplementowane jako wątki. Sprawdzenie stanu komórek sąsiednich i ewentualne przemieszczenie stanowi sekcje krytyczną (narzędzie do wyboru). Po wykonaniu ruchu mrówka zasypia na wybraną losowo liczbę milisekund. Jeżeli mrówka wyjdzie poza planszę "umiera", a na jej miejsce pojawia sie nowa (na losowo wybranym wolnym polu).
Napisz program symulujący położenia mrówek w kolejnych chwilach czasu. Rozmiar planszy jest podany parametrem programu. Stan początkowy generowany jest losowo z udziałem "zajętych" komórek podanym drugim parametrem programu.
Każde zdarzenie (przemieszczenie lub śmierć / narodziny mrówki) powinno spowodować wypisanie odpowiedniego komunikatu i aktualnego stanu planszy (podobnie jak w przypadku gry w życie). Proszę tak dobrać przedział czasowy, na jaki mrówki zasypiają, żeby wydruk pojawiał sie z rozsądną częstotliwością (cokolwiek to oznacza).
Moje pytanie jest skromne czyli jak byście go zaczęli. Jakie obiekty stworzyli by było najlepiej. W moim przypadku miałem 3 próby pomysłu ale zawsze się gubiłem tym że nie mogłem dziedziczyć od dwóch klas. Najpierw zrobić obiekt klasę plansza która ma int n oraz tablice [n][n] charów. Kiedy był odpalany konstruktor to tworzył Komórkę która jest albo '8' albo '.' czyli albo pusta albo jest mrówka tylko potem mam problem by mieć dostęp do sąsiadów. Czy ktoś by mógł opisać jak by to zrobił ? Chodzi mi o pokierowanie niż o zrobienie. Pozdrawiam.