
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



