Razmisljao sam malo o PacMan igri i razlozio ju na nekoliko "manjih" problema:
1. Nasumicno iscrtavanje kvadrata na ekranu. (LAKO)
2. Procedura koja broji koliko je kvadrata uhvaceno i racuna neke druge podatke.
3. Kontrola glavnog (crvenog) kruga kojim upravlja igrac. (LAKO)
4. Procedura kojom se provjerava da li je doslo do kontakta 2 kruga. (LAKO)
>Ako je doslo do kontakta, procedura varijabli "kraj" vraca vrijednost TRUE.
5. Nasumicno kretanje vise zutih krugova
>ovo je lako uraditi za jedan krug, ali za vise.. Ja sam mislio to uraditi preko jedne procedure, tako da ako pozovemo tu proceduru 5 puta na ekranu se pojavi 5 krugova. I ovo je naizgled lako izvodljivo uz pomoc lokalnih promjenjivih, ali onda se javljaju problemi oko provjeravanja da li je doslo do kontakta izmedju zutog i crvenih krugova, jer glavni program ne vidi koordinate pojedinih tacaka. Onda bi se
procedura "4" morala ukljuciti u proceduru "5". U ovoj proceduri bi trebalo biti ukljucen i dio za brisanje prethodnih koordinata kruga da se izbjegne ClrScr.
6. Iscrtavanje zidova (LAKO).
7. Omoguciti da zidovi blokiraju kuglice.
>Teoretski lako, ali se za veliki broj zidova situacija se komplikuje. I to bi trebalo uraditi preko jedne procedure tako da se za svako novo pomjeranje ma koje kuglice poziva ta procedura (ako je 5 kuglica i igrac, onda se poziva 6 puta).
+ jos neke procedure.
-------------------------------------------------------------------------
Glavni program bi onda izgledao otprilike ovako:
Code:
Program PacMan;
Uses ...;
Var kraj:boolean;
...
Procedure jedan;
Procedure dva;
...
Procedure sedam;
Begin
sest;
Repeat
jedan; {poziva sedam}
tri; {poziva sedam}
pet; {poziva sedam}
dva;
Until kraj;
End.