Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int spieler1 = 7;
- int spieler2 = 8;
- int spieler3 = 9;
- int spieler4 = 10;
- int led1 = 3;
- int led2 = 4;
- int led3 = 5;
- int led4 = 6;
- //Variante Eins: Mit einem Array die Plätze besetzen:
- String platzierung[4];
- int platzzahl = 0;
- boolean tasterwert[4] = {false, false, false, false};
- /* Variante Zwei: Jeweils eine eigene Variable:
- String platz1;
- String platz2;
- String platz3;
- String platz4;
- boolean tasterwert1 = false;
- boolean tasterwert2 = false;
- boolean tasterwert3 = false;
- boolean tasterwert4 = false;
- */
- void setup() {
- pinMode(spieler1, INPUT);
- pinMode(spieler2, INPUT);
- pinMode(spieler3, INPUT);
- pinMode(spieler4, INPUT);
- pinMode(led1, OUTPUT);
- pinMode(led2, OUTPUT);
- pinMode(led3, OUTPUT);
- pinMode(led4, OUTPUT);
- }
- void loop() {
- //Variante Eins:
- while(!tasterwert[0] || !tasterwert[1] || !tasterwert[2] || !tasterwert[3]){ // Bedingung: Solange einer der Taster noch nicht gedrückt wurde
- if(digitalRead(spieler1) == HIGH && !tasterwert[0]){ //Bedingung: Wenn Taster gedrückt UND (&&) Vorher nicht gedrückt wurde
- digitalWrite(led1, HIGH); // LED anschalten
- tasterwert[0] = true; // "Aufschreiben" das der Taster schon mal gedrückt wurde
- platzFestlegen("Spieler 1"); // Ruft Methode auf, um zu speichern, als wievielter der Taster gedrückt wurde
- }
- if(digitalRead(spieler2) == HIGH && !tasterwert[1]){
- digitalWrite(led2, HIGH);
- tasterwert[1] = true;
- platzFestlegen("Spieler 2");
- }
- if(digitalRead(spieler3) == HIGH && !tasterwert[2]){
- digitalWrite(led3, HIGH);
- tasterwert[2] = true;
- platzFestlegen("Spieler 3");
- }
- if(digitalRead(spieler4) == HIGH && !tasterwert[3]){
- digitalWrite(led4, HIGH);
- tasterwert[3] = true;
- platzFestlegen("Spieler 4");
- }
- }
- //Nach dem While das Ergebnis ausgeben
- Serial.println("Erster war:" + platzierung[0]);
- Serial.println("Zweiter war:" + platzierung[1]);
- Serial.println("Dritter war:" + platzierung[2]);
- Serial.println("Vierter war:" + platzierung[3]);
- Serial.println("Bitte aufrücken! In 5 Sekunden werden die Taster wieder freigegeben");
- delay(5000); // 5000 Milisekunden warten (5Sek)
- platzzahl = 0; // Platzierung zurücksetzen
- digitalWrite(led1, LOW); //Alle LEDs wieder ausschalten
- digitalWrite(led2, LOW);
- digitalWrite(led3, LOW);
- digitalWrite(led4, LOW);
- tasterwert[0] = {false}; //Taster-Werte zurücksetzen
- tasterwert[1] = {false};
- tasterwert[2] = {false};
- tasterwert[3] = {false};
- //--------------------------------------------------------------------
- // Jetzt wiederholt sich das von oben, nur mit einem Spieler weniger, Beachten: Es werden jetzt Taster 1-3 benutzt, egal wer zuvor ausgeschieden ist
- while(!tasterwert[0] || !tasterwert[1] || !tasterwert[2]){ // Bedingung: Solange einer der Taster noch nicht gedrückt wurde
- if(digitalRead(spieler1) == HIGH && !tasterwert[0]){
- digitalWrite(led1, HIGH);
- tasterwert[0] = true;
- platzFestlegen("Spieler 1");
- }
- if(digitalRead(spieler2) == HIGH && !tasterwert[1]){
- digitalWrite(led2, HIGH);
- tasterwert[1] = true;
- platzFestlegen("Spieler 2");
- }
- if(digitalRead(spieler3) == HIGH && !tasterwert[2]){
- digitalWrite(led3, HIGH);
- tasterwert[2] = true;
- platzFestlegen("Spieler 3");
- }
- }
- // Ergebnisse ausgeben
- Serial.println("Erster war:" + platzierung[0]);
- Serial.println("Zweiter war:" + platzierung[1]);
- Serial.println("Dritter war:" + platzierung[2]);
- Serial.println("Bitte aufrücken! In 5 Sekunden werden die Taster wieder freigegeben");
- delay(5000); // 5000 Milisekunden warten (5Sek)
- platzzahl = 0; // Platzierung zurücksetzen
- digitalWrite(led1, LOW); //Alle LEDs wieder ausschalten
- digitalWrite(led2, LOW);
- digitalWrite(led3, LOW);
- tasterwert[0] = {false}; //Taster-Werte zurücksetzen
- tasterwert[1] = {false};
- tasterwert[2] = {false};
- //---------------------------------------------------------------------------------------------
- // Jetzt wiederholt es sich wieder, danach bleibt nur noch ein Spieler übrig
- while(!tasterwert[0] || !tasterwert[1]){ // Bedingung: Solange einer der Taster noch nicht gedrückt wurde
- if(digitalRead(spieler1) == HIGH && !tasterwert[0]){
- digitalWrite(led1, HIGH);
- tasterwert[0] = true;
- platzFestlegen("Spieler 1");
- }
- if(digitalRead(spieler2) == HIGH && !tasterwert[1]){
- digitalWrite(led2, HIGH);
- tasterwert[1] = true;
- platzFestlegen("Spieler 2");
- }
- }
- // Ergebnisse ausgeben
- Serial.println("Gratulation an " + platzierung[0] + ". Du hast gewonnen");
- delay(10000); // 10000 Milisekunden warten (10Sek)
- platzzahl = 0;
- digitalWrite(led1, LOW);
- digitalWrite(led2, LOW);
- tasterwert[0] = {false};
- tasterwert[1] = {false};
- // Jetzt startet das Programm wieder oben und es kann von vorne losgehen, diesmal wurden 10 Sekunden gewartet
- }
- void platzFestlegen(String taster){
- platzierung[platzzahl] = taster;
- platzzahl++;
- }
Add Comment
Please, Sign In to add comment