Nechce se mi sečíst random

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Skelller
Level 2
Level 2
Příspěvky: 222
Registrován: červenec 14
Bydliště: Opava
Pohlaví: Muž
Stav:
Offline

Nechce se mi sečíst random

Příspěvekod Skelller » 01 zář 2014 19:00

Ahoj. Dneska jsem začal dělat jednu hru z knížky... Tohle je dělané úplně jinak. Jenom stejný princip hry... Nechce se mi ve "While" sečíst random.. Chci tam napsat

Kód: Vybrat vše

kartyhrace += nahodnacisla.next(1,11);

Ale vždy mi to hodí chybu... Kdyžtak děkuju za radu zde je kod...

Kód: Vybrat vše

namespace Karetních_21
{
    class Program
    {
        static void Main(string[] args)
        {
            Random nahodnacisla = new Random();
            int kartyhrace, kartypc;

            Console.WriteLine("Ahoj, vítej ve hře karetních 21");
            Console.WriteLine();
            System.Threading.Thread.Sleep(2000);
            Console.WriteLine("Chceš si vzít první kartu? [A/N]");
            char volba = char.Parse(Console.ReadLine());

            if (volba == 'A')
            {
                kartyhrace = nahodnacisla.Next(1, 11);
                kartypc = nahodnacisla.Next(1, 11);
                Console.WriteLine("Tvůj počet bodů: " + kartyhrace);
                Console.WriteLine();
            }

            else if (volba == 'N')
            {
                Console.WriteLine("Hra se za moment ukončí");
                System.Threading.Thread.Sleep(3000);
                Environment.Exit(0);
            }

            else
            {
                Console.WriteLine("Neplatná volba!");
                System.Threading.Thread.Sleep(3000);
                Environment.Exit(0);
            }

            Console.WriteLine("Chceš si vzít další kartu? [A/N]");
            volba = char.Parse(Console.ReadLine());
            while (volba == 'A')
            {

                kartyhrace = nahodnacisla.Next(1, 11);
                kartypc = nahodnacisla.Next(1, 11);
                Console.WriteLine("Tvůj počet bodů: " + kartyhrace);
                Console.WriteLine("Chceš si vzít další kartu? [A/N]");
                volba = char.Parse(Console.ReadLine());
            }
           
           
           
            Console.ReadKey();

        }
    }
}
Notebook Acer Aspire E15 E5-571G-57N2
==========================
Procesor: Intel i5-5200U
Grafika: NVIDIA GeForce GT840M
RAM: 8GB DDR3

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7400
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Nechce se mi sečíst random

Příspěvekod faraon » 01 zář 2014 19:46

Chceš tam napsat:

Kód: Vybrat vše

kartyhrace += nahodnacisla.next(1,11);

ale v kódu máš

Kód: Vybrat vše

kartyhrace = nahodnacisla.Next(1, 11);
kartypc = nahodnacisla.Next(1, 11);

Není tam potom jen ta poslední vytažená karta?

Mimochodem, vytváří to při každém spuštění jinou sekvenci automaticky, nebo musíš použít nějaké randomize aby nebyla pokaždé stejná řada karet?
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Skelller
Level 2
Level 2
Příspěvky: 222
Registrován: červenec 14
Bydliště: Opava
Pohlaví: Muž
Stav:
Offline

Re: Nechce se mi sečíst random

Příspěvekod Skelller » 01 zář 2014 19:59

Ano mám tam

Kód: Vybrat vše

kartyhrace = nahodnacisla.Next(1, 11);
kartypc = nahodnacisla.Next(1, 11);

Protože mi to

Kód: Vybrat vše

kartyhrace += nahodnacisla.Nest(1,11);

Nefunguje.. Píše mi to, že kartyhrace is unasigned nebo něco takového.. Omlouvám se, že nemůžu napsat celou chybu, ale nechce se mi zapnout Visual Studio -_-
Notebook Acer Aspire E15 E5-571G-57N2
==========================
Procesor: Intel i5-5200U
Grafika: NVIDIA GeForce GT840M
RAM: 8GB DDR3

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Nechce se mi sečíst random

Příspěvekod CZechBoY » 01 zář 2014 20:27

Tak to rovnou assignuj.. int kartyhrace = 0;
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7400
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Nechce se mi sečíst random

Příspěvekod faraon » 02 zář 2014 08:25

Že by po deklaraci proměnných v nich byla náhodná hodnota, co v tom místě paměti zůstala po předchozí činnosti, a překladač tě před tím varoval? Ono je lepší všechny proměnné rovnou i inicializovat:

Kód: Vybrat vše

Random nahodnacisla = new Random();
int kartyhrace=0, kartypc=0;
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Nechce se mi sečíst random

Příspěvekod CZechBoY » 02 zář 2014 09:10

On tam má kartyhrace +=, tzn že pc musí tu proměnnou nejdřív přečíst a pak k ní přičíst to náhodný číslo.
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Skelller
Level 2
Level 2
Příspěvky: 222
Registrován: červenec 14
Bydliště: Opava
Pohlaví: Muž
Stav:
Offline

Re: Nechce se mi sečíst random

Příspěvekod Skelller » 03 zář 2014 19:50

Už to mám na začátku jsem měl

Kód: Vybrat vše

kartyhrace = nahodnacisla.next(1,11);

Ale správně jsem měl mít

Kód: Vybrat vše

kartyhrace += nahodnacisla.next(1,11);


Ale nastal další problém se kterým si nevím rady...

Kód: Vybrat vše

while (volba == 'A')
            {
                kartyhrace += nahodnacisla.Next(1, 12);
                kartypc += nahodnacisla.Next(1, 12);
                Console.WriteLine("\nTvoje body jsou: " + kartyhrace + "\nChceš si vzít další kartu? [A/N]");
                Console.ReadLine();
               
               
            }
                if (volba == 'N')
                {
                    if (kartyhrace > kartypc && kartyhrace <= 21)
                    {
                        Console.Write("Gratuluji, vyhrál jsi!!");
                    }
                }
            }


Nemůžu přijít na to jak to upravit.. Chci abych měl.. Dokud budu dávat A tak se to bude přičíta, ale jakmile dám N tak chci aby se provedlo to v podmínce if... Jenže jakmile jednou zmáčknu A tak se ten while bude provádět ať už zmáčknu cokoliv... Děkuji za radu :/ Jakože potřebuju aby dokud je A aby se provádělo to ve while.. Ale jakmile už dám N tak se provede if....
Notebook Acer Aspire E15 E5-571G-57N2
==========================
Procesor: Intel i5-5200U
Grafika: NVIDIA GeForce GT840M
RAM: 8GB DDR3

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7400
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Nechce se mi sečíst random

Příspěvekod faraon » 03 zář 2014 20:36

A máš někde uvnitř toho while() další načítání klávesnice do té řídící proměnné? Já tam vidím jenom čekání na stisk!
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Po výpadku napájení notebook nechce nabootovat do Win Příloha(y)
    od Grander » 09 led 2025 16:55 » v Problémy s hardwarem
    7
    3718
    od petr22 Zobrazit poslední příspěvek
    14 led 2025 22:40
  • Sluchátka FiiO JT1 - Windows nechce načíst mikrofón Příloha(y)
    od HelFix » 11 pro 2024 17:55 » v Problémy s hardwarem
    5
    3434
    od HelFix Zobrazit poslední příspěvek
    12 pro 2024 13:50

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti