Ciele cvičení:
Vytvorte triedu ClickPane, ktorá bude rozširovať triedu WinPane. Klikacia plocha nech funguje tak, že pri kliknutí do plochy sa mieste kliknutia nakreslí bodka náhodného polomeru medzi 2 až 5. Do triedy ClickPane pridajte metódu saveClicksToFile, ktorá ako parameter dostane názov súboru (alebo referenciu na objekt triedy File s názvom súboru). Táto metóda nech uloží do zadaného súboru informácie o všetkých nakreslených bodkách od vytvorenia plochy. Informácia o jednej bodke nech je v jednom riadku súboru a skladá sa z 3 čísel: x-ová súradnica stredu bodky, y-ová súradnica stredu bodky a polomer bodky.
Môžete predpokladať, že nikdy sa nespraví viac ako 1000 bodiek od vytvorenia kresliacej plochy (t.j. nemeňte veľkosť poľa po každom kliknutí).
Príklad súboru:
100 121 3.5
10 252 2.5
241 139 4.0
Do triedy ClickPane pridajte "protimetódu", ktorá na základe obsahu textového súboru s vyššie opísaným formátom nakreslí do kresliacej plochy v ňom uložené bodky.
Upozornenie: Ak chcete použiť ObjectInspector na zavolanie metód objektov triedy ClickPane pracujúcich so súbormi, musíte použiť verziu s parametrami typu String.
Vytvorte triedu TextTurtle, ktorá rozširuje triedu Turtle a ktorá bude poskytovať základné spracovanie textových súborov.
TextTurtle metódu, ktorá ako parameter dostane názov súboru (prípadne referenciu na objekt triedy File). V tomto súbore sú len celé čísla oddelené medzerami (v jednom riadku môže byť aj viacero čísel). Vytvorená metóda nech vráti priemer čísel v súbore.
TextTurtle metódu, ktorá ako parameter dostane názov súboru (prípadne referenciu na objekt triedy File). Vytvorená metóda nech vráti počet riadkov v súbore.
Vytvorte triedu ControlledTurtle, ktorá bude rozširovať triedu Turtle. Do triedy ControlledTurtle pridajte metódu executeFile. Táto metóda dostane ako parameter názov (resp. cestu k) súboru s príkazmi pre korytnačku. Na cvičení stačí, ak naprogramujete vykonanie aspoň jedného príkazu bez parametrov a aspoň jedného príkazu s parametrami.
Pre obsah súboru s príkazmi platia tieto pravidlá:
center
penDown
penUp
step (1 parameter)
turn (1 parameter)
dot (1 parameter)
setPosition (2 parametre)
moveTo (2 parametre)
Príklad vstupného súboru:
setPosition 100 170
step 100
turn 120
dot 5
step 100
turn 120
dot 5
step 100
turn 120
dot 5
Rada: Vytvorte si pomocnú metódu, ktorá dostane ako parameter jeden riadok súboru (jeden príkaz) a vykoná príkaz v tomto riadku. Na spracovanie riadka použite Scanner znakového reťazca.
Pre fajnšmekrov: vymyslite taký formát vstupného súboru, aby umožňoval zopakovať nejakú postupnosť príkazov zadaný počet krát (niečo ako for-cyklus s pevným počtom opakovaní).
Niekedy je potrebné súčasne čítať jeden súbor a zapisovať do iného súboru. Na túto činnosť môžeme použiť takúto schému: