# include /* Bibliothek ArduinoSort Download: https://github.com/emilv/ArduinoSort/releases Installieren: Sketch -> Bibliothek einbinden -> Zip-Bibliothek hinzufügen */ // Array für die gezogenen Zahlen int LottoZahl[6]; // Array für die angekreuzten Zahlen int SpielZahl[6]; // Minimum/Maximum der Zufallszahlen int Minimum = 1; int Maximum = 49; // Anzahl der zu ziehenden Zahlen int Anzahl = 6; void setup() { Serial.begin(9600); // Zufallsgenerator starten randomSeed(0); Serial.println("z = N\u00e4chste Ziehung"); } void loop() { String GespielteZahlen = ""; String GezogeneZahlen = ""; String AnzahlTreffer = ""; String Eingabe = ""; int Treffer = 0; // auf serielle Eingabe warten while (Serial.available() > 0) { // solange lesen, bis return \n = return eingegeben wurde Eingabe = Serial.readStringUntil("\n"); // das letzte Zeichen ist return = \n → soll entfernt werden Eingabe = Eingabe.substring(0, Eingabe.length() - 1); } // wenn "z" eingegeben wurde if (Eingabe == "z") { // Ziehung der "angekreuzten" Zahlen Ziehung(); /* Array Sortieren mit ArduinoSort sortArray(NameArray, AnzahlElemente) sortArrayReverse(NameArray, AnzahlElemente) */ sortArray(LottoZahl, 6); // String GespielteZahlen aus den Elementen des Arrays LottoZahl // zusammensetzen for (int i = 0; i < Anzahl; i++) { GespielteZahlen = GespielteZahlen + LottoZahl[i] + " "; SpielZahl[i] = LottoZahl[i]; } // Ziehung der Lottozahlen Ziehung(); sortArray(LottoZahl, 6); // Vergleichen der Elemente der Arrays SpielZahl und LottoZahl for (int i = 0; i < Anzahl; i++) { for (int ii = 0; ii < Anzahl; ii++) { // Übereinstimmung gefunden -> Treffer um 1 erhöhen // String für übereinstimmende Zahlen erzeugen if (SpielZahl[i] == LottoZahl[ii]) { AnzahlTreffer = AnzahlTreffer + SpielZahl[i] + " "; Treffer ++; } } } // String GezogeneZahlen aus den Elementen des Arrays LottoZahl // zusammensetzen for (int i = 0; i < Anzahl; i++) { GezogeneZahlen = GezogeneZahlen + LottoZahl[i] + " "; } // Anzeige Serieller Monitor Serial.println("Gespielte Zahlen"); Serial.println("-----------------------------"); Serial.println(GespielteZahlen); Serial.println("-----------------------------"); // Anzeige der Zahlen Serieller Monitor Serial.println("Gezogene Zahlen"); Serial.println("-----------------------------"); Serial.println(GezogeneZahlen); Serial.println("-----------------------------"); if (Treffer == 0) Serial.println("keine Treffer!"); else Serial.println("Treffer: " + AnzahlTreffer + ""); Serial.println("-----------------------------"); } } int Ziehung() { for (int i = 0; i < Anzahl; i++) { /* die Lottozahl gilt solange als bereits gezogen bis in der for-Schleife nachgewiesen wird, dass sie neu ist BereitsGezogen den Wert false hat */ bool BereitsGezogen = true; while (BereitsGezogen) { // Zahl ziehen LottoZahl[i] = random(Minimum, Maximum); BereitsGezogen = false; /* Zufallszahl mit den bereits gezogenen Zahlen vergleichen i wird in der ersten for-Schleife hochgezählt alle bisherigen Zahlen (ii) werden mit den bisher gezogenen verglichen (ii < i) ist sie identisch, erhält BereitsGezogen den Wert true es wird erneut eine Zufallszahl bestimmt wenn die Zahl neu ist, (BereitsGezogen hat noch den Wert false) wird die while-Schleife verlassen und die nächste Zahl gezogen */ for (int ii = 0; ii < i; ii++) { if (LottoZahl[i] == LottoZahl[ii]) BereitsGezogen = true; } } } return LottoZahl[Anzahl]; }