2. sada domácich zadaní

Najneskorší termín odovzdania: 7.10.2018 (nedeľa) o 22:00
Odovzdávaný súbor: HomeTurtle.java

Cieľom tejto sady domácich zadaní je vytvoriť triedu HomeTurtle, ktorá rozširuje triedu Turtle a obsahuje nižšie predpísané metódy.

Doplňujúce požiadavky:

  • vo vytvorených metódach nevyužívajte metódu center (v "spusťači" v metóde main ho použiť samozrejme môžete),
  • po vykonaní každej z metód nech je korytnačka na pozícii, kde bola pred jej vykonaním, a je natočená tým smerom, akým bola pred jej vykonaním,
  • nepredpokladajte bielu farbu pozadia kresliacej plochy (korytnačka musí nakresliť korektný obrázok pri akejkoľvek farbe kresliacej plochy),
  • riešenia, ktoré nebude možné skompilovať (t.j. riešenia so syntaktickými chybami) nebudú hodnotené,
  • zdrojový kód správne naformátujte (CTRL+SHIFT+F),
  • očakáva sa vhodne okomentovaný zdrojový kód
  • pri riešení postačia poznatky, ktoré boli súčasťou 2. prednášky a na ňu nadväzujúcich cvičení.

Vlajka Dominikánskej republiky (4 body)

Naučte korytnačky triedy HomeTurtle metódu flagOfDominicanRepublic, ktorá pomocou náhodnej pochôdzky (viď 2. praktické cvičenie) nakreslí zjednodušenú vlajku štátu Dominikánskej republiky. Stred vlajky nech je na aktuálnej pozícii korytnačky, rozmery vlajky a počet náhodných krokov pochôdzky sú určené parametrami metódy (šírka vlajky je dvojnásobkom jej výšky). Vlajka nech je rovnobežná so stranami kresliacej plochy. Po skončení metódy nech sú natočenie korytnačky a jej pozícia rovnaké, ako boli pred zavolaním metódy.

Zjednodušenie oproti oficiálnej vlajke spočíva v tom, že netreba kresliť štátny znak v strede vlajky.

public void flagOfDominicanRepublic(int stepCount, double height) {
        // ... inicializacne prikazy

        for (int i = 0; i < stepCount; i++) {
                // ... prikazy na nastavenie farby podla aktualnej pozicie

                this.turn(Math.random() * 360);
                this.step(5);

                // ... prikazy, resp. podmienka, ktore zabezpecia, ze korytnacka
                // nevyjde mimo definovanej obdlznikovej oblasti
                if (jeMimoDefinovanejOblasti) {
                        this.step(-5);
                }
        }

        // ... prikazy, ktore obnovia vychodiskovy stav
}

Šípka (0.5 boda)

Naučte korytnačky triedy HomeTurtle metódu arrow, ktorá nakreslí navigačnú šípku podľa vzoru nižšie. Metóda má parametre width (šírka) a length (dĺžka) určujúce rozmery šípky. "Vyrezaný" aj "smerový" trojuholník sú rovnostranné trojuholníky, t.j. uhol v hrote šípky je 60°. Korytnačka sa na začiatku a na konci nachádza v strede základne "vyrezaného" rovnostranného trojuholníka. Šípka je natočená v smere natočenia korytnačky. Farba šípky je daná aktuálne nastavenou farbou výplne.

public void arrow(double width, double length) {

}

Šípkovnica (2.5 boda)

Naučte korytnačky triedy HomeTurtle metódu arrowSign, ktorá s využitím metódy arrow nakreslí navigačnú značku, ako je to na obrázku nižšie. Metóda má 4 parametre:

  • arrowCount - počet šípok tvoriacich značku,
  • width - šírka značky (zároveň šírka každej zo šípok),
  • baseLength - dĺžka prvej zo šípok v značke,
  • gap - medzera medzi za sebou idúcimi šípkami v značke.

Dĺžka prvej zo šípok je zadaná parametrom metódy baseLength. Dĺžka každej ďalšej šípky je 70% z dĺžky predchádzajúcej. Farby šípok sú striedavo oranžová a čierna. Prvá (najdlhšia) šípka je oranžová.

Značka smeruje v smere aktuálneho natočenia korytnačky, korytnačka sa na začiatku aj na konci nachádza na pozícii uvedenej na obrázku.

Využiť metódu arrow znamená, že kreslenie je realizované len volaním metódy arrow. Jednotlivé príkazy v metóde arrowSign len zabezpečujú vhodné presuny a natočenie korytnačky (s vypnutým kresliacim perom) pred jednotlivými volaniami kresliacej metódy arrow.

public void arrowSign(int arrowCount, double width, double baseLength, double gap) {

}

Poznámky k evaluácii 2. sady

"OK" pri metóde znamená, že sa podarilo zrealizovať všetky testy a po skončení metódy ostala korytnačka v požadovanom stave. Neznamená to, že korytnačka nakreslila to, čo mala.

Upozorňujeme, že evaluátor dokresľuje do grafických výstupov vizuálne značky (poloha korytnačky, významné body, podfarbenie, atď.), ktoré umožňujú rýchlu vizuálnu kontrolu riešenia.

Očakávané grafické výstupy evaluátora pre korektné riešenie (poloha, natočenie a veľkosť obrazcov sa môžu líšiť):

Šípka

Šípkovnica