// Anzahl der Schritte Minimum/Maximum int Minimum = 1; int Maximum = 4; // Schritte bis zum Ziel int Ziel = 10; int BisherigeSchritte = 0; int Schritte = 0; long Start; void setup() { Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) {;} // Info über das Spiel Serial.println("Schneckenrennen"); Serial.println("-------------------------------------------"); // \n = neue Zeile Serial.println("Ziel: " + String(Ziel)); Serial.println("-------------------------------------------"); // Zufallsgenerator starten randomSeed(analogRead(0)); // Zeitmessung starten Start = millis(); } void loop() { // auf serielle Eingabe warten while (Serial.available() > 0) { // Eingabe im Seriellen Monitor lesen char Zeichen = Serial.read(); // Enter/Senden gedrückt if (Zeichen == '\n') { // Anzahl der Schritte zufällig ermitteln Schritte = ZufallsZahl(Minimum, Maximum); // Summe der Schritte berechnen BisherigeSchritte = BisherigeSchritte + Schritte; // Aufruf der Methode Bildschirmausgabe Bildschirmausgabe(BisherigeSchritte); if (BisherigeSchritte > Ziel) { Serial.println("Ziel erreicht!"); // Zeit berechnen int Sekunden; long VerstricheneZeit = millis() - Start; Sekunden = int(VerstricheneZeit / 1000); Serial.println("Zeit: " + String(Sekunden) + " Sekunden"); // Variablen zurücksetzen BisherigeSchritte = 0; Start = millis(); } } } } int ZufallsZahl(int Minimum, int Maximum) { int Zahl = random(Minimum, Maximum); return Zahl; } void Bildschirmausgabe(int AnzahlSchritte) { // entsprechend der Anzahl der Schritte Zeichen anzeigen for (int i = 0; i < AnzahlSchritte; i ++) { Serial.print("> "); } Serial.println("(" + String(AnzahlSchritte) + ")"); }