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).