Active Buzzer Duel
by zizou,
published on
Code:
| // Boutons Joueurs | |
| int buttonApin = 8; | |
| int buttonBpin = 9; | |
| int buzzer = 10;//the pin of the active buzzer | |
| 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 boutons | |
| pinMode(buttonApin, INPUT_PULLUP); | |
| pinMode(buttonBpin, INPUT_PULLUP); | |
| pinMode(buzzer,OUTPUT);//initialize the buzzer pin as an output | |
| // Randomiser le numéro de la loop de fin | |
| randomSeed(analogRead(0)); | |
| stopAtLoop = random(50, 100); | |
| // 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) { | |
| // 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 { // Lancer le buzzer | |
| digitalWrite(buzzer,HIGH); | |
| delay(1);//wait for 1ms | |
| digitalWrite(buzzer,LOW); | |
| // 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.