Uncle Den's Uncle Den's

Jeu de réflexe multijoueurs


Dés que la Led rouge s'allume, il faut appuyer le plus rapidement possible surle bouton poussoir, 5 fois de suite. A chaque fois ton temps de réaction est mesuré, et est de l'ordre de 200ms. Ton score est le cumul de ces temps intermédiaires, et devrait avoisiner les 1000ms, c'est-à-dire 1s.
A la fin de chaque partie, la Led jaune clignote et attend que tu redémarre le jeu enappuyant une fois sur le bouton poussoir.

Qu va être le meilleur, le jeune enfant, l'ado, l'adulte ou le vieillard?

Ce jeu peut facilement être réalisé avec Arduino. Voici le montage, et le code

Arduino montage jeu de réflexe multijoueurs
Matériel:
1 led Rouge
1 led jaune
2 résistances 1kOhm
1 résistance 10kOhm
1 capacité 100nF (qui évite le phénomène de "rebond")
1 bouton poussoir



int led = 13;                                             // emplacement de la led Rouge
int mitemps = 11;                                     // emplacement de la led Jaune
int inter=12;                                            // emplacement du bouton poussoir
int buttonState = 0;                                 // etat du bouton poussoir
long randNumber;                                   // generation d'un nombre aléatoire sui determine à quel moment aléatoire va s'allumer la led rouge
int clign=50;                                             // temps de clignotement de la led jaune
unsigned long temps;                              // Les trois variables suivantes servent à mesurer le temps
unsigned long duree;                              // temps, le temps initial à l'allumage de le led rouge
unsigned long somme;

void setup() {    
  Serial.begin(9600);                                // on fait une sortie ecran sur le PC
  pinMode(led, OUTPUT);
  pinMode(mitemps, OUTPUT);
  pinMode(inter, INPUT);
  randomSeed(analogRead(0));   
}

void loop() {
  somme=0;
  buttonState = HIGH;
  while (buttonState == HIGH){                 // Le WHILE permet de faire clignoter la led jaune et est en attente du joueur qui doit appuyer sur le bouton poussoir
    buttonState = digitalRead(inter);
    digitalWrite(mitemps, HIGH); 
    delay(clign);
    buttonState = digitalRead(inter);
    digitalWrite(mitemps, LOW); 
    delay(clign);
  }
  for (int i=0; i < 5; i++){                            // Début de la boucle des 5 tests successifs
    digitalWrite(led, LOW);
    delay(1500);                                        // délais de temporisation d'1.5 seconde
    randNumber = random(5000);             // + délais randomisé (<5s)
    delay(randNumber);
    buttonState = HIGH;
    temps = millis();
    Serial.print(i);
    digitalWrite(led, HIGH);                        // Allume le led Rouge
    while (buttonState == HIGH){               // Tant que le bouton poussoir n'est pas appuyé, alors fait cette boucle
      buttonState = digitalRead(inter);       // Lit l'état du bouton poussoir
      if (buttonState == LOW) {    
        digitalWrite(led, LOW);                    // si appuyé, alors éteint le led rouge
      }
    }
    Serial.print("  - Temps de réaction :  ");
    duree=millis()-temps;                           // Estime la durée de réaction...
    somme=somme+duree;
    Serial.print(duree);
    Serial.print("/");
    Serial.println(somme);                           //... et l'affiche
  }                                                              // fin de la boucle FOR
  Serial.print("Ton Score : ");
  Serial.println(somme);
  Serial.println("----------------------------");  // Affiche le score (le cumul des durée de reactions intermediaires)
  delay(2000);                                           // Temporise 2s avant de relancer le jeu
}


Voici l'affichage obtenu à l'écran après 2 tests (corriger l'encodage du "e" accentué en retirant  l'accent dans le code)
Affichage arduino jeu de réflexe



Voir mes Aquarelles - Mon site sur les aquarelles

Blog sur mes aquarelles