Cieľom cvičení je vyskúšať a zautomatizovať prácu s poľom (s poľom primitívnych i referečných hodnôt).
Vytvorte triedu GrafickyEditor rozširujúcu triedu WinPane. Grafický editor funguje takto:
Alt sa korytnačka natočí smerom k aktuálnej pozícii myši a nakreslí čiaru z jej aktuálnej pozície do pozície myši (korytnačka po nakreslení čiary ostáva tam, kde bola predtým)
onMouseDragged), korytnačka sa presunie na miesto, kde je aktuálne myš, pričom počas tohto pohybu kreslí čiaru
Korytnackovo rozširujúcu triedu WinPane. Po vytvorení objektu triedy Korytnackovo (v "inicializačnej" metóde) nech sa v kresliacej ploche automaticky vygeneruje 10 korytnačiek na náhodnej pozícii.
Korytnackovo metódy:
void posunITu(int idx, double dlzka) - idx-ta korytnačka spraví krok zadanej dĺžky
void nahodneFarby() - každá korytnačka si nastaví náhodnú farbu kresliaceho pera
Color sFarbouVon(int index) - vráti farbu i-tej korytnačky
Korytnackovo tak, aby pri kliknutí do plochy sa náhodne zvolená korytnačka presunula na miesto kliknutia.
Korytnackovo pridajte metódu krok, ktorá spraví následovné:
i-ta korytnačka sa natočí smerom k (i+1)-vej korytnačke (posledná smerom ku korytnačke s číslom 0) a spraví krok rovný 1/10 vzdialenosti k (i+1)-vej korytnačke.
Korytnackovo pridajte metódu kroky, ktorá zadaný počet krát zavolá metódu krok, pričom medzi jednotlivými krokmi bude nejaké vhodné spomalenie.
Korytnackovo pridajte metódu doKruhu, ktorá všetky korytnačky v ploche rovnomerne rozmiestni do kruhu so zadaným polomerom, ktorého stredom je stred kresliacej plochy. Návod: na rozmiestnenie korytnačiek si vytvorte pomocnú korytnačku, ktorá bude korytnačky rozmiestňovať na správne miesta.
Korytnackovo metódu pocetTopKorytnaciek, ktorá vráti počet korytnačiek, ktoré majú y-ovú súradnicu menšiu ako je hodnota v parametri zhora
Korytnackovo pridajte metódu bezpecnyKruh, ktorá pre zadanú korytnačku (určenú jej indexom medzi korytnačkami) nakreslí najväčší možný kruh taký, že:
Double.MAX_VALUE (najväčšie číslo, ktoré možno uložiť v premennej typu double) a Double.POSITIVE_INFINITY (+nekonečno).
Korytnackovo metódy:
int laviciarka() - vráti index korytnačky, ktorá sa nachádza najviac vľavo
double najblizsie() - vráti ako sú vzdialené 2 korytnačky, ktoré sú k sebe najbližšie
Do projektu Farma z prednášky pridajte metódy:
int pocetKvetin(int odZahonuIdx, int poZahonIdx) - vráti celkový počet kvetiniek od záhonu na indexe odZahonuIdx po záhon na indexe poZahonIdx
double priemernyPocetVZahone() - vráti priemerný počet kvetiniek v záhone
boolean neklesajuciPocet() - vráti, či počet kvetiniek v jednotlivých záhonoch tvorí neklesajúcu postupnosť
int pridatNaVyvazenie() - vráti, aký minimálny počet kvetiniek musíme vysadiť, aby počet kvetín v záhonoch na párnej pozícii bol rovnaký ako počet záhonov na nepárnej pozícii
int prazdneZaSebou() - vráti, aký maximálny počet prázdnych záhonov umiestnených v záhradke hneď za sebou sa nachádza v záhradke
Korytnackovo doprogramujte drag&drop presúvanie korytnačiek.