Autorské riešenie
[stiahni]

Ak si pozorne prezriete zástavy vybraných štátov zistíte, že majú spoločnú vlastnosť. Tri farebné pásiky. To, v čom sa líšia, je farba pásikov, ich orientácia a pomer strán. Na kreslenie teda môžeme využiť jednu procedúru, ktorá pomocou zaslaných parametrov bude vedieť, ako zástavu nakresliť. Samozrejme, že by sme mohli vytvoriť šesť procedúr, pre každú zástavu jednu. Naša práca by však nebola príliš efektívna, pretože procedúry by mali veľa spoločného (pre každú z nich by sme museli písať podobný kód).

Kreslenie zástavy môže vyzerať aj takto:

 

viem zastava :orientacia :farby :x :y
  domov
  vp :orientacia
  ak :orientacia=0 [vp 90 do :x vl 90]

  urob "y :y/3

  opakuj 3 [nechfp prvok pocitadlo :farby
            polygon [do :y vl 90 do :x vl 90 do :y
           ]
  do :y
]
koniec

Premennou orientácia rozlišujeme, či sú pásiky vodorovné alebo zvislé. Premenná farby je trojprvkový zoznam, ktorý obsahuje farby danej zástavy. No a nakoniec, premenné x a y určujú pomer/dĺžky strán danej zástavy.

Kreslenie zástavy Belgicka môžeme naprogramovať takto. Tlačidlu "Belgicko" priradíme udalosť "priZapnutí" takto:

 

znovu zastava 90 ["cierna "zlta6 "cervena5] 182 210

90 - určuje orientáciu, pásy sú zvislé
["cierna "zlta6 "cervena5] - je zoznam farieb zástavy
182 210 - sú dĺžky strán zástavy, ich pomer je 182:210 = 13:15

Pre zástavu Holandska, by sme tlačidlu "Holandsko"  priradili udalosť "priZapnutí" takto:

 

znovu zastava 0 ["modra3 "biela "cervena5] 210 140

0 - určuje orientáciu, pásy sú vodorovné
["modra3 "biela "cervena5] - je zoznam farieb zástavy
210 140 - sú dĺžky strán zástavy, ich pomer je 210:140 = 3:2

Pre ostatné štáty to vyzerá nasledovne:

 

Belgicko - znovu zastava 90 ["cierna "zlta6 "cervena5] 182 210
Francúzsko - znovu zastava 90 ["modra3 "biela "cervena5] 140 210
Holandsko - znovu zastava 0 ["modra3 "biela "cervena5] 210 140
Luxembursko - znovu zastava 0 ["modra6 "biela "cervena6] 210 126
Nemecko - znovu zastava 0 ["zlta6 "cervena5 "cierna] 210 126
Taliansko - znovu zastava 90 ["zelena4 "biela "cervena5] 140 210

 

Najčastejšie chyby

Najčastejšie ste používali príliš veľa procedúr (alebo niektorí žiadne). Takto sa vám riešenie príliš skomplikovalo.