Kezdőoldal » Számítástechnika » Programozás » C# Random szám?

C# Random szám?

Figyelt kérdés

Hogyan lehet azt megcsinálni hogy bekér a gép egy számot (1 vagy 2).

AZTÁN

Van 10db szám , abból 8db 1-es , 2db 2-es és ebből véletlenszerűen kiválaszt a gép egyet , és ha megegyezik a választott számunkal akkor nyertünk 100$-t , ha viszont nem egyezik meg akkor vesztünk 10$-t .


Az egyenleg változónk 1000$ alapból és ha 0 lesz akkor vége a játéknak , viszont amíg van egyenlegünk addig újra és újra megy a játèk .


Az alap dolgokkal meg vagyok csak a randomot illetve ezt az újra újra kellene meg csinálni , amit gondolom While ciklussal kell ?!



2017. nov. 18. 11:50
 1/4 anonim ***** válasza:
100%

A 8 darab 1-est és 2 darab 2-est egy tömbben tárolod. Ezesetben így néz ki a kód:


(már létezik egy gepszamai nevű 10 elemű feltöltött tömböd)

int egyenleg = 1000;

do {

int bekertszam = -1;

while(bekertszam != 1 && bekertszam != 2) {

Console.Write("Szám (1 vagy 2):");

bekertszam = Convert.ToInt32(Console.ReadLine());

}


Random random = new Random();

int randomszam = random.Next(0, 9 + 1); //így tudsz random számot generálni, szóval itt pl. 0,1,2,3,4,5,6,7,8 vagy 9 lehet, 10 már nem, de a maximum értéknek itt hozzá kell adni 1-et.


if(gepszamai[randomszam] == bekertszam) {

egyenleg +=100;

Console.WriteLine("Nyertél 100$-t! A jelenlegi egyenleged: " + egyenleg);

} else {

egyenleg -=10;

Console.WriteLine("Nyertél 10$-t! A jelenlegi egyenleged: " + egyenleg);

}

}

} while(egyenleg > 0);


Ennek működnie kéne, bár nem teszteltem. Ebben az esetben van ugye egy 10 számot tartalmazó tömböd (gepszamai), és legenerál egy random számot 0 és 9 között, és azzal a számmal hasonlítja össze a bekért számot, ami a tömb annyiadik értéke (randomszam). 2 while ciklus van a kódban, azaz egyik (a "külső") azért, hogy addig fusson a program, amíg az egyenleg nagyobb, mint nulla. A másik ciklus azért kell, hogy addig kérjen be számot, amíg az nem 1, vagy 2 (mondjuk ha a bekért szám szöveg, az errorozni fog). Ha van valami kérdésed, akkor szívesen válaszolok rá akár PM-ben akár itt is :)

2017. nov. 18. 14:11
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
77%
De egyébként egy ilyen szituációban a random generált szám lehetne 1-10-ig is, és ha a generált szám kisebb vagy egyenlő mint 9, akkor az megfelel annak, hogy a gép kidobott egy 1-est, ha viszont 9 vagy 10, akkor az kettesnek felel meg, és nem kell hozzá tömb.
2017. nov. 18. 14:15
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

Bocsi, a számbekérős ciklus így néz ki, elnéztem:

int bekertszam = -1;

do {

Console.Write("Szám (1 vagy 2):");

bekertszam = Convert.ToInt32(Console.ReadLine());

} while(bekertszam != 1 && bekertszam != 2);

2017. nov. 18. 14:41
Hasznos számodra ez a válasz?
 4/4 EgyGabor ***** válasza:

És ha milliós oldal lesz majd akkor ne a random-tól kérj randomot mert az nem random ;) Mindig ugyazt a sort adja.

Vannak cryptosafe random függvények azok tényleg randomok (sok esetben hw random generatortól az alaplapon/CPU-ban).

2020. máj. 27. 10:21
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!