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