NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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 4 - Hrací kostka v C# - Zapouzdření, konstruktor a Random

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
Odpovídá na Pavel Kvarda
Michal Štěpánek:29.9.2017 13:35

Protože to není klasická metoda (void), ale v podstatě je to získání hodnoty proměnné...

Odpovědět
29.9.2017 13:35
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Pavel Kvarda
Fitnesák
Avatar
Odpovídá na Michal Štěpánek
Pavel Kvarda:29.9.2017 13:43

Moc tuhle logiku nechápu. Metoda Vratpocetsten je přece taky získání hodnoty proměné a je s velkým poč. písmenem.

 
Odpovědět
29.9.2017 13:43
Avatar
Odpovídá na Pavel Kvarda
Michal Štěpánek:29.9.2017 13:46

Pravda, pak je to asi skutečně nějaká chybka, asi se tam omylem dostalo malé písmenko...

Odpovědět
29.9.2017 13:46
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Martin Seidl
Člen
Avatar
Martin Seidl:5.11.2017 21:03

Jen me tak napadlo jestli neni lepsi (teda aspon me to tak prislo) nejdriv udelat surovou kostku a az pak ostatni? Ja to treba moc nezvladal vsechno vtrebat :) samozrejme je to jen typ a zaroven sem prikladam muj kod pro ostatni, samozrejme super clanek jako vzdy :)

namespace Arena
{
    class Kostka
    {

        private Random random = new Random();
        private int pocetSten = 6;

        public int Hod()
        {
            return random.Next(1, pocetSten + 1);
        }
    }
}
namespace Arena
{
    class Program
    {
        static void Main(string[] args)
        {
            Kostka kostka = new Kostka();

            Console.WriteLine(kostka.Hod());
            Console.ReadKey();
        }
    }
}
 
Odpovědět
5.11.2017 21:03
Avatar
ivanp
Člen
Avatar
ivanp:26.12.2017 16:30

Pochopil som to správne? Ked v triede Kocka nieje žiadna metóda tak si C# vygeneruje metódu public Kocka() {} ??

 
Odpovědět
26.12.2017 16:30
Avatar
Odpovídá na ivanp
David Vavrečka:12.1.2018 11:27

Přesně tak, pokud ve třídě Kočka nevytvoříš konstruktor (jak ty píšeš metoda public Kocka(){ }), tak si ho C# vytvoří sám, při vytvoření instance.

 
Odpovědět
12.1.2018 11:27
Avatar
Martin Petrovaj
Tvůrce
Avatar
Martin Petrovaj:1.4.2018 12:41

Už by sa mohlo dať z článku preč

/---comennt TODO: Přejmenovat hod() na Hod() \--

v časti "Náhodná čísla", kazí to trochu dojem :-)

Odpovědět
1.4.2018 12:41
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Dušan Kovářík:13.6.2018 1:24

Jsem nadšený! Tutoriál jde opět pěkně přímo k věci. Má to krásnou logickou posloupnost a zároveň spád! Je to opravdu jiné než některé bichle o programování, kde se tytéž ukázky kódu opakují pořád dokola jen s mírnými modifikacemi, ale současně značnou redundancí nových informací, která učební proces zbytečně zdržuje.

 
Odpovědět
13.6.2018 1:24
Avatar
Miroslav Mazal:15.8.2018 18:07

Omlouvám se, pokud se budu ptát na blbosti, ale nechápu toto: V článku je napsáno: Není dobré atribut nastavit na public, protože nebudeme chtít, aby nám někdo mohl již u vytvořené kostky měnit počet stěn. Ale přitom si počet stěn nastavujeme zvenčí (neboli v public) pomocí proměnné. Není to protimluv?

 
Odpovědět
15.8.2018 18:07
Avatar
krepsy3
Tvůrce
Avatar
Odpovídá na Miroslav Mazal
krepsy3:15.8.2018 22:46

Není :) Chápu, o co ti jde, nicméně podívej se na to takto - při vytváření kostky pro naší hru jí dáme počet stěn - předáme tento počet jako parametr v konstruktoru - a konstruktor je pochopitelně veřejný, jinak bychom si kostku nemohli vytvořit vůbec. Tím nám vznikne kostka s počtem stěn, který jsme chtěli, a nyní již nechceme, aby bylo jakkoliv možné kostku zvenčí, tedy akcí jiného objektu, ovlivnit, tedy jí změnit počet stěn (ale cokoliv jiného). Tedy přesně tak, abychom zachovali ono zapouzdření, o kterém se již mluvilo!

Tedy - v okamžiku zahájení činnosti aplikace si vytvoříme kostku, podle naší představy, tedy se správným počtem stěn. Dále už ale s kostkou budeme jen házet, a necháme ji, aby nám dávala náhodná čísla, dle počtu stěn. Ale už jí nikde nebudeme počet stěn znovu nastavovat. Je to srozumitelné?

Odpovědět
15.8.2018 22:46
Programátor je stroj k převodu kávy na kód.
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 154.