Kezdőoldal » Számítástechnika » Programozás » Hogyan lehetne ezt kivitelezni...

Hogyan lehetne ezt kivitelezni? (C# - Egyszerű logikai játék?!)

Figyelt kérdés

Egy nyerőgéphez hasonló játékot szeretnék írni C#-ban, aminek az alapja az, hogy van 3 változóm.


int num1 = 0;

int num2 = 0;

int num3 = 0;


Ezeknek randomnumber segítségével 0 és 3 között értéket változtatok.

pl: 0 ; 2 ; 3


(A játékos akkor nyer, ha mindhárom szám azonos)


De mivel így teljesen véletlenszerű az egész, így nekem a nyerőgép üzemeltetőjének ez nem lenne túl kedvező, így arra gondoltam, hogy kicsit játszanék a valószínűségekkel.


Szóval ha az első szám pl: 0 lett, akkor a következő pozícióra fixen 30% esélye legyen a 0-nak. Ha netán a következő szám is 0 lesz, akkor a harmadik pozícióra már csak 10% esélye legyen a 0-nak.



És ezt később variálnám érték arányosan. Pl a 7-es szám érne a legtöbbet így erre lenne a legkevesebb esélye a játékosnak. míg az 1-es érne a legkevesebbet és azt sűrűbben adná.


Valamint lenne egy számláló a gépben, ami számlálja, hogy mennyit nyert és mennyit bukott a játékos. A gépnek mindig +200% nyereségben kell lennie, ha ez az arány lejjebb megy, akkor a nyerési esélyek is lejjebb mennek, mindaddig amíg ez az érték nem áll vissza.


Valami ilyesmi lenne a terv, csak mivel újrakezdő vagyok így ez még bonyolult számomra.


Eddigi kódom:


int num1 = 0;

int num2 = 0;

int num3 = 0;

Console.WriteLine("- Nyerőgép -");

Console.Write("Mennyi pénzzel szeretnél játszani? : ");

double cash = Convert.ToDouble(Console.ReadLine());

string response = null;

Random RandomNumber = new Random();

for (; ; ) // Loop forever

{

if (cash <= 0)

{

Console.WriteLine("Elfogyott a pénzed!");

Console.Read();

break;

}

Console.WriteLine("Pénz = {0} Euro", cash);

Console.WriteLine("Pörgetsz? I/N");

response = Console.ReadLine();

if (response == "N")

{

break;

}

else

{

cash -= 1;

num1 = RandomNumber.Next(0, 3);

if(num1 = 0)

{

num2 = RandomNumber.Next(0, 3);

}

num2 = RandomNumber.Next(0, 3);

num3 = RandomNumber.Next(0, 3);

Console.WriteLine("{0} - {1} - {2}", num1, num2, num3);

if (num1 == num2 && num2 == num3)

{

cash += 100;

Console.WriteLine("Gratulálok! Nyertél 10 Eurót!");



2022. jún. 19. 10:28
 1/3 anonim ***** válasza:

A második szám nem az aktuális elsőtől függ, hanem az addig előállított összesétől, ami 0-val kezdődött. Ugyanez elmondható a harmadikról is. Különben honnan tudnád, hogy tényleg 30% eséllyel fordul elő.


Azt hirtelen nem látom hogyan akarod befolyásolni, hogy a játékos 200% profit fölé tippeljen... Esetleg a tippek alapján fel lehetne állítani egy statisztikát, hogy mely számokat tippelik a legkevesebbet és azokat adni, de ekkor a korábbi fix súlyozás kontraproduktív is lehet.

2022. jún. 19. 11:28
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:
Ezeket úgy szokták megvalósítani, hogy a bevétel (mint összeg) képezi a valószinűség alapját. A gépek kivétel nélkül programozottan működnek, tehát a véletlenek gyakorlatilag ki vannak zárva. A nyerési esély programozható, annak arányát törvény határozza meg. Nálunk 80:20 volt az arány, amiről még tudomással bírtam. Ez annyit tesz, minden befizetett 1000 forintból 200-at kötelező nyeremény címén kifizetni. Ezt sok helyen állították át 90:10-re, de ezzel komoly pénzbüntetést, vagy üzemeltetési engedélyt kockáztattak.
2022. jún. 19. 19:31
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:
45% a kötelező nyeremény, ezt nem árt tudni.
2022. jún. 19. 20:29
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!