Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 8. diel - C# - Aréna s bojovníkmi

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Tomáš Knor
Člen
Avatar
Odpovedá 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?

Avatar
Odpovedá 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;
}
Odpovedať
Neaktivní uživatelský účet
Avatar
vajkuba1234
Člen
Avatar
Odpovedá 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 :)

Odpovedať
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());

}

}
}

Avatar
pocitac770
Tvůrce
Avatar
Odpovedá 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é

Editované
Avatar
Odpovedá na pocitac770
Patrik Pastor:19.1.2019 10:58

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

Avatar
David
Člen
Avatar
David:11.4.2020 16:14

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

Avatar
Jiří Rajt
Člen
Avatar
Jiří Rajt:6.8.2020 13:49

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

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í.

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?

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 76.