void loop() { // auf serielle Eingabe warten while (Serial.available() > 0) { // Eingabe im Seriellen Monitor lesen String Zeichen = Serial.readStringUntil('\n'); { // Spielpaarung ziehen if (Zeichen == "s") { // 2 unterschiedliche Mannschaften bestimmen for (int i = 0; i < 2; i ++) { /* die Mannschaft gilt solange als bereits gezogen bis in der for-Schleife nachgewiesen wird, dass sie neu ist und BereitsGezogen den Wert false hat */ bool BereitsGezogen = true; while (BereitsGezogen) { // Zahl ziehen ZufallsZahlen[i] = random(0, AnzahlMannschaften); 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 Zahlen (außer der gerade 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 (ZufallsZahlen[i] == ZufallsZahlen[ii]) BereitsGezogen = true; } } } /* nach Aufruf der Funktion steht ein Array mit 2 Elementen zur Verfügung es beinhaltet die zufällig ausgewählten Mannschaften: ZufallsZahlen[0] und ZufallsZahlen[1] hiermit wird die Paarung des Spiels bestimmt */ Serial.print(Mannschaften[ZufallsZahlen[0]]); Serial.print(" - " + Mannschaften[ZufallsZahlen[1]]); // Anzahl der Tore bestimmen AnzahlTore[ZufallsZahlen[0]] = random(Minimum, Maximum); AnzahlTore[ZufallsZahlen[1]] = random(Minimum, Maximum); // Sieger ermitteln: Sieger erhält 3 Punkte // Sieger 1. Mannschaft if (AnzahlTore[ZufallsZahlen[0]] > AnzahlTore[ZufallsZahlen[1]]) { AnzahlPunkte[ZufallsZahlen[0]] = AnzahlPunkte[ZufallsZahlen[0]] + 3; } // Sieger 2. Mannschaft else if (AnzahlTore[ZufallsZahlen[0]] < AnzahlTore[ZufallsZahlen[1]]) { AnzahlPunkte[ZufallsZahlen[1]] = AnzahlPunkte[ZufallsZahlen[1]] + 3; } // unentschieden: beide Mannschaften 1 Punkt else if (AnzahlTore[ZufallsZahlen[0]] == AnzahlTore[ZufallsZahlen[1]]) { AnzahlPunkte[ZufallsZahlen[0]] = AnzahlPunkte[ZufallsZahlen[0]] + 1; AnzahlPunkte[ZufallsZahlen[1]] = AnzahlPunkte[ZufallsZahlen[1]] + 1; } // Ergebnis anzeigen Serial.print(" "); Serial.print(AnzahlTore[ZufallsZahlen[0]]); Serial.print(" : "); Serial.println(AnzahlTore[ZufallsZahlen[1]]); // Punkte anzeigen Serial.print(Mannschaften[ZufallsZahlen[0]]); Serial.println(": " + String(AnzahlPunkte[ZufallsZahlen[0]]) + " Punkt(e)"); Serial.print(Mannschaften[ZufallsZahlen[1]]); Serial.println(": " + String(AnzahlPunkte[ZufallsZahlen[1]]) + " Punkt(e)"); } // Gesamtpunkte anzeigen if (Zeichen == "t") { // Mannschaften nach Anzahl der Punkte sortieren ZahlenSortieren(); Serial.println("-------------------------------------------"); // Mannschaften in der Reihenfolge der Punkte anzeigen // die Mannschaft mit den meisten Punkte zuerst for (int i = AnzahlMannschaften - 1; i >= 0; i--) { Serial.print(Mannschaften[i]); Serial.println(": " + String(AnzahlPunkte[i]) + " Punkt(e)"); } Serial.println("-------------------------------------------"); } } } }