5. sada domácich zadaní

Moderátor: FeroG

<<

Vlado FKLm

Príspevky: 15

Registrovaný: Ned Okt 06, 2013 4:19 pm

Poslať Pia Okt 18, 2013 3:27 pm

5. sada domácich zadaní

Dobry den, chcel by som sa opytat zopar otazok ku 5. sade domacich zadani :-)

1.) je toto spravny sposob vytvorenia lokalne referencovane pola: "int[] pole = new int[10];" ?
2.) co v ulohe Prestrelka, mozem povazovat za koniec prestrelky? Musi byt kazda korytnacka zasiahnuta? Ide o to, ze pri istom (velmi pravdepodobnom) usporiadani, podla mna nastane situacia, ze prva korytnacka streli do najblizsej susedky, ktorej najblizsia nezasiahnuta susedka bude prva korytnacka a tak jej to vrati spat. Tu by som mohol prestrelku zastavit, alebo dovolit prvej korytnacke strielat druhykrat. Ak by som jej to dovili, tak prestrelka by pekne pokracovala, avsak chudinka posledna nezasiahnuta korytnacka by uz nemala koho zastrelit a musela by tak zabit samu seba. To sa mi zda dost krute. Ale mozno to zle chapem a takato situacia nemoze nastat.
3.) da sa presnejsie vysvetlit, co znamena instrukcia: "každá korytnačka strieľa na cieľ ihneď po svojom zasiahnutí" alebo by som to mal jasne pochopit sam?

Dakujem velmi pekne :-)
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Pia Okt 18, 2013 4:24 pm

Re: 5. sada domácich zadaní

Vlado FKLm píše:1.) je toto spravny sposob vytvorenia lokalne referencovane pola: "int[] pole = new int[10];" ?

Ano, aj.

Vlado FKLm píše:co v ulohe Prestrelka, mozem povazovat za koniec prestrelky? Musi byt kazda korytnacka zasiahnuta?

Ano, koniec prestrelky je to, ze kazda korytnacka je zasiahnuta (totiz naposledy zasiahnuta korytnacka podla pravidiel prestrelky nema do koho strielat, kedze vsetky korytnacky uz su zasiahnute - vratane jej samej).

Vlado FKLm píše: Ide o to, ze pri istom (velmi pravdepodobnom) usporiadani, podla mna nastane situacia, ze prva korytnacka streli do najblizsej susedky, ktorej najblizsia nezasiahnuta susedka bude prva korytnacka a tak jej to vrati spat. Tu by som mohol prestrelku zastavit, alebo dovolit prvej korytnacke strielat druhykrat.

Pravidla prestrelky nehovoria, ze kazda korytnacka striela len raz. Takze prva (alebo aj ina) korytnacka moze opat strielat, kedze prave teraz bola zasiahnuta. Nezabudnite, ze korytnacky v Jave ziju vecne (teda dokial ich niekto referencuje). Takze aj strielat mozu opakovane (po zasahu nezomieraju).

Vlado FKLm píše:Ak by som jej to dovili, tak prestrelka by pekne pokracovala, avsak chudinka posledna nezasiahnuta korytnacka by uz nemala koho zastrelit a musela by tak zabit samu seba. To sa mi zda dost krute. Ale mozno to zle chapem a takato situacia nemoze nastat.

K takato situacia nemoze nastat (mozno formalne dokazat sporom). Treba sa uvedomit, ze pravo strielat ma len naposledy zasiahnuta korytnacka a kym je nejaka nezasiahnuta, tak ma po kom vystrelit, cim sa proces moze pohnut dalej. K samostrelbe nedojde - ak korytnacka striela, uz musi byt zasiahnuta a teda na seba vystrelit nemoze.

Vlado FKLm píše: da sa presnejsie vysvetlit, co znamena instrukcia: "každá korytnačka strieľa na cieľ ihneď po svojom zasiahnutí" alebo by som to mal jasne pochopit sam?

To chcelo len zdoraznit to, ze v "dalsom kole prestrelky" striela ta korytnacka, ktora v predoslom kole bola zasiahnuta (z ciela sa stava strelec).
<<

rodakj

Príspevky: 16

Registrovaný: Sob Okt 12, 2013 11:34 pm

Poslať Sob Okt 19, 2013 11:58 am

Metoda pridajKorytnacku

Dobrý deň, chcel by som sa opýtať čo presne robí táto metóda

public void pridajKorytnacku(int x, int y) {
Turtle novaKorytnacka = new Turtle();
this.add(novaKorytnacka);
novaKorytnacka.setPosition(x, y);

Turtle[] noveKorytnacky = new Turtle[this.korytnacky.length + 1];
System.arraycopy(this.korytnacky, 0, noveKorytnacky, 0, this.korytnacky.length);
noveKorytnacky[noveKorytnacky.length-1] = novaKorytnacka;

this.korytnacky = noveKorytnacky;
}

samozrejme viem, že pridáva korytnačku na zadanú x a y súradnicu, ale riadky 4,5,6 mi nie sú známe a doteraz som sa s nimi nestretol. Mám len jeden tip čo by to mohlo byť, a to že nejakým spôsobom zvyšuje pole (aspoň navonok).
<<

Alica

Príspevky: 23

Registrovaný: Pon Sep 23, 2013 10:28 pm

Poslať Sob Okt 19, 2013 5:28 pm

Re: Metoda pridajKorytnacku

rodakj píše:Dobrý deň, chcel by som sa opýtať čo presne robí táto metóda

public void pridajKorytnacku(int x, int y) {
Turtle novaKorytnacka = new Turtle();
this.add(novaKorytnacka);
novaKorytnacka.setPosition(x, y);

Turtle[] noveKorytnacky = new Turtle[this.korytnacky.length + 1];
System.arraycopy(this.korytnacky, 0, noveKorytnacky, 0, this.korytnacky.length);
noveKorytnacky[noveKorytnacky.length-1] = novaKorytnacka;

this.korytnacky = noveKorytnacky;
}

samozrejme viem, že pridáva korytnačku na zadanú x a y súradnicu, ale riadky 4,5,6 mi nie sú známe a doteraz som sa s nimi nestretol. Mám len jeden tip čo by to mohlo byť, a to že nejakým spôsobom zvyšuje pole (aspoň navonok).


Moja teória je, že keď ty klikneš na plochu, tak sa pole referencií korytnačiek this.korytnacky[], ktoré má na začiatku nulovú dĺžku, zväčší o jeden chlievik, a v tom chlieviku bude referencia na tú práve vytvorenú korytnačku. Tým pádom bude dĺžka poľa presne taká, ako počet vytvorených korytnačiek v ploche.
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Sob Okt 19, 2013 6:16 pm

Re: 5. sada domácich zadaní

rodakj píše:ale riadky 4,5,6 mi nie sú známe a doteraz som sa s nimi nestretol.

Detailne vysvetlenie bude na pondelkovej prednaske.

Tvoja tip a Alicina teoria su spravne. Dolezite je to, ze pole referencovane z this.korytnacky bude v kazdom okamihu obsahovat referencie na prave vsetky korytnacky v ploche. To je nateraz pre riesenie jednotlivych uloh postacujuce.
<<

xxnaeriel

Príspevky: 23

Registrovaný: Uto Okt 08, 2013 7:43 pm

Poslať Uto Okt 22, 2013 4:05 pm

Re: 5. sada domácich zadaní

Chcela by som sa spytat ako maju fungovat tie metody. Mam si v spustaci vytvorit napr. KorytnaciSvet svet = new KorytnaciSvet(); a dat ho skumat object inspectorom, naklikat si lubovolne korytnacky a cez object inspector spustat metody alebo v spustaci spustit metodu a ma automaticky nejako nahodne vygenerovat korytnacky alebo ako?
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Uto Okt 22, 2013 4:13 pm

Re: 5. sada domácich zadaní

xxnaeriel píše:Chcela by som sa spytat ako maju fungovat tie metody. Mam si v spustaci vytvorit napr. KorytnaciSvet svet = new KorytnaciSvet(); a dat ho skumat object inspectorom, naklikat si lubovolne korytnacky a cez object inspector spustat metody alebo v spustaci spustit metodu a ma automaticky nejako nahodne vygenerovat korytnacky alebo ako?


Sposob ako vyrobis korytnacky je na tebe. Kod, ktory je k dispozicii, vytvara korytnacky klikanim. Pokojne ale mozes v spustaci nagenerovat nove korytnacky (trebars nahodne) volanim metody pridajKorytnacku. No a potom len v spustaci volat prislusne metody.
<<

Alica

Príspevky: 23

Registrovaný: Pon Sep 23, 2013 10:28 pm

Poslať Uto Okt 22, 2013 5:40 pm

Re: 5. sada domácich zadaní

Korytnačky v úlohe Prestrelka majú mať náhodnú farbu, alebo je to len ilustračný obrázok?
<<

Vlado FKLm

Príspevky: 15

Registrovaný: Ned Okt 06, 2013 4:19 pm

Poslať Uto Okt 22, 2013 5:53 pm

Re: 5. sada domácich zadaní

Dobry den,
skusil som nahrat vypracovane zadanie do Moodle-u a chcel by som sa znova nieco opytat:
1.) je nutne v metode Plot vykreslit tie ciary (plot a horizontala prechadzajuca najblizsou korytnackou), tak ako je to znazornene v obrazku z evaluatora?
2.) v metode Prestrelka je dolezite, aby farba pera kazdej korytnacky bola po prestrelke rovnaka ako pred nou? To jedine mi napada, nakolko evaluator mi hlasi chybu: "Po skončení metódy prestrelka(8, Color.red) korytnačky nie sú požadovanom výslednom stave."
Opat dakujem velmi pekne.
P.S. ale aspon som uz pochopil, ze korytnacka nikdy nezabije samu seba. To som velmi rad :-)
<<

Vlado FKLm

Príspevky: 15

Registrovaný: Ned Okt 06, 2013 4:19 pm

Poslať Uto Okt 22, 2013 6:07 pm

Re: 5. sada domácich zadaní

Aha. Ked vidim tie nove obrazky v zadani, tak to je jasne. Farby pera musia ostat nezmenene.
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Uto Okt 22, 2013 6:23 pm

Re: 5. sada domácich zadaní

Alica píše:Korytnačky v úlohe Prestrelka majú mať náhodnú farbu, alebo je to len ilustračný obrázok?

Tie nahodne farby v ilustracnom obrazku chcu len zdoraznit, ze farba korytnaciek ma ostat nezmena (povodna).
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Uto Okt 22, 2013 6:30 pm

Re: 5. sada domácich zadaní

Vlado FKLm píše:1.) je nutne v metode Plot vykreslit tie ciary (plot a horizontala prechadzajuca najblizsou korytnackou), tak ako je to znazornene v obrazku z evaluatora?


Nie, tie ciary netreba kreslit. Tie ciary kresli kod evaluatora, aby bolo aj vizualne vidiet, korektnost/nekorektnost vratenej hodnoty.

Vlado FKLm píše:2.) v metode Prestrelka je dolezite, aby farba pera kazdej korytnacky bola po prestrelke rovnaka ako pred nou? To jedine mi napada, nakolko evaluator mi hlasi chybu: "Po skončení metódy prestrelka(8, Color.red) korytnačky nie sú požadovanom výslednom stave."

Ano, farba kresliaceho pera kazdej korytnacky ma ostat nezmenena. Musim sa priznat, ze povodne to nebol zamer. Ale, kedze ste velmi kreativni a objavili sa aj riesenia, ktore si stav zasiahnutia korytnacky chceli pamatat farbou korytnacky, malicko som spresnil zadanie (dovod je ten, ze by to znamenalo vediet cosi viac o farbach a tom, ako sa testuje, ci 2 farby su rovnake, resp. 2 objekty triedy Color reprezentuju rovnaku farbu - to sice bude ale az na 12. prednaske). Evaluacny kod po skonceni metody kontroluje, ci kazda korytnacka je na pozicii a v natoceni ako bola a tiez ci sa nezmenila jej farba.
<<

xxnaeriel

Príspevky: 23

Registrovaný: Uto Okt 08, 2013 7:43 pm

Poslať Uto Okt 22, 2013 8:47 pm

Re: 5. sada domácich zadaní

Da sa priradit nejaka boolean hodnota len jednemu prvku v poli?
Ja uz neviem ci je ta prestrelka fakt taka zlozita, alebo je len neskoro a nechce sa mi rozmyslat.. :D
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Uto Okt 22, 2013 9:10 pm

Re: 5. sada domácich zadaní

xxnaeriel píše:Da sa priradit nejaka boolean hodnota len jednemu prvku v poli?

Nuz ake je to pole boolean-ov, tak by bolo velmi zle, keby to neslo. Funguje to rovnako ako pri kazdom inom poli: pole[index] = true alebo false.

xxnaeriel píše:Ja uz neviem ci je ta prestrelka fakt taka zlozita, alebo je len neskoro a nechce sa mi rozmyslat..

Vzhladom na kladenu otazku odporucam prestavku. Alebo ako hovori ludova mudrost: Rano mudrejsie vecera.
<<

xxnaeriel

Príspevky: 23

Registrovaný: Uto Okt 08, 2013 7:43 pm

Poslať Uto Okt 22, 2013 11:10 pm

Re: 5. sada domácich zadaní

ano ak je to pole booleanov tak mi je jasne ako to funguje, ale myslela som ak mam pole korytnaciek a jednu boolean premennu, tak ci viem dat jednej korytnacke aby mala pre nu ta premenna value true a pre inu false.
Ďalší

Späť na PAZ1a

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software.
Slovenský preklad.