Drugie zadanie punktowane, termin oddania 25.04.2003. Na pewnym dyskretnym odcinku (skàadaj•cym si© z n r¢wnooddalonych punkt¢w) æyj• punkciaki (jak wiadomo niekt¢re pàaszczyzny zamieszkuj• pàaszczaki, a w R^3 podobno æyj• wypuklaki). Ωywot punkciaka jest okreòlony zestawem (chciaàoby si© nawet rzec: list•) prostych polece‰. Kaædy punkciak w kaædej jednostce czasu (takæe czas jest w tym zadaniu dyskretny) wykonuje jedno (kolejne) polecenie ze swojego zestawu. Polecenia s• nast©puj•ce: nic nic nie r¢b (ulubione polecenie punkciak¢w), lewo przesu‰ si© w lewo o jeden punkt, prawo przesu‰ si© w prawo o jeden punkt, zniknij punkciak znika na zawsze, p•czkuj punkciak p•czkuje, tworz•c nowego w tym samym punkcie. Nowy punkciak dziedziczy po oryginalnym zestaw polece‰, ale oczywiòcie zaczyna go wykonywaÜ (w nast©pnej jednostce czasu) od pierwszego polecenia. Przesuni©cie si© w prawo z ostatniego punktu oznacza przejòcie na pierwszy punkt (i analogicznie z przesuwaniem si© w lewo). W jednym punkcie moæe naraz przebywaÜ dowolna liczba punkciak¢w (wszak s• bezwymiarowe). Po wykonaniu wszystkich polece‰ ze swojego zestawu punkciak rozpoczyna ich wykonywanie od pocz•tku. Napisz program symuluj•cy æycie punkciak¢w. Program powinien na pocz•tku wygenerowaÜ przykàadowe dane (liczb© punkciak¢w, ich pierwotne poàoæenie i zestawy polece‰) i wypisaÜ na ekranie pocz•tkowe poàoæenie punkciak¢w. Nast©pnie program ma symulowaÜ zachowanie punkciak¢w w kolejnych jednostkach czasu: wykonaÜ po jednym poleceniu kaædego punkciaka i wypisaÜ na ekranie aktualny stan odcinka. Symulacja ma si© ko‰czyÜ w momencie gdy uæytkownik naciònie jakiò klawisz na klawiaturze. Wymagana struktura danych: lista punkciak¢w, kaædy z nich ma cykliczn• list© polece‰. Do wyòwietlania wygodnie jest uæyÜ tablicy (rozmiaru n) z informacj• o liczbie punkciak¢w w danym punkcie. Uwaga: to nie jest jedyna dobra reprezentacja danych dla tego zadania, natomiast jest to reprezentacja wymagana. Wypisuj•c bieæ•cy stan odcinka naleæy przeznaczyÜ na ekranie po jednej pozycji dla kaædego punktu. Moæna zaàoæyÜ, æe n nie przekracza szerokoòci ekranu. Jeòli w punkcie s• jakieò punkciaki, to naleæy wypisaÜ ich liczb© lub * , jeòli jest ich wi©cej niæ 9. Jeòli w punkcie nie ma æadnego punkciaka to naleæy wypisaÜ spacj©. Jak zwykle naleæy wypisaÜ na pocz•tku i ko‰cu dziaàania programu informacj© o zaj©toòci pami©ci (oczywiòcie program po zako‰czeniu symulacji powinien zwr¢ciÜ do systemu zaj©t• przez siebie pami©Ü dynamiczn•, wi©c te wypisane pary liczb powinny byÜ identyczne). Uwagi: - do sprawdzania czy uæytkownik nacisn•à jakiò klawisz sàuæy funkcja keypressed z moduàu CRT, Moæliwe rozszerzenia zadania (nie obj©te juæ punktacj•): - bogatszy interfejs (np. moæliwoòÜ ogl•dania programu wskazanego punkciaka), - bogatsza lista polece‰ (np. skoki, w R^1 nie znaj• jeszcze programowania strukturalnego).