Najneskorší termín odovzdania: 21.10.2013 (pondelok) o 21:00
Odovzdávané súbory: ZadanaKorytnacka.java
, SpojovaciaDoska.java
Cieľom tejto sady domácich zadaní je vytvoriť triedu ZadanaKorytnacka
, ktorá rozširuje triedu Turtle
a ktorá obsahuje nižšie predpísané metódy, a triedu SpojovaciaDoska
, ktorá rozširuje triedu WinPane
.
Doplňujúce požiadavky:
Naučte korytnačky triedy ZadanaKorytnacka
metódu pismenoLenRaz
, ktorá vráti referenciu na novovytvorený reťazec. Tento reťazec bude obsahovať všetky znaky nachádzajúce sa v zadanom reťazci avšak každý znak len raz. Znaky vo vytvorenom reťazci nech sú usporiadané podľa poradia ich prvého výskytu v zadanom reťazci.
Príklady:
pismenoLenRaz("Domace zadanie") = "Domace zdni"
pismenoLenRaz("pismenoLenRaz") = "pismenoLRaz"
Tip: metóda indexOf
.
Iste by bolo pekné, ak by korytnačky rozumeli aj takým normálnejším príkazom v slovenčine. Do triedy ZadanaKorytnacka
pridajte metódu vykonajPrikaz
, ktorá ako parameter očakáva referenciu na reťazec obsahujúci príkaz. Korytnačka by mala podporovať tieto príkazy:
vpravo X
- korytnačka sa otočí o zadaný uhol v smere hodinových ručičiek, ak uhol nie je zadaný, korytnačka sa otočí o 90 stupňov.
vlavo X
- korytnačka sa otočí o zadaný uhol proti smeru hodinových ručičiek, ak uhol nie je zadaný, korytnačka sa otočí o 90 stupňov.
dopredu X
- korytnačka spraví krok zadanej dĺžky, ak dĺžka kroku nie je zadaná, korytnačka spraví krok dĺžky 10.
Názov príkazu je od hodnoty parametra (ak je zadaný) oddelený aspoň jednou medzerou. Pozor: nadbytočné medzery sa môžu nachádzať aj na začiatku a konci reťazca.
Príklady príkazov: "vlavo 120"
, " vpravo"
, " dopredu "
, " dopredu 100 "
, "vlavo"
, "vlavo 90.5"
.
Pomôcka:
Double.parseDouble()
:
Tip: metódy indexOf
, substring
.
Základným prvkom HTML je značkovanie textu pomocou tagov. Tag je postupnosť znakov ohraničená znakmi <
a >
. Príklad textu s tagmi: Zakladnym prvkom <i>html</i> je <strong>tag</strong>.
Do triedy ZadanaKorytnacka
pridajte metódu odstranTagy
, ktorá vráti referenciu na novovytvorený reťazec, ktorý vznikne zo zadaného reťazca odstránením všetkých tagov.
Príklad:
odstranTagy("Zakladnym prvkom <strong>html</strong> je <b>tag</b>.") = "Zakladnym prvkom html je tag."
Z prednášky vieme, že v Jave niektoré znaky v znakových a reťazcových literáloch musíme zapisovať špeciálnym spôsobom - pomocou znaku \
. Napríklad ak chceme niekde v reťazci použiť znak "
, musíme ho zapísať ako \"
. Všetky špeciálne znaky nájdete na stránke: http://docs.oracle.com/javase/tutorial/java/data/characters.html v tabuľke "Escape Sequences". Okrem týchto špeciálnych znakov je znak \
využitý aj pri zápise znakov pomocou ich kódov v UNICODE. Postupnosť znakov \uXXXX
reprezentuje znak v UNICODE s kódom (číslom) XXXX
, kde XXXX
je zápis kódu (čísla znaku) v šestnástkovej sústave: http://sk.wikipedia.org/wiki/%C5%A0estn%C3%A1stkov%C3%A1_s%C3%BAstava
Ukážka použitie \uXXXX
v reťazcových literáloch:
Do triedy ZadanaKorytnacka
pridajte metódu naRetazec
, ktorá vráti referenciu na novovytvorený reťazec, ktorý vznikne nahradením všetkých znakov kódovaných pomocou \
príslušnými znakmi.
Príklad:
naRetazec("Priklad: \'\u0041\u0068\u006f\u006a\\") = "Priklad: 'Ahoj\"
Pozor: Ak chcete v Jave zapísať reťazec "Priklad: \u0041\u0068\u006f\u006a"
musíte ho zapísať ako "Priklad: \\u0041\\u0068\\u006f\\u006a"
, keďže \
je špeciálny znak a musí sa v Java programoch zapisovať ako \\
.
Na prevod číselného reťazca v šestnástkovej sústave nie je dovolené využiť metódu Long.parseLong(String s, int radix) ani inú metódu podobnú tejto metóde (môžete si však napísať vlastnú metódu, ktorá tento prevod zrealizuje).
Naprogramujte triedu SpojovaciaDoska
rozšírujúcu triedu WinPane
, ktorá klikaním do plochy spája označené kotviace body. Kotviace body v ploche kreslí metóda kresliKotviaceBody
.
Ako funguje spojovacia doska:
onMouseClicked
) do plochy sa modrou bodkou (so stredom v kotviacom bode) s polomerom 3 označí kotviaci bod, ktorý je najbližšie k miestu kliknutia.
onMouseClicked
) do plochy sa spojí kotviaci bod najbližší k miestu kliknutia s kotviacim bodom, ktorý bol označený pri prvom kliknutí. Počiatočný a koncový bod spojnice sa vyznačia bodkou s polomerom 3 so stredom v týchto kotviacich bodoch. Ak bol pri druhom kliknutí zatlačený Alt
, kreslí sa červená spojnica a jej konce sa vyznačia červenou bodkou. Ak Alt
nebol zatlačený, kreslí sa čierna spojnica a jej konce sa vyznačia čiernou farbou.
Systém kreslenia spojovacích čiar dedukujte zo screenshotu.