2. sada domácich zadaní

Najneskorší termín odovzdania: 12.10.2014 (nedeľa) 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 Laosu (4 body)

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

Stromček (3 body)

Naučte korytnačky triedy ZadanaKorytnacka metódu stromcek, ktorá nakreslí obrazec, ako je to na obrázku nižšie. Stromček sa skladá z vyplnených rovnostranných trojuholníkov. Najväčší trojuholník (spodné „poschodie“) má šírku zadanú parametrom sirka. Každé ďalšie poschodie má šírku o 20% menšiu než poschodie pod ním. Navyše spodok poschodia je vždy nižšie o 1/2 šírky poschodia pod ním od vrchola poschodia pod ním (viď obrázok). Celkovo sa stromček skladá z viacerých poschodí, ktorých počet je určený parametrom pocetPoschodi. Farby jednotlivých poschodí sa striedajú. Súčasťou stromčeka je aj kmeň vo forme vyplneného obdĺžnika, ktorého výška je 1/8 a šírka 1/4 šírky prvého poschodia. Korytnačka sa na začiatku nachádza na spodnej strane kmeňa a je natočená v smere kmeňa.

RGB kódy farieb:

  • kmeň: 153, 76, 0
  • svetlejšie poschodie: 0, 153, 0
  • tmavšie poschodie: 0, 130, 0
public void stromcek(int pocetUrovni, double sirka) {

}

Rada:

  • zvážte vytvorenie pomocnej metódy, ktorá nakreslí vyplnený rovnostranný trojuholník so zadanou dĺžkou strany