Najneskorší termín odovzdania: 2.11.2015 (pondelok) o 21:00
Odovzdávané súbory: KorytnaciSvet.java
Doplňujúce požiadavky:
Uvažujme triedu KorytnaciSvet
, ktorá rozširuje triedu WinPane
:
Biológovia z ÚBEV UPJŠ sa rozhodli, že budú skúmať správanie sa korytnačiek Trachemys coding scripta (korytnačky z JPAZu). Tieto korytnačky sú lenivé a tak takmer celý svoj život prežijú na jednom mieste. Biológovia na korytnačky chcú umiestniť monitorovacie zariadenie s rádiovým transcieverom. Anténa monitorovacieho systému je umiestnená na mieste so súradnicami [x, y]
(na budove UPJŠ). Aký musí byť minimálny vysielací rozsah zakúpených transcieverov, aby bolo možné získavať údaje zo všetkých korytnačiek?
Do triedy KorytnaciSvet
pridajte metódu minimalnyDosah
, ktorá pre zadané umiestnenie antény na súradniciach [x, y]
vráti minimálny vysielací rozsah transceiverov zaručujúci, že každá signál z každej korytnačky dosiahne anténu.
Môžete predpokladať, že v ploche je aspoň jedna korytnačka.
Keďže korytnačky v JPAZe sú nezničiteľné, ministerstvo obrany za rozhodlo využiť korytnačky v kresliacej ploche na testovanie účinkov explózií. Do kresliacej plochy umiestnili nálož so zadanou silou (parameter sila) na pozíciu [x, y]
. Pri explózii nálože vznikne tlaková vlna, ktorá odhodí korytnačky v smere od miesta explózie. Ak uvážime zjednodušený fyzikálny model, korytnačka vzdialená d
od miesta explózie so silou S
je odhodená na vzdialenosť S2/d4
. Budeme predpokladať, že žiadna korytnačka sa nenachádza v mieste explózie. Do triedy KorytnaciSvet
pridajte metódu explozia
, ktorá odsimuluje účinky explózie nálože so zadanou silou a umiestnenej na zadanej pozícii. T.j. všetky korytnačky v ploche sa presunú (bez kreslenia trajektórie pohybu) na miesto, kam ich odhodí tlaková vlna, a budú nasmerované v smere od miesta explózie. Metóda vráti najväčšiu vzdialenosť, na akú bola odhodená nejaká z korytnačiek v ploche.
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.