C# Lotto HILFE :(?
Hi!
Ich bin gerade dabei ein Lotto Programm in C# zu schreiben und habe ein kleines Problem :/
Wie kann ich es schaffen, dass man selber eine Zahl eingeben kann und dann das Programm die Anzahl generiert?
Im moment ist es so:
6 aus 49 ergibt 1 2 3 4 5 6
und wenn jetzt jemand zum beispiel 3 aus 20 eintippt soll das kommen 1 2 3 wie bekomm ich das hin?
3 Antworten
Kenne mich mit Lotto jetzt nicht aus, allerdings deinen Anforderungen nach zu urteilen möchtest du also einen "Anzahl"-Wert, einen "Maximum"-Wert angeben, und anschließend sollen zufällige Zahlen generiert werden (die zwischen 1 und dem "Maximum"-Wert liegen), und die Anzahl zu generierenden Zahlen ergibt sich aus "Anzahl"?
Außerdem darf jede Ziffer nur einmal ausgegeben werden.
int amount = 6; //Nach Belieben anpassen
int maximum = 49; // Nach Belieben anpassen
Random rnd = new Random();
int[] luckyNumbers = new int[amount];
for (int i = 0; i < amount; i++)
{
int newLucky = rnd.Next(1, maximum + 1);
while (luckyNumbers.Contains(newLucky))
{
newLucky = rnd.Next(1, maximum + 1);
}
luckyNumbers[i] = newLucky;
}
MessageBox.Show(String.Join(",", luckyNumbers));
Natürlich ist jetzt hier nicht abgefangen, wenn du als "amount" oder "maximum" extra Zahlen eingibst, die einen Fehler provizieren würden.
MFG xGlumi
6 aus 49 ergibt 1 2 3 4 5 6
Wenn du das doch schon hingebracht hast sollte das umformen nicht so schwer sein.
Also ich würde einfach zwei Textboxen nehmen. Eine für die Anzahl zu tippender und eine für den Bereich.
Läuft das Programm überhaupt schon mit 6 aus 49 richtig?
Ich habe das mit 6 for Schleifen gemacht und wenn ich da nun 3 nehme bringt er mir auch nur 3 Zahlen aber wenn ein Benutzer jetzt eine 4 eingibt würden dann ja immernoch 3 rauskommen
uff achso das läuft mit der Konsole. Aber du willst dir die Möglichen Kombinationen anzeigen lassen. Also nicht so das man selbst raten kann.
Okey sorry, da hab ich mich falsch ausgedrückt..
Also.. das Programm zeigt einmal alle möglichen Kombinationen für 6 aus 49 an und dann soll man aber auch wenn man es so wählt selber bestimmen können also z.B dann 3 aus 48 und davon dann eben die 3 mögliche Kombinationen
ok am besten du liest dich ein bisschen durch verschiedene Foren:
https://www.mikrocontroller.net/topic/359497
https://www.computerbase.de/forum/threads/c-permutationen-kombinationen.195364/
Vielleicht findest du dort deine Antwort.
Bitte versuche, dein Problem besser und detaillierter zu erklären, indem du aufzeigst, was du erreichen möchtest. Zusätzlich wäre es hilfreich, wenn du erklärst, was denn mit 6 aus 49 bzw. 3 aus 20 gemeint ist. Nicht jeder spielt Lotto´und es wäre doch schade, wenn genau die Person dir weiterhelfen könnte, die nicht Lotto spielt.
(...) dass man selber eine Zahl eingeben kann und dann das Programm die Anzahl generiert?
Der Benutzer soll also eine Zahl eingeben, aber was für eine Anzahl soll denn nun generiert werden?
Soweit ich das bis jetzt verstanden habe, möchtest du alle Zahlenkombinationen generieren, die damit möglich wären? Warum? Was genau ist dein Ziel? Solche Detaills sind sehr wichtig, um deine Frage möglichst gut beantworten zu können.
for (a1 = 1; a1 < 45; a1++)
{
for (a2 = a1 + 1; a2 < 46; a2++)
{
for (a3 = a2 + 1; a3 < 47; a3++)
{
for (a4 = a3 + 1; a4 < 48; a4++)
{
for (a5 = a4 + 1; a5 < 49; a5++)
{
for (a6 = a5 + 1; a6 < 50; a6++)
{
//Count++ = Der Counter wird hier immer um 1 vergrößert, somit sieht man wie viel Kombinationen bereits erstellt wurden
count++;
string count1 = count.ToString("N0");
Console.WriteLine(a1 + " " + a2 + " " + a3 + " " + a4 + " " + a5 + " " + a6 + " -> " + count1);
if (count == 13983816)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine($"Alle möglichen Kombinationen wurden aufgelistet! ({count1} Kombinationen)");
Console.ReadKey();
}
}
}
}
}
}
}