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
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?

Odpovědět
31.10.2021 0:07
„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
Odpovídá 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..

 
Odpovědět
2.8.2022 12:09
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.
 
Odpovědět
2.8.2022 12:14
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í).
 
Odpovědět
2.8.2022 12:16
Avatar
Miroslav Vozňák :31.5.2023 20:01

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

 
Odpovědět
31.5.2023 20:01
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.

 
Odpovědět
4.6.2023 11:16
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ě?

 
Odpovědět
2.7.2023 11:24
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 :)

 
Odpovědět
13.9.2023 17:31
Avatar
Odpovídá 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. :)

 
Odpovědět
14.9.2023 14:35
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.

 
Odpovědět
19.9.2023 12:20
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.