Najneskorší termín odovzdania: 1.11.2016 (utorok) o 22:00
Odovzdávané súbory: KorytnaciSvet.java
Doplňujúce požiadavky:
Uvažujme triedu KorytnaciSvet
, ktorá rozširuje triedu WinPane
:
Do triedy KorytnaciSvet
pridajte metódu vystrelNaTazisko
, ktorej výsledkom bude to, že každá korytnačka nakreslí čiaru zo svojej pozície do ťažiska všetkých korytnačiek. Súradnice ťažiska korytnačiek možno vypočítať ako priemer pozícii jednotlivých korytnačiek (napr. x-ová súradnica ťažiska je priemerom x-ových súradníc korytnačiek): http://en.wikipedia.org/wiki/Centroid#Of_a_finite_set_of_points
Do triedy KorytnaciSvet
pridajte metódu doRadu
, ktorá rovnomerne umiestni korytnačky v ploche na úsečke, ktorá je určená pozíciou najľavejšej a najpravejšej korytnačky v ploche. Rovnomerne umiestniť korytnačky na úsečke znamená, že v krajných bodoch úsečky je po jednej korytnačke. Zvyšné korytnačky sú s rovnakým rozostupom umiestnené na tejto úsečke medzi jej krajnými bodmi. Ak sú v ploche len 2 korytnačky alebo menej, korytnačky nepresúvajte.
Pozor, po premiestnení korytnačiek ich natočenie musí byť zachované.
A je to tu. Zločin zavítal aj do korytnačieho sveta. Máme tu prvú prestrelku. Vo svete korytnačiek však aj prestrelky majú svoje pravidlá:
Do triedy KorytnaciSvet
pridajte metódu prestrelka
, ktorá zadanou farbou znázorní strely vypálené pri prestrelke, ktorú začne korytnačka s indexom určeným parametrom metódy.
Rada: Na uloženie toho, ktorá korytnačka už bola zasiahnutá, môžete využiť lokálne referencované pole.
Nech d
je nenulové kladné číslo (d>0
) a C
je bod na súradniciach [x,y]
. Na základe vzdialenosti od bodu C
môžeme korytnačky rozdeliť do „zón“. Povieme, že korytnačka sa nachádza v i-tej zóne okolo bodu C
, keď jej vzdialenosť od bodu C
je v intervale ⟨i⋅d, i⋅d+d)
. Do triedy KorytnaciSvet
pridajte metódu histogram
, ktorá vráti referenciu na pole, v ktorom na indexe i
bude uložený počet korytnačiek nachádzajúcich sa v i
-tej zóne okolo zadaného bodu C
. Dĺžka vráteného poľa nech je najmenšia možná s tou vlastnosťou, že súčet prvkov poľa bude rovný počtu korytnačiek v ploche. Metóda histogram má 3
parametre: x, y
- súradnice bodu C
a šírku zón d
.
Rada: Odporúčame si najprv vypočítať maximálnu vzdialenosť medzi bodom C
a ľubovoľnou korytnačkou v ploche. Na základe tohto vypočítate, aké veľké pole potrebujete vrátiť.
Keďže ObjectInspector
nezobrazuje metódy s parametrom alebo návratovou hodnotou typu referencia na pole, pri riešení úlohy si odporúčame vytvoriť pomocnú metódu: