Autorské riešenie
K správnemu riešeniu viedlo vytvorenie prekážkovej trate a postupné vytváranie a odoberanie farebných kruhov. Takisto je potrebné si všimnúť, že kým prvá korytnačka sa po ploche pohybuje, tak na vykreslenie prekážok a farebných kruhov je potrebné pracovať s ďalšou korytnačkou (napríklad príkazmi k2'do 100 alebo pre [k2][do 100] alebo pre "k2 [do 100] alebo odteraz "k2 do 100. Začnime teda prekážkami. Pri ich generovaní by sme mali byť opatrní s náhodou, keďže pri tejto hre sa vyžaduje, aby na ploche nevznikli uzavreté oblasti. Tie by totiž mohli spôsobiť, že korytnačka sa na niektoré miesta vôbec nedostane. V prípade, ak by sa uzavretá oblasť vytvorila v strede plochy, korytnačka by sa z nej nevedela dostať už na začiatku hry. Zvoľme preto napríklad takúto nemeniacu sa formu prekážok:
viem prekazky
k2'nechFP "modra k2'nechHP 20 k2'nechXYsur -350 -150 k2'opakuj 2 [ pd do 300 vp 90 do 100 ph do 100 vp 90 pd do 300 vl 90 do 100 ph do 100 vl 90 ] koniec Pri vytváraní farebných kruhov je potrebné myslieť na to, že farebný kruh nemôže byť modrý (takej farby sú prekážky) a tiež nemôže byť biely (takej farby je pozadie). Ak sa náhodne vygeneruje modrá alebo biela farba, môžeme ju manuálne zmeniť, napríklad na čiernu. Hrúbku a pozíciu kruhov vyberáme náhodne. Môžeme zvážiť aj to, či by sme hrúbku kruhu nemali voliť menšiu ako je hrúbka prekážky. Polohu kruhu stále testujeme vzhľadom na modrú farbu, ideálne je zvoliť cyklus kým, ak by sa náhodou dvakrát či viakrát po sebe vygenerovala nepriaznivá pozícia.
viem vytvor
odteraz "k2 nechfp ? ak fp="modra [nechFP "cierna] ak fp="biela [nechFP "cierna] urob "x -350 + nahodne 700 urob "y -150 + nahodne 300 urob "hrubka 10 + nahodne 10 nechXYsur :x :y kym [farbaBodu = "modra] [ urob "x -350 + nahodne 700 urob "y -150 + nahodne 300 nechXYsur :x :y ] bod :hrubka odteraz "k1 koniec Ostáva nám odoberanie farebných kruhov. Všimnite si, že polohu vytvoreného kruhu si pamätáme v globálnych premenných "x a "y a hrúbku v premennej "hrubka. To znamená, že stačí vyfarbiť biely kruh na aktuálnej pozícii druhej korytnačky a zvýšiť skóre. Po dosiahnutí desiateho bodu hru ukončíme.
viem odober
k2'nechFP "biela k2'bod :hrubka urob "skore :skore + 1 pis "|Aktualne skore je:| pis :skore ak :skore = 10 [pis "koniec zastavvsetky] koniec Vaše zaujímavé riešenia:
Najčastejšie chyby a návrhy na vylepšenie:
| ||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |