Lotto, diesmal mit Add, Contains und Sort



  • hallihallo,

    ich habe mit Hilfe von Arrays Lottozahlen gezogen und soll dieses nun vereinfachen mit Klassen, was ich aber noch nie gemacht habe.
    Mit Arrays sieht das Programm so aus:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Arrays
    {
        class Program
        {
            static void Main(string[] args)
            {
                int AnzahlZahlen = 6;
                int AnzahlKugeln = 49;
    
                int[] lotto;
                lotto = new int[AnzahlZahlen];
    
                Random rnd = new Random();
    
                //Generator für die Lottozahlen
                for (int i = 0; i < lotto.Length; i++)
                {
                    bool doppelt = false;
                    int zufallszahl = rnd.Next(1, AnzahlKugeln + 1);
    
                    for (int a = 0; a < lotto.Length; a++)
                    {
                        if (lotto[a] == zufallszahl)
                            doppelt = true;
                    }
    
                    if (doppelt == true)
                    {
                        i--;
                    }
                    else
                    {
                        lotto[i] = zufallszahl;
                    }
                }
    
                //Sortierung der Lottozahlen
                int tausch = 0;   
    
                for (int i = 0; i < lotto.Length; i++)
                {
                    for (int j = 0; j < lotto.Length - 1; j++)
                    {
                        if (lotto[j] >= lotto[j + 1])
                        {
                            tausch = lotto[j];
                            lotto[j] = lotto[j + 1];
                            lotto[j + 1] = tausch;
                        }
                    }
                }
    
                //Ausgabe der Lottozahlen
                for (int i = 0; i < lotto.Length; i++)
                {
                    Console.WriteLine(lotto[i]);
                }
                Console.ReadLine();
            }
        }
    }
    

    Mit den Klassen sieht erstmal so aus:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Arrays
    {
        class Program
        {
            static void Main(string[] args)
            {
                int AnzahlZahlen = 6;
                int AnzahlKugeln = 49;
    
                List<int>lotto;
                lotto = new List<int>();
    
                //----------------------------------------------------------
                //Generator für die Lottozahlen
    
                lotto.Add(AnzahlZahlen);
    
                lotto.Contains(AnzahlZahlen);
    
                //------------------------------------------------------------
                //Sortierung der Lottozahlen
    
                lotto.Sort();
    
                //-------------------------------------------------------------
                //Ausgabe der Lottozahlen
    
                for (int i = 0; i < AnzahlKugeln ; i++)
                {
                    Console.WriteLine(lotto[i]);
                }
                Console.ReadLine();
            }
        }
    }
    

    Ich soll auf jeden Fall mit Add/Contains und Sort arbeiten und der Liste, weiß aber nicht, was ich genau machen muss.



  • Also theoretisch muss ja sowas rein:

    if (lotto.Contains(AnzahlZahlen))
                    {
                    lotto.Add(AnzahlZahlen);
                    }
    


  • Mit Negation (!) natürlich.



  • Wieso machst du ein neuen Thread auf?
    Und wie man es verwendet habe ich in dem anderen Thread doch im Pseudocode geschrieben.

    List<int>lotto;
    lotto = new List<int>();
    

    Fass das zusammen nach

    List<int>lotto = new List<int>();
    
    lotto.Add(AnzahlZahlen);
    

    Das fügt die Zahl 6 der Liste hinzu, dadurch hast du dann 1 Element in der Liste.

    lotto.Contains(AnzahlZahlen);
    

    Hier prüfst du ob die Zahl 6 in der Liste vorhanden ist.

    Was du suchst ist das hier:

    for (int i = 1; i <= AnzahlKugeln; ++i) 
        lotto.Add(i);
    
    lotto.Sort();
    

    Hier sortierst du nun die Zahlen (in deinem Fall die Zahl 6) der reihe nach, aber du möchtest ja ein Shuffle erreichen.

    Was du suchst ist das hier:

    lotto.Sort(g => Guid.NewGuid());
    

    Nun gibst du bei dir die Zahl 6 aus, aber was du ausgeben möchtest sind 6 Zahlen von den zufällig gewürfelten 49

    Was du suchst ist das hier:

    var numbers = lotto.GetRange(0, AnzahlZahlen);
    foreach (var number in numbers)
        Console.WriteLine(number);
    

    Es ist doch alles ganz einfach.
    1. Erstelle eine Liste mit allen verfügbaren Zahlen (lotto<int>)
    2. Schüttel die Liste einmal durch (lotto.Sort)
    3. Ziehe eine gewünschte anzahl (GetRange)
    4. Gib sie dann in der Konsole aus (Console.WriteLine(number))


Anmelden zum Antworten