ButtonHero (3 / 4 stap)

Stap 3: De Code

Bijgevoegd is de Arduino-codebestand.

Code:
int ledDelay; LED timeout
int score; punten die je krijgt
byte currentLed; degene die nu is verlicht
Boolean begonnen; Speel je het spel?
Boole needNewLed = waar; We moeten een nieuwe LED
byte gezondheid = 6; gezondheid, overige
Boole updateScreen = waar; hebben we nodig voor het bijwerken van het scherm?
Boole lostHealth = false; hebben we nodig om af te trekken van de gezondheid?

int val2, val3, val4, val5;                        variabele voor het lezen van de Pinstatus
int buttonState2, buttonState3, buttonState4, buttonState5;                variabele te houden van de laatste status van de knop

VOID Setup {}
modus de pinnen
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(4,INPUT);
pinMode(5,INPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
voor het tonen van de score
Serial.begin(9600);
Serial.println("+---------------------------------------------------------------+");
Serial.println("| Welkom bij ButtonHero!                                         |");
Serial.println("| Als een lampje oplicht, druk op de knop corrisponding.        |");
Serial.println("| Je verliest punten door te traag wordt of op de verkeerde knop te drukken. | ");
Serial.println("| Druk op een willekeurige knop om te beginnen... | ");
Serial.print("+---------------------------------------------------------------+");
}

void loop {}
//
Als (digitalRead (2) == HIGH || digitalRead (3) hoge == || digitalRead (4) hoge == || digitalRead(5)==HIGH) {}
begon = true; Start het spel als een willekeurige knop wordt ingedrukt
}
Als (begon == true) {}
Als (needNewLed == true) {//we nodig een andere LED
digitalWrite (currentLed, laag); zwenking vandoor naar de vergevorderd men
byte randomLed = random(9,13); Kies een willekeurige LED
while(currentLed == randomLed) {//make ervoor dat het niet hetzelfde als de vorige
randomLed = random(9,13);
}
currentLed = randomLed;
digitalWrite (currentLed, hoge); de nieuwe LED oplichten
delay(100); een beetje wachten
needNewLed = false;
}

val2 = digitalRead(2);      Lees input waarde en sla het in de val
val3 = digitalRead(3);      Lees input waarde en sla het in de val
val4 = digitalRead(4);      Lees input waarde en sla het in de val
val5 = digitalRead(5);      Lees input waarde en sla het in de val

Als (val2! = buttonState2 & & val2 == HIGH || val3! = buttonState3 & & val3 == HIGH || val4! = buttonState4 & & val4 == HIGH || val5! = buttonState5 & & val5 == HIGH) {/ / de status van de knop veranderd!
Als (currentLed == 9 & & digitalRead(5) == HIGH) {/ / raakte ze de rechterknop?
Score ++;
needNewLed = true;
ledDelay = 0;
updateScreen = true;
}
anders als (currentLed == 10 & & digitalRead(4) == HIGH) {/ / raakte ze de rechterknop?
Score ++;
needNewLed = true;
ledDelay = 0;
updateScreen = true;
}
anders als (currentLed == 11 & & digitalRead(3) == HIGH) {/ / raakte ze de rechterknop?
Score ++;
needNewLed = true;
ledDelay = 0;
updateScreen = true;
}
anders als (currentLed == 12 & & digitalRead(2) == HIGH) {/ / raakte ze de rechterknop?
Score ++;
needNewLed = true;
ledDelay = 0;
updateScreen = true;
}
anders als (digitalRead (2) == HIGH || digitalRead (3) hoge == || digitalRead (4) hoge == || digitalRead(5)==HIGH) {/ / raakte zij de verkeerde knop?
loseHealth();
lostHealth = true;
}
}
else {/ / zij iets niet pers
ledDelay ++;
delay(1);
}

buttonState2 = val2;                 de nieuwe staat in onze variabele opslaan
buttonState3 = val3;                 de nieuwe staat in onze variabele opslaan
buttonState4 = val4;                 de nieuwe staat in onze variabele opslaan
buttonState5 = val5;                 de nieuwe staat in onze variabele opslaan

de LED de drempel timeout?
Als (score < = 10) {}
if(ledDelay == 1000) {}
loseHealth();
lostHealth = true;
}
}
anders als (score < = 15) {}
if(ledDelay == 800) {}
loseHealth();
lostHealth = true;
}
}
anders als (score < = 20) {}
if(ledDelay == 600) {}
loseHealth();
lostHealth = true;
}
}
anders als (score < = 25) {}
if(ledDelay == 400) {}
loseHealth();
lostHealth = true;
}
}
anders als (score < = 30) {}
if(ledDelay == 200) {}
loseHealth();
lostHealth = true;
}
}
anders als (score > 30) {}
Als (ledDelay == (220-score)) {}
loseHealth();
lostHealth = true;
}
}

de weergave bijwerken
if(updateScreen==True) {}
Serial.println(' ');
Serial.println("+---------------------------------------------------------------+");
Serial.println("|                                                               |");
Serial.Print("| Score: ");
Serial.Print(Score);
if(Score<10) {}
Serial.println("                                                      |");
}
anders if(score<100) {}
Serial.println("                                                     |");
}
anders if(score<1000) {}
Serial.println("                                                    |");
}

if(Health==6) {}
gezondheid = 5;
}

if(Health==5) {}
Serial.println("| Leven: < 3 < 3 < 3 < 3 < 3 | ");
Serial.println("|                                                               |");
}
anders if(health==4) {}
Serial.println("| Leven: < 3 < 3 < 3 < 3 | ");
Serial.println("|                                                               |");
}
anders if(health==3) {}
Serial.println("| Lives: <3 <3 <3                                               |");
Serial.println("|                                                               |");
}
anders if(health==2) {}
Serial.println("| Lives: <3 <3                                                  |");
Serial.println("|                                                               |");
}
anders if(health==1) {}
Serial.println("| Lives: <3                                                     |");
Serial.println("|                                                               |");
}
anders if(health==0) {}
Serial.println("| Lives:                                                        |");
Serial.println("|                          Jij hebt verloren!                            |");
gezondheid = 6;
Score = 0;
}
Serial.print("+---------------------------------------------------------------+");
updateScreen = false;
}
}
lostHealth = false;
}

aftrekken van Eén gezondheid
ongeldig loseHealth() {}
if(lostHealth==false) {}
gezondheid--;
updateScreen = true;
needNewLed = true;
ledDelay = 0;
Als (gezondheid < = 0) {/ / deed zij verliest het spel?
begon = false;
updateScreen = true;
knipperen 3 keer
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(200);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
delay(200);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(200);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
delay(200);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(200);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
}
}
}

Gerelateerde Artikelen