NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 6 - C# - Aréna s bojovníky

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Tomáš Knor
Člen
Avatar
Odpovídá na Neaktivní uživatel
Tomáš Knor:14.1.2019 21:13

A když ho zalozim jeste před case tak ho budu moct změnit na Maga?

 
Odpovědět
14.1.2019 21:13
Avatar
Odpovídá na Tomáš Knor
Neaktivní uživatel:16.1.2019 19:01
Bojovnik b1;
switch (vyber) {
    case '1': b1 = new Bojovnik(/*...*/); break;
    case '2': b1 = new Mag(/*...*/); break;
}
Odpovědět
16.1.2019 19:01
Neaktivní uživatelský účet
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Tomáš Knor
vajkuba1234:16.1.2019 19:25

Ano, maji stejneho predka... K vytvareni instanci si precti clanky na tema "Factory design pattern", ktery k tomu slouzi :)

Odpovědět
16.1.2019 19:25
No hope, no future, JUST WAR!
Avatar
Patrik Pastor:18.1.2019 23:20

chtěl jsem se zeptat, nejede mi ten náhodný výběr bojovníka. Pokaždé to je ten první ale nikdy druhý (zkoušel jsem to hodněkrát). Zde je kód:

public void Zapas()
{
Console.Write­Line("vítejte v aréně, zde bojovnící umírají...a co vy?");
Console.Write­Line("utkání mezi {0} a {1}", bojovnik1, bojovnik2);
Console.Write­Line("PRESS ENTER");

Bojovnik b1 = bojovnik1;
Bojovnik b2 = bojovnik2;

int hod1 = 0;
int hod2 = 0;
while (hod1==hod2)
{
hod1 = kostka.hod();
hod2 = kostka.hod();
}

if (hod1 > hod2)
{
bojovnik1 = b2;
bojovnik2 = b1;

Console.Write­Line("začínat bude bojovnik {0}", b1);
Console.ReadKey();
}
else
Console.Write­Line("začínat bude bojovnik {0}", b1);

while (b1.naZivu() && b2.naZivu())
{
b1.Utoc(b2);
Vykresli();
VypisZpravu(b1­.VratZpravu());
VypisZpravu(b2­.VratZpravu());

b2.Utoc(b1);
if (b2.naZivu())
{
Vykresli();
VypisZpravu(b2­.VratZpravu());
VypisZpravu(b1­.VratZpravu());

}

}
}

 
Odpovědět
18.1.2019 23:20
Avatar
pocitac770
Tvůrce
Avatar
Odpovídá na Patrik Pastor
pocitac770:19.1.2019 0:59
if (hod1 > hod2)
{
        bojovnik1 = b2;
        bojovnik2 = b1;

        Console.WriteLine("začínat bude bojovnik {0}", b1);
        Console.ReadKey();
}
else
        Console.WriteLine("začínat bude bojovnik {0}", b1);

Hlavní problém máš v tom, že sji prohoil dosazování bojovníků. Proměnné které používáš pro boj jsou b1 a b2. Ty jsi místo toho přepsal původní proměnné s bojovníky v instanci. Takhle kdyby jsi například dělal druhé kolo, a cely cyklus zapasu jsi spustil znovu, tak by jsi najednou v

Console.WriteLine("utkání mezi {0} a {1}", bojovnik1, bojovnik2);

zjistil, že bojovníci jsou opačně než předtím.
A jinak je zbytečné toto¨

        Console.WriteLine("začínat bude bojovnik {0}", b1);
        Console.ReadKey();
}
else
        Console.WriteLine("začínat bude bojovnik {0}", b1);

Místo toho ten jeden řádek můžeš dát úplně mimo if/else, nijak se nemění v závislosti na tom zda podmínka projde nebo ne.
Nakonec, používej tlačítko pro přidádání kódu nad textovým polem, takto to je velice nečitelné

Editováno 19.1.2019 1:00
 
Odpovědět
19.1.2019 0:59
Avatar
Odpovídá na pocitac770
Patrik Pastor:19.1.2019 10:58

dik všemu rozumím, kromě toho tlačítka, myslíš komentáře?

 
Odpovědět
19.1.2019 10:58
Avatar
David
Člen
Avatar
David:11.4.2020 16:14

Díky za článek. ;-)

 
Odpovědět
11.4.2020 16:14
Avatar
Jiří Rajt
Člen
Avatar
Jiří Rajt:6.8.2020 13:49

Díky moc za článek. :-)

 
Odpovědět
6.8.2020 13:49
Avatar
Miloslav Soukup:9.4.2021 12:59

"Gratuluji vám, pokud jste se dostali až sem a tutoriály opravdu četli a pochopili, máte základy objektového programování a dokážete tvořit rozumné aplikace"
Každý odstavec jsem četl a většinou pochopil kódy, ale rozhodně bych sám ještě nedokázal vytvořit takovou bojovou aplikaci. Uvidí se, co přinese další cvičení.

 
Odpovědět
9.4.2021 12:59
Avatar
KaMl
Člen
Avatar
KaMl:13.7.2021 9:07

Výuka perfektní, hra perfektní. Díky moc.
Jediné, co jsem nepobrala, proč máme metodu "NastavZprávu" ?
Když nedělá nic jiného, než že ukládá do proměnné "zprava" a to už jsme vlastně udělali v kódu předtím...

...
zprava = String.Format("{0} utrpěl poškození {1} hp", jmeno, zraneni);
...
zprava = String.Format("{0} odrazil útok", jmeno);
...
NastavZpravu(zprava);

Něco mi uniká... můžete prosím někdo dovysvětlit?

 
Odpovědět
13.7.2021 9:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 76.