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
Jiří Pivec
Člen
Avatar
Jiří Pivec:31.10.2021 0:07

Výborná aplikace. Díky.
A mám stejný dotaz jako Katka....
V metodě BranSe ukládám přímo do privátní proměnné zprava

zprava = String.Format("{0} odrazil útok", jmeno);

zatímco v metodě Utoc to beru přes metodu NastavZpravu(zpra­va)

NastavZpravu(String.Format("{0} útočí s úderem za {1} hp", jmeno, uder));

Tomu opravdu nerozumím. Když metodu NastavZpravu(zpra­va) nevytvořím a budu zapisovat přímo do proměnné zprava, funguje to úplně stejně. Nebo?

Odpovedať
„Kdo se umí smát sám sobě, má právo se smát všemu ostatnímu, co mu k smíchu připadá.“ J.W.
Avatar
Odpovedá na Jiří Pivec
Jaroslav Drobek:2.8.2022 12:09

V metodě BranSe se nejdříve řetězec pro výpis sestavuje v závislosti na větvi, kterou se po podmínce projde - co vypsat, je jisté až po ukončení větvení. Pro (postupné) sestavování řetězce se použije proměnná zprava(možná trochu nešťastně se stejným názvem jako vlastnost instance třídy Bojovnik), která slouží jako parametr pro vnitřní metodu NastavZpravu. V metodě Utoc je výstupní řetězec známý hned, takže je zbytečné pro něj vymýšlet novou proměnnou a použije se přímo jako parametr v metodě NastavZpravu..

Tvůj navrhovaný zápis přímo do vlastnosti zprava (bez použití metody NastavZpravu) by fungoval; možná by byl ale v rozporu s dobrými praktikami - v podobném kurzu k Javě se tomu věnovala problematika getterů a setterů (10. lekce), tady něco podobného očekávám rovněž v 10. lekci..

Avatar
Jaroslav Drobek:2.8.2022 12:14

Hodnocení:

  • "komentáře si dopiště"
  • Asi by mě nenapadlo rozdělit ve třídě Arena výpis do konzole na tři části (Vykresli + 2x VypisZpravu)..
  • Když se použije název Arena, který doposud patřil jmennému prostoru, nefunguje již zpřístupnění tohoto jmenného prostoru pomocí using Arena, ale musí se přejít alternativě z poskytnutých zdrojáků: obalit hlavní třídu jmenným prostorem Arena.
Avatar
Jaroslav Drobek:2.8.2022 12:16

Hodnocení (pokračování):

  • V základním kurzu se používalo takové nastavení VS, aby se zobrazoval jen vnitřek hlavní třídy - kde se ve VS dá rychle zařídit obalení vším potřebným?
  • Při lichém počtu stěn "kostky" by byl bojovnik2 znevýhodněn (má menší šanci útočit první).
Avatar
Miroslav Vozňák :31.5.2023 20:01

S novou verzí VisualStudia jsem trochu v pasti, dostávám error CS0118

Avatar
Rostislav Mikolaš:4.6.2023 11:16

Přiznám se, jako úplný začátečník považuji za poněkud nešťastné, že jmenný prostor i název třídy je zcela totožný. VS se to vůbec nelíbilo a já nevěděl jak mohu "bezpečně" změnit jméno třídy či jmenného prostoru abych konflikt odstranil. Nakonec mne napadlo, že se v programu.cs budu odkazovat na Arenu následovně:

Arena.Arena arena = new Arena.Arena(zal­goren, shadow, kostka);

arena.Zapas();
Console.ReadKey();

Postupoval jsem správně a nebo jsem měl raději jít jinou cestou ?
Měnit název třídy či jmenného prostoru i kdybych to uměl jsem nechtěl, abych nenarušil případnou návaznost dalších úprav této aplikace.

Avatar
Petr Kopecký:2.7.2023 11:24

Jak nejlépe otestovat více variant programu? Jde vytvořit druhý soubor program2.cs a v něm mít modifikovany kód z program.cs? Nebo vytvořit kopii celého projektu? Jak se to dělá správně?

Avatar
Jana Poskerová:13.9.2023 17:31

graficky by bylo pěkné, pokud nejsou stejně dlouhá jména bojovníků, odsadit grafické zobrazení životů, aby byla hezky pod sebou a bylo na první pohled vidět, kdo vítězí. dále bych nejprve vykreslovala aktuální stav životů a pak až útočila, takto známe stav životů po útoku ještě před vypsáním zpráv a dramatická pauza tedy nedává moc smysl :)

Avatar
Odpovedá na Rostislav Mikolaš
Václav Bartoška:14.9.2023 14:35

Právě jsem se dostal ke stejnému konfliktu. Přejmenoval jsem si jméno projektu přímo v Solution Exploreru, v každé classe 'namespace a v konzoli 'using'. Vše funguje. :)

Avatar
David Kočí
Člen
Avatar
David Kočí:19.9.2023 12:20

Zdravím, mám dotaz. Mohu v rámci náhody, jestli bude začínat první nebo druhý bojovník psát tento kód takhle?

Warrior warrior1 = this.warrior1;
Warrior warrior2  = this.warrior2;

Console.WriteLine("Welcome in Arena!");
Console.WriteLine($"Today will fight {warrior1} against {warrior2}");
Console.WriteLine("Let´s fight begin.");

if (dice.DiceRoll() <= dice.GetNumberOfWalls() / 2)
{
    warrior1 = this.warrior2;
    warrior2 = this.warrior1;
}

Ve visual studio funguje, jenom by mě zajímalo, zda je to korektní zápis.

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.