Diskuze: OOP úkol z lekce 4: Procházení (středně pokročilý příklad)
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 16 zpráv z 16.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, bolo by fajn keby pošleš aj znenie zadania
Zadání je uvedeno na odkazu: https://www.itnetwork.cz/…op-reference
Jde o druhý (středně pokročilý) příklad.
děkuji za zájem.
Václav
Nie je za čo, ale ja 5 rokov robím v Jave takže nemám kúpené prémium Java články tuto na stránke a nevidím dané zadanie.
Muzes pridat link na tu lekci? (ve tvem kodu neni zadny test, takze tezko odpovedet na otazku, proc ten test hlasi, ze prvni musi byt dum)
A proc nepouzijes pro seznam lokaci pole, list?
Proc zacinas cislovani jednickou? lokace1 misto lokace0
nasel jsem jiny dotaz, asi na stejny ukol...
https://www.itnetwork.cz/…f3caf6c73371
https://www.itnetwork.cz/…ge-collector
Matúš Olejník - take na te strance vidim prd, bez zakoupeni.
Mne tak napada, kdyz zada vychozi lokalitu dum, co a kde nastavujes do aktualniLokalita jako vychozi lokaci?
public class Hra {
Lokace aktualniLokalita;
Edit: Ha, slepej, uz to vidim. Ted je jen otazka, zda se to take vypise na obrazovku.
// Výchozí lokalita
Hra hra = new Hra (lokalita7);
Ještě jednou vám děkuji za zájem. Níže zasílám zadání. Přiznám
se, že jsem očekával, že se ozve někdo, kdo disponuje (provozuje, spravuje
- Unicornu) ten testovací program, který mi tvrdí, že mé řešení je
nesprávné...
ZADÁNÍ:
Naprogramujte jednoduchou textovou hru, která obsahuje následujících 7
propojených lokací:
obrázek je v příloze;
Cvičení k Java OOP – Mapa k textové hře
Každá lokace má název a textový popis, tato data budou následovat dále.
Každá lokace má také referenci na 4 okolní lokace (tedy na lokaci na
severu, jihu, západě a východě). Vytvořte herní svět z takto propojených
lokací podle obrázku výše. Následně aplikaci naučte přijímat v cyklu
příkazy od uživatele. Příkazy jsou:
jdi na [strana], např. "jdi na východ" - Jde na určitou světovou
stranu
konec - Ukončí aplikaci
Použijte následující názvy lokací a jejich popisy včetně zachování odřádkování. Odpovídají lokacím v obrázku (zleva doprava, shora dolů):
Název Popis
Hrad Stojíš před okovanou branou gotického hradu, která je
zřejmě jediným vchodem do pevnosti.
Klíčová dírka je pokryta pavučinami, což vzbuzuje dojem, že je budova
opuštěná.
Les Jsi na lesní cestě, která se klikatí až za obzor, kde
mizí v siluetě zapadajícího
slunce. Ticho podvečerního lesa občas přeruší zpěv posledních
ptáků.
Lesní rozcestí Nacházíš se na lesním rozcestí.
Les Jsi na lesní cestě, která se klikatí až za obzor, kde
mizí v siluetě zapadajícího
slunce. Ticho podvečerního lesa občas přeruší zpěv posledních
ptáků.
Rybník Došel jsi ke břehu malého rybníka. Hladina je v
bezvětří jako zrcadlo. Kousek
od tebe je dřevěná plošina se stavidlem.
Les **Jsi na lesní cestě, která se klikatí až za obzor, kde mizí v
siluetě zapadajícího
slunce. Ticho podvečerního lesa občas přeruší zpěv posledních
ptáků.
**Dům Stojíš před svým rodným domem, cítíš vůni čerstvě
nasekaného dřeva, která se line
z hromady vedle vstupních dveří.
Počáteční lokace je lokace Dům.
Při pokusu o přechod na neplatnou lokaci program vypíše "Tímto směrem nelze jít."
Při zadání neplatného příkazu program vypíše "Můj vstupní slovník neobsahuje tento příkaz."
Problém je v tom, že pokud zadáš chybný příkaz nebo směr, tak tobě to v tu chvíli nevypisuje kde jsi a kam můžeš jít.
Tvoje řešení:
Dům
Stojíš před svým rodným domem, cítíš vůni čerstvě nasekaného dřeva, která se line z hromady vedle vstupních dveří.
Můžeš jít na západ
Zadej příkaz:
test
Můj vstupní slovník neobsahuje tento příkaz.
Správné řešení:
Dům
Stojíš před svým rodným domem, cítíš vůni čerstvě nasekaného dřeva, která se line
z hromady vedle vstupních dveří.
Můžeš jít na západ
Zadej příkaz:
test
Můj vstupní slovník neobsahuje tento příkaz.
Dům
Stojíš před svým rodným domem, cítíš vůni čerstvě nasekaného dřeva, která se line
z hromady vedle vstupních dveří.
Můžeš jít na západ
Alesh, děkuji za nápovědu. Nikde jsem sice v zadání nenašel pokyn, že by se měla aktuální lokalita vypsat znovu, ale budiž. Doplnil jsem tedy příkaz pro vypsání aktuální lokality:
} else {
System.out.println("Můj vstupní slovník neobsahuje tento příkaz.");
platnyPrikaz = false;
spravnySmer = false;
konec = false;
this.vypisAktualniLokalitu();
}
if ((!spravnySmer) && (!konec) && (platnyPrikaz)) {
System.out.println("Tímto směrem nelze jít.");
this.vypisAktualniLokalitu();
}
... ale test opět neprošel. Test oznámil:
*Testy, které neprošly:
Řádek: 1
Očekáváno: Dům
Nalezeno: ----------
Řádek: 4
Očekáváno: Můžeš jít na západ
Nalezeno: ^^^^^^^*
Závěr:
S pozdravem Václav
No, a zkusils to?
Nechce se mi to zase zkoušet, ale už aspoň část testů prošla?
No jasně, že jsem to zkusil. Výsledek stejně negativní. Hele, v pohodě.
Nech to být. Škoda času. Mě program funguje, vypisuje co chci, a to že mi
to automat vyhodnotí špatně, mě sice mrzí (nevím proč), ale důležité
to (aspoň v tuto chvíli) zase tak není. Horší by bylo, kdyby se to
opakovalo u jiných příkladů.
Václav
Ono jde o to, ze v zamestnani takove podobne testy na program budou a tam by
bylo dobre, aby to vyhovelo, pokud je to nejaky rozumny test Muze se stat, ze test je zbytecne
prisny. To pak je o tom, co schvali vedouci projektu.
Jestli spravne chapu tu napovedu, tak je mozne, ze se nejaky smer spatne vyhodnoti. Nejaka lokace treba neni dostupna z nejakeho smeru nebo nevypise, ze se tam neda jit. Proste bych zkusil z lokace vsechny smery, zda to vypise, ze se tam neda jit nebo nic nebo to crashne. Kdyz byl prvni problem, ze to nevypsalo ten DUM.
Tak jsem to našel v čem je problém. V těch popisech musí být zalalování řádků, tedy např. místo:
"Jsi na lesní cestě, která se klikatí až za obzor, kde mizí v siluetě zapadajícího slunce. Ticho podvečerního lesa občas přeruší zpěv posledních ptáků."
musí být:
"Jsi na lesní cestě, která se klikatí až za obzor, kde mizí v siluetě zapadajícího\nslunce. Ticho podvečerního lesa občas přeruší zpěv posledních ptáků."
switch (aNazev) {
case "Hrad":
this.popis = "Stojíš před okovanou branou gotického hradu, která je zřejmě jediným vchodem do pevnosti.\nKlíčová dírka je pokryta pavučinami, což vzbuzuje dojem, že je budova opuštěná.";
break;
case "Les":
this.popis = "Jsi na lesní cestě, která se klikatí až za obzor, kde mizí v siluetě zapadajícího\nslunce. Ticho podvečerního lesa občas přeruší zpěv posledních ptáků.";
break;
case "Lesní rozcestí":
this.popis = "Nacházíš se na lesním rozcestí.";
break;
case "Rybník":
this.popis = "Došel jsi ke břehu malého rybníka. Hladina je v bezvětří jako zrcadlo. Kousek\nod tebe je dřevěná plošina se stavidlem.";
break;
case "Dům":
this.popis = "Stojíš před svým rodným domem, cítíš vůni čerstvě nasekaného dřeva, která se line\nz hromady vedle vstupních dveří.";
break;
}
Moc děkuji za hledání "chyby". Pokud si vzpomínám, kopíroval jsem ten
předmětný text ze zadání. Nezkoumal jsem blíže tyto stringy ... po
kompilaci mi to hlásilo chybu, tak jsem řetězec "vyčistil" od
netisknutelných znaků. To možná byla chyba, pravděpodobně tenkrát
kompilátor hlásil asi jinou chybu ....
Ještě jednou díky.
Václav
No, tohle je prostě taková chyba "nechyba", prostě hledáš, co se
validátoru nelíbí, beru to jako takovej kvíz. Tohle šlo docela vyčíst z toho,
co nalezl/očekával.
Jinak pokud bereš problém jako vyřešený, je dobré vlákno uzavřít.
Zobrazeno 16 zpráv z 16.