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: