Senshey

Reaktionszeitspiel

May 15th, 2020 (edited)
1,345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int spieler1 = 7;
  2. int spieler2 = 8;
  3. int spieler3 = 9;
  4. int spieler4 = 10;
  5.  
  6. int led1 = 3;
  7. int led2 = 4;
  8. int led3 = 5;
  9. int led4 = 6;
  10.  
  11.  
  12. //Variante Eins: Mit einem Array die Plätze besetzen:
  13. String platzierung[4];
  14. int platzzahl = 0;
  15. boolean tasterwert[4] = {false, false, false, false};
  16.  
  17. /* Variante Zwei: Jeweils eine eigene Variable:
  18. String platz1;
  19. String platz2;
  20. String platz3;
  21. String platz4;
  22. boolean tasterwert1 = false;
  23. boolean tasterwert2 = false;
  24. boolean tasterwert3 = false;
  25. boolean tasterwert4 = false;
  26. */
  27.  
  28.  
  29. void setup() {
  30.   pinMode(spieler1, INPUT);
  31.   pinMode(spieler2, INPUT);
  32.   pinMode(spieler3, INPUT);
  33.   pinMode(spieler4, INPUT);
  34.   pinMode(led1, OUTPUT);
  35.   pinMode(led2, OUTPUT);
  36.   pinMode(led3, OUTPUT);
  37.   pinMode(led4, OUTPUT);
  38. }
  39.  
  40. void loop() {
  41.   //Variante Eins:
  42.   while(!tasterwert[0] || !tasterwert[1] || !tasterwert[2] || !tasterwert[3]){ // Bedingung: Solange einer der Taster noch nicht gedrückt wurde
  43.    
  44.     if(digitalRead(spieler1) == HIGH && !tasterwert[0]){     //Bedingung: Wenn Taster gedrückt UND (&&) Vorher nicht gedrückt wurde
  45.       digitalWrite(led1, HIGH);  // LED anschalten
  46.       tasterwert[0] = true; // "Aufschreiben" das der Taster schon mal gedrückt wurde
  47.       platzFestlegen("Spieler 1"); // Ruft Methode auf, um zu speichern, als wievielter der Taster gedrückt wurde
  48.     }
  49.    
  50.     if(digitalRead(spieler2) == HIGH && !tasterwert[1]){  
  51.       digitalWrite(led2, HIGH);
  52.       tasterwert[1] = true;
  53.       platzFestlegen("Spieler 2");
  54.     }
  55.    
  56.     if(digitalRead(spieler3) == HIGH && !tasterwert[2]){  
  57.       digitalWrite(led3, HIGH);
  58.       tasterwert[2] = true;
  59.       platzFestlegen("Spieler 3");
  60.     }
  61.    
  62.     if(digitalRead(spieler4) == HIGH && !tasterwert[3]){  
  63.       digitalWrite(led4, HIGH);
  64.       tasterwert[3] = true;
  65.       platzFestlegen("Spieler 4");
  66.     }
  67.   }
  68.  
  69.   //Nach dem While das Ergebnis ausgeben
  70.   Serial.println("Erster war:" + platzierung[0]);
  71.   Serial.println("Zweiter war:" + platzierung[1]);
  72.   Serial.println("Dritter war:" + platzierung[2]);
  73.   Serial.println("Vierter war:" + platzierung[3]);
  74.   Serial.println("Bitte aufrücken! In 5 Sekunden werden die Taster wieder freigegeben");
  75.  
  76.   delay(5000); // 5000 Milisekunden warten (5Sek)
  77.   platzzahl = 0; // Platzierung zurücksetzen
  78.  
  79.   digitalWrite(led1, LOW); //Alle LEDs wieder ausschalten
  80.   digitalWrite(led2, LOW);
  81.   digitalWrite(led3, LOW);
  82.   digitalWrite(led4, LOW);
  83.  
  84.   tasterwert[0] = {false}; //Taster-Werte zurücksetzen
  85.   tasterwert[1] = {false};
  86.   tasterwert[2] = {false};
  87.   tasterwert[3] = {false};
  88.  
  89.   //--------------------------------------------------------------------
  90.   // Jetzt wiederholt sich das von oben, nur mit einem Spieler weniger, Beachten: Es werden jetzt Taster 1-3 benutzt, egal wer zuvor ausgeschieden ist
  91.   while(!tasterwert[0] || !tasterwert[1] || !tasterwert[2]){ // Bedingung: Solange einer der Taster noch nicht gedrückt wurde
  92.    
  93.     if(digitalRead(spieler1) == HIGH && !tasterwert[0]){
  94.       digitalWrite(led1, HIGH);
  95.       tasterwert[0] = true;
  96.       platzFestlegen("Spieler 1");
  97.     }
  98.    
  99.     if(digitalRead(spieler2) == HIGH && !tasterwert[1]){  
  100.       digitalWrite(led2, HIGH);
  101.       tasterwert[1] = true;
  102.       platzFestlegen("Spieler 2");
  103.     }
  104.    
  105.     if(digitalRead(spieler3) == HIGH && !tasterwert[2]){  
  106.       digitalWrite(led3, HIGH);
  107.       tasterwert[2] = true;
  108.       platzFestlegen("Spieler 3");
  109.     }
  110.   }
  111.  
  112.   // Ergebnisse ausgeben
  113.   Serial.println("Erster war:" + platzierung[0]);
  114.   Serial.println("Zweiter war:" + platzierung[1]);
  115.   Serial.println("Dritter war:" + platzierung[2]);
  116.   Serial.println("Bitte aufrücken! In 5 Sekunden werden die Taster wieder freigegeben");
  117.  
  118.   delay(5000); // 5000 Milisekunden warten (5Sek)
  119.   platzzahl = 0; // Platzierung zurücksetzen
  120.  
  121.   digitalWrite(led1, LOW); //Alle LEDs wieder ausschalten
  122.   digitalWrite(led2, LOW);
  123.   digitalWrite(led3, LOW);
  124.  
  125.   tasterwert[0] = {false}; //Taster-Werte zurücksetzen
  126.   tasterwert[1] = {false};
  127.   tasterwert[2] = {false};
  128.  
  129.   //---------------------------------------------------------------------------------------------
  130.   // Jetzt wiederholt es sich wieder, danach bleibt nur noch ein Spieler übrig
  131.   while(!tasterwert[0] || !tasterwert[1]){ // Bedingung: Solange einer der Taster noch nicht gedrückt wurde
  132.    
  133.     if(digitalRead(spieler1) == HIGH && !tasterwert[0]){
  134.       digitalWrite(led1, HIGH);
  135.       tasterwert[0] = true;
  136.       platzFestlegen("Spieler 1");
  137.     }
  138.    
  139.     if(digitalRead(spieler2) == HIGH && !tasterwert[1]){  
  140.       digitalWrite(led2, HIGH);
  141.       tasterwert[1] = true;
  142.       platzFestlegen("Spieler 2");
  143.     }
  144.   }
  145.  
  146.   // Ergebnisse ausgeben
  147.   Serial.println("Gratulation an " + platzierung[0] + ". Du hast gewonnen");
  148.  
  149.   delay(10000); // 10000 Milisekunden warten (10Sek)
  150.   platzzahl = 0;
  151.  
  152.   digitalWrite(led1, LOW);
  153.   digitalWrite(led2, LOW);
  154.  
  155.   tasterwert[0] = {false};
  156.   tasterwert[1] = {false};
  157.  
  158.   // Jetzt startet das Programm wieder oben und es kann von vorne losgehen, diesmal wurden 10 Sekunden gewartet
  159. }
  160.  
  161.  
  162.  
  163. void platzFestlegen(String taster){    
  164.   platzierung[platzzahl] = taster;
  165.   platzzahl++;
  166.  }
Add Comment
Please, Sign In to add comment