C# Lotto WPF probleem met random getallen

Status
Niet open voor verdere reacties.

rambomambo

Gebruiker
Lid geworden
9 dec 2012
Berichten
163
Momenteel werkt alles perfect, het enige probleem is dat ik dus 4 random getallen op vraag.
Maar als ze nu bv 2 x 40 aanmaken heb ik dus 2 x 40 staan wat dus niet kan
ik wil dus dat er 4 random getallen worden aangemaakt zonder dat er 4van de getallen ooit gelijk aan elkaar kunnen zijn
ik heb momenteel geen lus gebruikt of is het beter met een lus


private void btnTrekking_Click(object sender, RoutedEventArgs e)
{
int getal1;
int getal2;
int getal3;
int getal4;



Random trekking = new Random();

getal1 = trekking.Next(1, 42);
getal2 = trekking.Next(1, 42);
getal3 = trekking.Next(1, 42);
getal4 = trekking.Next(1, 42);
tb1.Text = getal1.ToString();
tb2.Text = getal2.ToString();
tb3.Text = getal3.ToString();
tb4.Text = getal4.ToString();

}
}
}
 
Je zou alle getrokken getallen in een list kunnen bijhouden en dan net zo lang een getal blijven trekken tot je een getal hebt dat nog niet in de lijst staat. Iets als:

[cpp]
List<int> getrokkenGetallen = new List<int>();
//...
int getrokkenGetal;
while (true) {
getrokkenGetal = trekking.Next(1, 42);
if (!getrokkenGetallen.Contains(getrokkenGetal)) {
getrokkenGetallen.Add(getrokkenGetal);
break;
}
}
[/cpp]

Al zou je ook gewoon in het begin een lijst met alle getallen kunnen aanmaken en schudden. Dan hoef je alleen een int bij te houden en te verhogen.
 
ja bedankt maar hoe kan ik nu die 4random getallen opvragen in mijn labels
 
Laatst bewerkt door een moderator:
Wellicht door het stukje dat een random getal trekt in een method te stoppen en die method aan te roepen? Er zit overigens wel nog een kleine bug in mijn voorbeeld: hij blijft getallen trekken als alle getallen in je range al getrokken zijn. Je moet "while(true)" vervangen door "while(getrokkenGetallen.Size() < MAX_WAARDE)".
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan