2. sada domácich zadaní

Najneskorší termín odovzdania: 15.10.2012 (pondelok) o 21:00
Odovzdávaný súbor: ZadanaKorytnacka.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.

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 emirátov (4 body)

Naučte korytnačky triedy ZadanaKorytnacka metódu vlajkaEmiratov, ktorá pomocou náhodnej pochôdzky (viď 2. praktické cvičenie) nakreslí vlajku Spojených arabských emirátov. 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.

public void vlajkaEmiratov(int pocetKrokov, double vyska) {
        // ... inicializacne prikazy

        for (int i = 0; i < pocetKrokov; 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
}

Kachlička (1 bod)

Naučte korytnačky triedy ZadanaKorytnacka metódu kachlicka, ktorá nakreslí štvorcovú kachličku podľa vzoru nižšie. Metóda ma jediný parameter strana, ktorý určuje dĺžku strany kachličky. Korytnačka sa na začiatku a na konci nachádza v strede kachličky a kachlička je natočená v smere natočenia korytnačky.

public void kachlicka(double strana) {

}

Chodník (2 body)

Naučte korytnačky triedy ZadanaKorytnacka metódu chodnik, ktorá s využitím metódy kachlicka nakreslí vykachličkovaný chodník tak, ako je to na obrázku nižšie. Metóda má 2 parametre:

  • pocetKachliciek - počet kachličiek, z ktorých sa chodník skladá,
  • sirka - šírka chodníka a zároveň aj rozmer kachličiek, z ktorých sa chodník skladá.

Chodník 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 kachlicka znamená, že kreslenie čiar je realizované len volaním metódy kachlicka. Jednotlivé príkazy v metóde chodnik len zabezpečujú vhodné presuny a natočenie korytnačky (s vypnutým kresliacím perom) pred jednotlivými volaniami kresliacej metódy kachlicka.

public void chodnik(int pocetKachliciek, double sirka) {

}