C# Lotto HILFE :(?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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

Woher ich das weiß:eigene Erfahrung
hufsenpai 
Fragesteller
 19.12.2018, 16:08

Perfekt! Danke :)

0
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?

hufsenpai 
Fragesteller
 18.12.2018, 13:24

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

0
hufsenpai 
Fragesteller
 18.12.2018, 13:25

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();

                     

                  }

                }

              }

            }

          }

        }

      }

0
Sp4ghett1C0de  18.12.2018, 13:31
@hufsenpai

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.

0
hufsenpai 
Fragesteller
 18.12.2018, 13:37
@Sp4ghett1C0de

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

0

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.