Led Duel
Code:
// Boutons Joueurs | |
int buttonApin = 8; | |
int buttonBpin = 9; | |
int led = 2; // initialisation de la première LED à allumer | |
int nbLoop = 0; // N° de la loop actuelle | |
int stopAtLoop = 0; // N° de la loop de fin | |
int stopGame = 0; // Fin du jeu | |
void setup() { | |
// Initialisation des LED | |
pinMode(2, OUTPUT); | |
pinMode(3, OUTPUT); | |
pinMode(4, OUTPUT); | |
pinMode(5, OUTPUT); | |
pinMode(6, OUTPUT); | |
// Initialisation des boutons | |
pinMode(buttonApin, INPUT_PULLUP); | |
pinMode(buttonBpin, INPUT_PULLUP); | |
// Randomiser le numéro de la loop de fin | |
randomSeed(analogRead(0)); | |
stopAtLoop = random(20, 50); | |
// Initialiser l'output sur le moniteur série | |
Serial.begin(9600); | |
} | |
void loop() { | |
// Jeu terminé, appuyer sur reset pour redémarrer! | |
if( stopGame == 1) | |
return; | |
// Dernière loop atteinte | |
if(nbLoop == stopAtLoop) { | |
// Eteindre la LED précédente | |
if(led == 2) | |
digitalWrite(6, LOW); | |
else | |
digitalWrite(led - 1, LOW); | |
// Attendre le vainqueur | |
if(digitalRead(buttonApin) == LOW) { | |
Serial.println("Joueur 1 a gagné !"); | |
stopGame = 1; | |
return; | |
} | |
if(digitalRead(buttonBpin) == LOW) { | |
Serial.println("Joueur 2 a gagné !"); | |
stopGame = 1; | |
return; | |
} | |
} else { // Dérouler les leds | |
// Eteindre la LED précédente | |
if(led == 2) | |
digitalWrite(6, LOW); | |
else | |
digitalWrite(led - 1, LOW); | |
// Allumer la led | |
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) | |
// préparer prochaine led | |
led++; | |
if(led == 7) | |
led = 2; | |
// Incrémenter compteur de loop | |
nbLoop++; | |
// delay 100 ms | |
for(int j=0; j< 10; j++) { | |
// Arrêter le jeu si qq appuie sur un bouton | |
if(digitalRead(buttonApin) == LOW) { | |
Serial.println("Joueur 1 a perdu"); | |
stopGame = 1; | |
return; | |
} else if(digitalRead(buttonBpin) == LOW) { | |
Serial.println("Joueur 2 a perdu"); | |
stopGame = 1; | |
return; | |
} | |
delay(10); | |
} | |
} | |
} |
Les montages ont été faits en utilisant le Starter Kit du Débutant d'Elegoo, acheté sur Amazon.
Cet article a été mis à jour le 18/02/2018