Diskuze: Znovu souboj 1vs1.
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 12 zpráv z 12.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, než to začneš spojovat, tak si přečti pořádně základy OOP. Vím, že v PPA1 se to nejspíš moc nebere, ale bez toho moc dobře napsat nedá.
while (bojovnik1.nazivu() && bojovnik2.nazivu()) {
bojovnik1.utoc(bojovnik2);
vykresli();
vypisZpravu(bojovnik1.vratPosledniZpravu()); // zpráva o útoku
vypisZpravu(bojovnik2.vratPosledniZpravu()); // zpráva o obraně
bojovnik2.utoc(bojovnik1);
vykresli();
vypisZpravu(bojovnik2.vratPosledniZpravu()); // zpráva o útoku
vypisZpravu(bojovnik1.vratPosledniZpravu()); // zpráva o obraně
System.out.println();
}
Tohle je kus kódu z místního tutoriálu, kde také spolu bojují dva protivníci. Zkus se na to podívat.
Mrknu na to. Děkuju ti za rady.
Teď si musím dát pauzu a třeba na to za hodinku mrknu a řeknu si
co jsem to tu udělal
Každopádně, ještě jednou děkuji 
Ahoj, potřeboval bych poradit. Jsem úplně zaseklej při tom samém.
Hledám a hledám, ale nějak se nemůžu dostat dál. Nevím jak mám volat ty
metody z jiných tříd se scannerem nejdříve z tříd do té hlavní a pak do
main. Jestli pak v Main vytvořit znovu Scanner nebo jak. Takže bych ocenil
ještě větší popostrčení 
Ahoj.
Vzal jsem zadaní toho úkolu a napsal to přesně tak jak je to tam napsané.
Krok po kroku. A pokud jsi dodržel zadání i v názvech metod, měla by ti
fungovat následující metoda main
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// zadas prvni postavu
Postava postava1 = nactiPostavu(sc);
// zadas zbrane pro prvni postavu
Zbran pravaZbranPostava1 = nactiZbran(sc);
Zbran levaZbranPostava1 = nactiZbran(sc);
// vyzbrojis prvni postavu
vyzbrojPostavu(postava1, levaZbranPostava1, pravaZbranPostava1);
// zadas druhou postavu
Postava postava2 = nactiPostavu(sc);
// zadas zbrane pro druhou postavu
Zbran pravaZbranPostava2 = nactiZbran(sc);
Zbran levaZbranPostava2 = nactiZbran(sc);
// vyzbrojis druhou postavu
vyzbrojPostavu(postava2, levaZbranPostava2, pravaZbranPostava2);
//spustis souboj
Postava vitez = souboj(postava1, postava2);
//vypises viteze
System.out.println("Vitez: " + vitez.toString());
}
V případě že ti něco nefunguje pravděpodobně jsi nedodržel zadání. Ale je taky možné že v tom mám chybu já. Každopádně by jsi si mohl ruční zadávání nahradit následujícím codem (nahradit obsah metody main) a tím si urychlit vývoj.
public static void main(String[] args) {
Postava postava1 = new Postava("Thorygg", 5, 3, 80);
postava1.vezmiZbran(Ruka.LEVA, new Zbran("Tezky Mec", 15, 2));
Postava postava2 = new Postava("Vlk", 10, 10, 30);
Postava vitez = souboj(postava1, postava2);
System.out.println("Vitez: " + vitez);
}
Já mám tedy teď spíš problém u souboje.
Mám tohle
while(postava1.jeZiva()&&postava2.jeZiva())
postava1.zautoc(postava2);
postava2.branSe(utok);
if(postava2.jeZiva()) {
postava2.zautoc(postava1);
}
mám ale podtrhnutý zautoc a u BranSe(utok) mám podtržený právě ten
útok.
Co s tím ?
Bys mohl treba dat opraveny kod. Tu chybu neni ted s cim porovnat. Tak to
bude asi tezke.
Zautoc je asi podtrzene proto, ze takovy nazev se tam nevyskytuje (male velke
pismenka by to melo uvazovat jako rozdilne znaky). Pripadne v tom kodu nahore
jsem teda zautoc po chvili nasel. No, vraci to int jako navratovou hodnotu,
kterou ale nikde neukladas. Mozna, to mu vadi. Tak tam nic nevracej z te
funkce.
Utok je podtrzeny asi proto, ze takova promena neexistuje. Mozna to melo byt
spis postava1.utok nebo getUtok().
int zautoc() - Vrátí celkovou útočnou sílu (tj. včetně útočné síly držených zbraní).
int branSe(int utok) - Metoda vrátí množství ubraného zdraví.
No v podstatě jsi si odpověděl. Metoda int zautoc() vraci útočnou sílu ale nepřebíra zádný argument. Což ale ty děláš.
postava1.zautoc(postava2);
To je taky důvod proč máš podtržené to zautoc.
Proč je podtržený útok bylo již vysvětleno výše.
Utok je podtrzeny asi proto, ze takova promena neexistuje.
A možná oprava:
//zjistiš si útok postavy1
int utokPostavy1 = postava1.zautoc();
//zautočíš tímto útokem na postavu2
postava2.branSe(utokPostavy1);
//kontrola jestli postava2 prežila útok postavy1
if( !postava2.jeZiva() ) {
//pokud ne vratíš postavu jedna jako víteze
return postava1;
}
// tady bude následovat útok postavy2 na postavu1 (v podastatě to samé jen prohodíš
// postavy
Včera večer jsem to s ním docela podrobně řešil. Kód jsme museli dost upravit. Výsledné řešení sem asi dávat nebude, protože se jedná o domácí úkol.
Aha
v tom případě by se
toto vlákno mohlo uzavřít.
Zobrazeno 12 zpráv z 12.