Kezdőoldal » Számítástechnika » Programozás » C# segítség? többi lent.

C# segítség? többi lent.

Figyelt kérdés

Szeretnék csinálni egy random szám generátort, olyat,mint pl egy lottószám generátor, minden szelvényhez külön generál adott mennyiségű számot 5ös lottónál 1-45ig 5db számot, stb... megmondja, azt is, hogy legyen jocker, vagy nem!


Segítsetek nekem légyszives fontos lenne.


Köszönöm előre is a segítségeket, eddig jutottam, csak az alapokat ismerem, éppen tanulom a c# nyelvet, szóval légyszi ha lehet egyszerűen, hogy én is értsem még1x köszi: itt az eddigi megoldásom, de vmiért nem működik teljesen...


Tessék:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace Lottó

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Üdvözöllek kedves felhasználó!");

Console.WriteLine("Ez a program lottó számokat generál.");

Console.WriteLine("A következő lottókhoz:");

Console.WriteLine("1: 5-ös lottó");

Console.WriteLine("2: 6-os lottó");

Console.WriteLine("3: Skandináv (7-es) lottó");

Console.WriteLine("4: Joker");

Console.WriteLine("5: Luxor");

Console.WriteLine("6: Kenó");

Console.WriteLine("7: Puttó");

Console.Write("Kérlek válaszd ki, hogy melyik lottó típushoz sorsolnál számot: ");

int l, m;

string tl;

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

tl = "o";

int s1, s2, s3, s4, s5;

switch (l)

{

case 1: tl = "5-ös Lottó"; break;

case 2: tl = "6-os lottó"; break;

case 3: tl = "Skandináv (7-es) lottó"; break;

case 4: tl = "Joker"; break;

case 5: tl = "Luxor"; break;

case 6: tl = "Kenó"; break;

case 7: tl = "Puttó"; break;

}


if (l < 8)

{

Console.WriteLine("Az általad választott lottó típus sorszáma: {0} és neve: {1}.", l, tl);

m = 1;

switch (m)

{

case 1:

Random vsz = new Random();

s1 = vsz.Next(1, 46);

s2 = vsz.Next(1, 46);

s3 = vsz.Next(1, 46);

s4 = vsz.Next(1, 46);

s5 = vsz.Next(1, 46);


if ((s1 == s2) && (s1 == s3) && (s1 == s4) && (s1 == s5) && (s2 == s3) && (s2 == s4) && (s2 == s5) && (s3 = s4) && (s3 == s5) && (s4 == s5))

{

Random vsz = new Random();

s1 = vsz.Next(1, 46);

s2 = vsz.Next(1, 46);

s3 = vsz.Next(1, 46);

s4 = vsz.Next(1, 46);

s5 = vsz.Next(1, 46);

Console.WriteLine ("A számok: A kiválasztott lottó neve: {0}, és a nyerőszámok: {1}, {2}, {3}, {4}, {5}", tl, s1, s2, s3, s4, s5);

}

else

{Console.WriteLine ("A számok: A kiválasztott lottó neve: {0}, és a nyerőszámok: {1}, {2}, {3}, {4}, {5}", tl, s1, s2, s3, s4, s5);}

}


{

Console.Write("Az általad választott számú lottó nem létezik! Kérlek indítsd újra a programot, és írj be egy számot a fennti listából!");

}



Console.ReadKey();

}

}

}

}



2014. dec. 3. 22:24
1 2
 1/16 anonim ***** válasza:
Le ne írd, hogy mi a gond, majd meg megjósoljuk.
2014. dec. 3. 22:37
Hasznos számodra ez a válasz?
 2/16 anonim ***** válasza:

> if ((s1 == s2) && (s1 == s3) && (s1 == s4) && (s1 == s5) && (s2 == s3) && (s2 == s4) && (s2 == s5) && (s3 = s4) && (s3 == s5) && (s4 == s5))


Ez speciel jó eséllyel sosem lesz igaz. Itt azt írtad le bonyolultan, hogy mind az 5 szám ugyanaz. Gondolom itt inkább azt akarod vizsgálni, hogy van-e ismétlődés a számok között. Ami azt jelenti, hogy legalább egy ismétlődést kell nézni, vagyis ÉS helyett VAGY operátor lenne a megfelelő.


Egyébként mi van akkor, ha a 2. sorsoláson is van ismétlődés? :) Ciklusba kéne ezt tenni. :)


Illetve, más megközelítéssel: már az X. szám generálásakor ellenőrizni, hogy az első (X-1) db szám között volt-e olyan, és ha szükséges, újragenerálni. Ha esetleg listát is használsz, akkor az első (X-1) szám ellenőrzése egy metódushívás csupán.

2014. dec. 3. 22:39
Hasznos számodra ez a válasz?
 3/16 A kérdező kommentje:

Az &&ek helyett ||-ot rakok, ezt írja ki: Error 1 Operator '&&' cannot be applied to operands of type 'bool' and 'int' C:\Users\á\Desktop\Lottó\Lottó\Program.cs 53 25 Lottó


és ezt is: Error 2 A local variable named 'vsz' cannot be declared in this scope because it would give a different meaning to 'vsz', which is already used in a 'parent or current' scope to denote something else C:\Users\á\Desktop\Lottó\Lottó\Program.cs 55 32 Lottó



melyik ciklus? számláló elöl v hátultesztelős?

2014. dec. 3. 22:50
 4/16 anonim ***** válasza:

1. Ne írj mindent egy gigantikus switch-be.

2. Prbóbálj törekedni a generálásnál az univerziális kódra.

3. Ismétlődő utasításokat szervezz ciklusba. Olyanba, amit a helyzet megkíván. Esetek 90%-ban for és foreach.


Az error 1 hibád azt jelenti, hogy valamit elírtál, hiányzik valahol egy zárójel a túl összetett kifejezésben és intet próbálsz boolal összehasonlítani.


Az error 2 hibád arra vonatkozik, hogy a switch-en belül deklarált változók életciklusa az egész switch blokkon belül érvényes. Ha mindenképp szükséges ott egy változó, deklaráld a switch előtt / használj más nevet / tedd az eseteket blokkokba.

2014. dec. 3. 22:58
Hasznos számodra ez a válasz?
 5/16 anonim ***** válasza:
Elég egyértelmű hibaüzenetek.
2014. dec. 3. 22:59
Hasznos számodra ez a válasz?
 6/16 A kérdező kommentje:

ok, hogy csináljam??? azért swich, mert ha az 1.lehetőség, akkor 1-90 ig 5db szám kell, ha a kettes lehetőség 1-45ig kell 6db szám, vagy rosszul gondolom???????


Légyszi egyszerűen, csak 1 hete kezdtük, és nem sok mindent tudok... inkább próbáljatok c#os kóddal segíteni egy picit, mint, hogy szöveggel pontokba szedve, kicsit késő van, a pontokhoz :D Köszi.

2014. dec. 3. 23:07
 7/16 anonim ***** válasza:

Elhintek egy magot neked:

Ezek mind egy alapra épülnek, egész számokat generálnak bizonyos mennyiségben és ezek vagy ismétlődhetnek (ez főleg csak jokerre igaz, ha jól tudom) vagy egyedinek kell lenniük. Tehát máris készíthetsz egy függvényt, aminek átadod az intervallumot (pl. 1, 45), a húzott számok mennyiségét (pl. 6) és hogy ismétléses vagy anélküli (pl. false). Visszatérési értéke lehet egy int tömb.

Tehát:

int[] General(int MinSzam, int MaxSzam, int Huzasok, bool ismetleses)

{

... kódod ...

}

2014. dec. 3. 23:14
Hasznos számodra ez a válasz?
 8/16 anonim ***** válasza:
Ha pedig ezt a feladatot nem te találtad ki, hanem ezt adták fel, akkor küld el az anyjába, hogy az effektív megoldáshoz még meg kéne tanulnotok a ciklust, tömböt, függvényeket. Ne adjanak már 100 féle játékot. :)
2014. dec. 3. 23:16
Hasznos számodra ez a válasz?
 9/16 A kérdező kommentje:

köszi a segítséget, lehet, hogy én vagyok a hülye, de am a feladatot én találtam ki, ill egy haverom, a ciklusokat vettük, az elágazásokat is, de semmi mást nem....


melyik ciklussalkellene dolgoznom? for, while vagy do???

mit kéne írnom, hogy el tudjam dönteni, hogy egyeznek-e a random számaim,ha igen generáljon újjat, ha nem, akkor írja ki őket, én ezért gondolkoztam elágazásban....

2014. dec. 3. 23:21
 10/16 A kérdező kommentje:

itt mi a rákot akar a boolal?


int s1, s2, s3, s4, s5;

int l = 1;



do

{

Random vsz = new Random();

s1 = vsz.Next(1, 46);

}

while (s1 = s1);

{

do

{

Random vsz = new Random();

s2 = vsz.Next(1, 46);

}

while (s1 = s2);

{

Random vsz = new Random();

s1 = vsz.Next(1, 46);

}

Console.WriteLine("Számok: {0}, {1}", s1, s2);



Warning 1 Assignment made to same variable; did you mean to assign something else? C:\Users\á\AppData\Local\Temporary Projects\proba\Program.cs 21 20 proba

Error 2 Cannot implicitly convert type 'int' to 'bool' C:\Users\á\AppData\Local\Temporary Projects\proba\Program.cs 21 20 proba

Error 3 Cannot implicitly convert type 'int' to 'bool' C:\Users\á\AppData\Local\Temporary Projects\proba\Program.cs 28 24 proba

2014. dec. 3. 23:28
1 2

További 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!