ENIB 2022 - groupe A : The Timer : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(photo de l'équipe)
 
(4 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
==photo de l'équipe==
+
==photo du projet==
[[Fichier:Debut_The_Timer.jpg|100px]]
+
 
 +
Fin de la 1ère journée :
 +
 
 +
[[Fichier:Debut_The_Timer.jpg|200px]]
 +
 
 +
Projet Final :
 +
 
 +
[[Fichier:Snapchat-622441686.jpg|200px]]
  
 
* Axel RAULT
 
* Axel RAULT
Ligne 9 : Ligne 16 :
 
==Que fait ce projet ? ==
 
==Que fait ce projet ? ==
  
 +
Lors du démarrage, il faut tourner l'interrupteur pour choisir le mode de jeu.
 +
Soit ça se joue tout seul ou en duo.
 +
Une fois le mode choisi, il faut appuyer sur un bouton pour lancer la partie.
  
V1 :
 
Cette première version, ce joueur à 1 joueur.
 
3 leds s'allument une par une pour donner le départ.
 
Une fois le départ donné, le joueur doit compter dans sa tête jusqu'à 10 secondes et appuyer sur le bouton lorsqu'il pense avoir atteint ce temps. S'il est a +/- 0.5 sec alors une led verte s'allume, il gagne. Et s'il est en dehors de cette plage de temps, alors une led rouge s'allume, il perd.
 
  
 +
Mode 1 :
 +
Ce premier mode est le mode solo, il n'y a qu'un seul joueur.
 +
le temps de référence s'affiche sur l'écran.
 +
3 leds s'allument une par une pour donner le départ.
 +
Une fois le départ donné, le joueur doit chronométrer dans sa tête le temps de référence. Lorsqu'il pense avoir atteint le temps, il doit appuyer sur le bouton poussoir pour valider son temps. Si le temps chronométré par le joueur est a plus ou moins 0.5 sec du temps de référence affiché en début de partie. Alors il a gagne la partie et la led verte s'allume. S'il est en dehors de cette plage de temps, une led rouge s'allume, le joueur a perdu.
  
V2 :
+
 
Cette nouvelle version se joue à 2 joueurs.
+
Mode 2 :
Le joueur A a un bouton de couleur verte et le joueur B a un bouton de couleur rouge.
+
le deuxième mode est le mode duo, il se joue à deux joueurs.
3 leds s'allument une par une pour donner le départ.
+
le temps de référence s'affiche sur l'écran.
Une fois le départ donné, les 2 joueurs doivent compter dans leur tête jusqu'à 10 secondes et appuyer sur le bouton lorsqu'il pense avoir atteint ce temps. Une led entre les eux joueur s'allume et donnera la couleur du joueur qui est le plus proche.
+
3 leds s'allument une par une pour donner le départ.  
 +
Une fois le départ donné, les joueurs doivent chronométrer dans leur tête le temps de référence. Lorsqu'ils pensent avoir atteint le temps, ils doivent chacun appuyer sur leur bouton poussoir pour valider leur temps. Le joueur le plus proche du temps de référence gagne la partie. L'écran affiche sur un fond de la couleur du bouton du gagnant le meilleur temps.
  
  
Ligne 27 : Ligne 39 :
 
* 1 écran LCD
 
* 1 écran LCD
 
* 1 carte arduino
 
* 1 carte arduino
* 5 leds
+
* 3 leds
 
* 2 bouton poussoir
 
* 2 bouton poussoir
 
* 1 cable USB - microUSB
 
* 1 cable USB - microUSB
Ligne 34 : Ligne 46 :
 
* 1 câble pour l'écran LCD
 
* 1 câble pour l'écran LCD
  
 +
==Code==
 +
<pre>/*
 +
    Hello World.ino
 +
    2013 Copyright (c) Seeed Technology Inc.  All right reserved.
 +
 +
    Author:Loovee
 +
    2013-9-18
 +
 +
    Grove - Serial LCD RGB Backlight demo.
 +
 +
    This library is free software; you can redistribute it and/or
 +
    modify it under the terms of the GNU Lesser General Public
 +
    License as published by the Free Software Foundation; either
 +
    version 2.1 of the License, or (at your option) any later version.
 +
 +
    This library is distributed in the hope that it will be useful,
 +
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 +
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 +
    Lesser General Public License for more details.
 +
 +
    You should have received a copy of the GNU Lesser General Public
 +
    License along with this library; if not, write to the Free Software
 +
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 +
*/
 +
 +
#include <Wire.h>
 +
#include "rgb_lcd.h"
 +
 +
rgb_lcd lcd;
 +
 +
const int colorR = 0;
 +
const int colorG = 0;
 +
const int colorB = 0;
 +
 +
int endd=0;
 +
 +
const int in_solo = 14;
 +
const int led_red=15,led_yellow=13,led_green=12;
 +
bool bpBLANC=digitalRead(0);
 +
bool bpBLEU=digitalRead(2);
 +
int randTime = 0;
 +
int rnd=0;
 +
 +
void setup() {
 +
    Serial.begin(9600);
 +
    // set up the LCD's number of columns and rows:
 +
    pinMode(in_solo,INPUT);
 +
    pinMode(led_red,OUTPUT);
 +
    pinMode(led_yellow,OUTPUT);
 +
    pinMode(led_green,OUTPUT);
 +
 +
   
 +
   
 +
   
 +
   
 +
    lcd.begin(16, 2);
 +
 +
    lcd.setRGB(colorR, colorG, colorB);
 +
   
 +
    lcd.clear();
 +
   
 +
}
 +
 +
void loop() {
 +
    //-----------------------------DEMARRAGE--------------------------------------
 +
    lcd.clear();
 +
    lcd.setCursor(0,0);
 +
    lcd.print("CHOISISSEZ UN");
 +
    lcd.setCursor(0, 1);
 +
    lcd.print("MODE DE JEU");
 +
    delay(2000);
 +
    while(1){
 +
    endd=0;
 +
    lcd.clear();
 +
    lcd.setCursor(0,0);
 +
    lcd.print("PUIS APPUYEZ SUR");
 +
    lcd.setCursor(0, 1);
 +
    lcd.print("UN BOUTON");
 +
    delay(100);
 +
    bpBLANC = digitalRead(0);
 +
    bpBLEU = digitalRead(2);
 +
    if(!bpBLANC or !bpBLEU)
 +
   
 +
    {
 +
      //-----------------------------MODE SOLO--------------------------------------
 +
      if(digitalRead(in_solo))
 +
      {
 +
        Serial.println("mode solo");
 +
        //mode solo
 +
        if(randTime==0)
 +
        {randTime = random(8000,15000);}
 +
        lcd.clear();
 +
        lcd.setCursor(0,0);
 +
        lcd.print("le temps est :");
 +
        lcd.setCursor(0, 1);
 +
        lcd.print(randTime/1000);
 +
        lcd.setCursor(5, 1);
 +
        lcd.print("s");
 +
        if(!bpBLANC)
 +
        {
 +
          digitalWrite(led_red,HIGH);
 +
          delay(1000);
 +
          digitalWrite(led_yellow,HIGH);
 +
          delay(1000);
 +
          digitalWrite(led_green,HIGH);
 +
          delay(1000);
 +
          digitalWrite(led_red,LOW);
 +
          digitalWrite(led_yellow,LOW);
 +
          digitalWrite(led_green,LOW);
 +
 +
          lcd.clear();
 +
          lcd.setCursor(0,0);
 +
          lcd.print("C'EST PARTI !!!");
 +
          lcd.setCursor(0, 1);
 +
          lcd.print(randTime/1000);
 +
          lcd.setCursor(5, 1);
 +
          lcd.print("s");
 +
          float rnd_init = millis();
 +
          while(endd==0  )
 +
          {
 +
            float rnd = millis()-rnd_init;
 +
            if(rnd > randTime+20000){
 +
                lcd.clear();
 +
                lcd.setCursor(0,0);
 +
                lcd.print("YOU LOSE !!!");
 +
                lcd.setCursor(0, 1);
 +
                lcd.print(rnd/1000);
 +
                lcd.setCursor(5, 1);
 +
                lcd.print("s      ");
 +
                digitalWrite(led_red,HIGH);
 +
                lcd.setRGB(255, 0, 0);
 +
                delay(3000);
 +
                lcd.setRGB(0, 0, 0);
 +
                digitalWrite(led_red,LOW);
 +
                randTime = 0;
 +
                endd=1;}
 +
           
 +
            Serial.println(rnd);
 +
            affichage_BP();
 +
            if(!bpBLANC)
 +
            {
 +
              Serial.println("rentrer de fonction");
 +
              endd = 1;
 +
              if(rnd < (randTime+500) and rnd > (randTime-500))
 +
              {
 +
                lcd.clear();
 +
                lcd.setCursor(0,0);
 +
                lcd.print("YOU WIN !!!");
 +
                Serial.println("rentrer WIN");
 +
                lcd.setCursor(0, 1);
 +
                lcd.print(rnd/1000);
 +
                lcd.setCursor(5, 1);
 +
                lcd.print("s      ");
 +
                digitalWrite(led_green,HIGH);
 +
                lcd.setRGB(0, 255, 0);
 +
                delay(3000);
 +
                lcd.setRGB(0, 0, 0);
 +
                digitalWrite(led_green,LOW);
 +
                randTime = 0;
 +
               
 +
              }
 +
              else
 +
              {
 +
                lcd.clear();
 +
                lcd.setCursor(0,0);
 +
                lcd.print("YOU LOSE !!!");
 +
                Serial.println("rentrer LOSE");
 +
                lcd.setCursor(0, 1);
 +
                lcd.print(rnd/1000);
 +
                lcd.setCursor(5, 1);
 +
                lcd.print("s      ");
 +
                digitalWrite(led_red,HIGH);
 +
                lcd.setRGB(255, 0, 0);
 +
                delay(3000);
 +
                digitalWrite(led_red,LOW);
 +
                lcd.setRGB(0, 0, 0);
 +
                randTime = 0;
 +
               
 +
              }
 +
            }
 +
          }
 +
        }
 +
      }
 +
 +
      //-----------------------------MODE DUO--------------------------------------
 +
      else
 +
      {
 +
        //mode duo
 +
        Serial.println("mode duo");
 +
        if(randTime==0)
 +
        {randTime = random(8000,15000);}
 +
        lcd.clear();
 +
        lcd.setCursor(0,0);
 +
        lcd.print("le temps est :");
 +
        lcd.setCursor(0, 1);
 +
        lcd.print(randTime/1000);
 +
        lcd.setCursor(5, 1);
 +
        lcd.print("s");
 +
        if(!bpBLANC or !bpBLEU)
 +
        {
 +
          digitalWrite(led_red,HIGH);
 +
          delay(1000);
 +
          digitalWrite(led_yellow,HIGH);
 +
          delay(1000);
 +
          digitalWrite(led_green,HIGH);
 +
          delay(1000);
 +
          digitalWrite(led_red,LOW);
 +
          digitalWrite(led_yellow,LOW);
 +
          digitalWrite(led_green,LOW);
 +
 +
          lcd.clear();
 +
          lcd.setCursor(0,0);
 +
          lcd.print("C'EST PARTI !!!");
 +
          lcd.setCursor(0, 1);
 +
          lcd.print(randTime/1000);
 +
          lcd.setCursor(5, 1);
 +
          lcd.print("s");
 +
          float rnd_init = millis();
 +
          float rnd1 = 0;
 +
          float rnd2 = 0;
 +
          delay(100);
 +
          while(endd==0)
 +
          {
 +
            //affichage_BP();
 +
            bpBLANC = digitalRead(0);
 +
            bpBLEU = digitalRead(2);
 +
            delay(50);
 +
            if(!bpBLEU)
 +
            {
 +
              rnd1 = millis()-rnd_init;
 +
              //Serial.println(rnd1);
 +
              //Serial.println("rnd1");
 +
              delay(100);
 +
            }
 +
            if(!bpBLANC)
 +
            {
 +
              rnd2 = millis()-rnd_init;
 +
              //Serial.println("rnd2");
 +
            // Serial.println(rnd2);
 +
              delay(100);
 +
            }
 +
            float timeOut = millis()-rnd_init;
 +
 +
            if (rnd1 != 0 and rnd2 != 0){
 +
              float diff1 = rnd1- randTime;
 +
              float diff2 = rnd2- randTime;
 +
              if (abs(diff1) < abs(diff2) ) {
 +
                  lcd.clear();
 +
                  lcd.setCursor(0,0);
 +
                  Serial.println("Calcul difference BLUE WIN");
 +
                  lcd.setRGB(0, 0, 255);
 +
                  lcd.print("BLUE WIN !!!");
 +
                  lcd.setCursor(0, 1);
 +
                  lcd.print(rnd1/1000);
 +
                  lcd.setCursor(5, 1);
 +
                  lcd.print("s      ");
 +
                  delay(3000);
 +
                  randTime = 0;
 +
                  endd=1;
 +
                }
 +
                else
 +
                {
 +
                  lcd.clear();
 +
                  lcd.setCursor(0,0);
 +
                  Serial.println("Calcul difference WHITE WIN");
 +
                  lcd.setRGB(255, 255, 255);
 +
                  lcd.print("WHITE WIN !!!");
 +
                  lcd.setCursor(0, 1);
 +
                  lcd.print(rnd2/1000);
 +
                  lcd.setCursor(5, 1);
 +
                  lcd.print("s      ");
 +
                  delay(3000);
 +
                  randTime = 0;
 +
                  endd=1;
 +
                }
 +
              }
 +
              if (timeOut >= 30000)
 +
              {
 +
                if(rnd1 == 0 and rnd2 == 0){
 +
                lcd.clear();
 +
                lcd.setCursor(0,0);
 +
                lcd.setRGB(255, 0, 0);
 +
                Serial.println("Timeout = 0 0 BOTH LOSE");
 +
                lcd.print("BOTH LOSE !!!");
 +
                lcd.setCursor(0, 1);
 +
                lcd.print("Time Out");
 +
                lcd.setCursor(5, 1);
 +
                lcd.print("s      ");
 +
                delay(3000);
 +
                randTime = 0;
 +
                endd=1;}
 +
               
 +
                else if(rnd2 == 0){
 +
                lcd.clear();
 +
                lcd.setCursor(0,0);
 +
                lcd.setRGB(0, 0, 255);
 +
                Serial.println("Timeout = white pas appuyer blue win");
 +
                lcd.print("BLUE WIN !!!");
 +
                lcd.setCursor(0, 1);
 +
                lcd.print(rnd1/1000);
 +
                lcd.setCursor(5, 1);
 +
                lcd.print("s      ");
 +
                delay(3000);
 +
                randTime = 0;
 +
                endd=1;}
 +
               
 +
                else{
 +
                lcd.clear();
 +
                lcd.setCursor(0,0);
 +
                lcd.setRGB(255, 255, 255);
 +
                  Serial.println("Timeout = blue pas appuyer white win");
 +
                lcd.print("WHITE WIN !!!");
 +
                lcd.setCursor(0, 1);
 +
                lcd.print(rnd2/1000);
 +
                lcd.setCursor(5, 1);
 +
                lcd.print("s      ");
 +
                delay(3000);
 +
                randTime = 0;
 +
                endd=1;}
 +
              }
 +
           
 +
           
  
==Code==
+
           
<pre>
+
 
ici je pose mon code documenté !
+
           
 +
           
 +
         
 +
             
 +
            }
 +
          }
 +
        }
 +
      }
 +
    }
 +
  }
 +
void affichage_BP(){
 +
 
 +
  bpBLANC = digitalRead(0);
 +
  bpBLEU = digitalRead(2);
 +
  Serial.println("BP_BLANC");Serial.println(bpBLANC);
 +
  Serial.println();
 +
  Serial.println("BP_BLEU");Serial.println(bpBLEU);
 +
  Serial.println();
 +
  delay(100);
 +
  }
 +
 
 +
 
 +
/*********************************************************************************************************
 +
    END FILE
 +
*********************************************************************************************************/
 
</pre>
 
</pre>
  

Version actuelle datée du 14 janvier 2022 à 17:25

photo du projet

Fin de la 1ère journée :

Debut The Timer.jpg

Projet Final :

Snapchat-622441686.jpg

  • Axel RAULT
  • Marius ANDRIEUX
  • Thomas EVEN
  • Mael JOUSSET

Que fait ce projet ?

Lors du démarrage, il faut tourner l'interrupteur pour choisir le mode de jeu. Soit ça se joue tout seul ou en duo. Une fois le mode choisi, il faut appuyer sur un bouton pour lancer la partie.


Mode 1 : Ce premier mode est le mode solo, il n'y a qu'un seul joueur. le temps de référence s'affiche sur l'écran. 3 leds s'allument une par une pour donner le départ. Une fois le départ donné, le joueur doit chronométrer dans sa tête le temps de référence. Lorsqu'il pense avoir atteint le temps, il doit appuyer sur le bouton poussoir pour valider son temps. Si le temps chronométré par le joueur est a plus ou moins 0.5 sec du temps de référence affiché en début de partie. Alors il a gagne la partie et la led verte s'allume. S'il est en dehors de cette plage de temps, une led rouge s'allume, le joueur a perdu.


Mode 2 : le deuxième mode est le mode duo, il se joue à deux joueurs. le temps de référence s'affiche sur l'écran. 3 leds s'allument une par une pour donner le départ. Une fois le départ donné, les joueurs doivent chronométrer dans leur tête le temps de référence. Lorsqu'ils pensent avoir atteint le temps, ils doivent chacun appuyer sur leur bouton poussoir pour valider leur temps. Le joueur le plus proche du temps de référence gagne la partie. L'écran affiche sur un fond de la couleur du bouton du gagnant le meilleur temps.


Liste des composants

  • 1 écran LCD
  • 1 carte arduino
  • 3 leds
  • 2 bouton poussoir
  • 1 cable USB - microUSB
  • 1 bread board
  • plusieurs câbles
  • 1 câble pour l'écran LCD

Code

/*
    Hello World.ino
    2013 Copyright (c) Seeed Technology Inc.  All right reserved.

    Author:Loovee
    2013-9-18

    Grove - Serial LCD RGB Backlight demo.

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

const int colorR = 0;
const int colorG = 0;
const int colorB = 0;

int endd=0;

const int in_solo = 14;
const int led_red=15,led_yellow=13,led_green=12;
bool bpBLANC=digitalRead(0);
bool bpBLEU=digitalRead(2);
int randTime = 0;
int rnd=0;

void setup() {
    Serial.begin(9600);
    // set up the LCD's number of columns and rows:
    pinMode(in_solo,INPUT);
    pinMode(led_red,OUTPUT);
    pinMode(led_yellow,OUTPUT);
    pinMode(led_green,OUTPUT);

    
    
    
    
    lcd.begin(16, 2);

    lcd.setRGB(colorR, colorG, colorB);
    
    lcd.clear();
    
}

void loop() {
    //-----------------------------DEMARRAGE--------------------------------------
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("CHOISISSEZ UN");
    lcd.setCursor(0, 1);
    lcd.print("MODE DE JEU");
    delay(2000);
    while(1){
    endd=0;
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("PUIS APPUYEZ SUR");
    lcd.setCursor(0, 1);
    lcd.print("UN BOUTON");
    delay(100);
    bpBLANC = digitalRead(0);
    bpBLEU = digitalRead(2);
    if(!bpBLANC or !bpBLEU)
     
    {
      //-----------------------------MODE SOLO--------------------------------------
      if(digitalRead(in_solo))
      {
        Serial.println("mode solo");
        //mode solo
        if(randTime==0)
        {randTime = random(8000,15000);}
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("le temps est :");
        lcd.setCursor(0, 1);
        lcd.print(randTime/1000);
        lcd.setCursor(5, 1);
        lcd.print("s");
        if(!bpBLANC)
        {
          digitalWrite(led_red,HIGH);
          delay(1000);
          digitalWrite(led_yellow,HIGH);
          delay(1000);
          digitalWrite(led_green,HIGH);
          delay(1000);
          digitalWrite(led_red,LOW);
          digitalWrite(led_yellow,LOW);
          digitalWrite(led_green,LOW);

          lcd.clear();
          lcd.setCursor(0,0);
          lcd.print("C'EST PARTI !!!");
          lcd.setCursor(0, 1);
          lcd.print(randTime/1000);
          lcd.setCursor(5, 1);
          lcd.print("s");
          float rnd_init = millis();
          while(endd==0  )
          {
            float rnd = millis()-rnd_init;
            if(rnd > randTime+20000){
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.print("YOU LOSE !!!");
                lcd.setCursor(0, 1);
                lcd.print(rnd/1000);
                lcd.setCursor(5, 1);
                lcd.print("s       ");
                digitalWrite(led_red,HIGH);
                lcd.setRGB(255, 0, 0);
                delay(3000);
                lcd.setRGB(0, 0, 0);
                digitalWrite(led_red,LOW);
                randTime = 0;
                endd=1;}
            
            Serial.println(rnd);
            affichage_BP();
            if(!bpBLANC)
            {
              Serial.println("rentrer de fonction");
              endd = 1;
              if(rnd < (randTime+500) and rnd > (randTime-500))
              {
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.print("YOU WIN !!!");
                Serial.println("rentrer WIN");
                lcd.setCursor(0, 1);
                lcd.print(rnd/1000);
                lcd.setCursor(5, 1);
                lcd.print("s       ");
                digitalWrite(led_green,HIGH);
                lcd.setRGB(0, 255, 0);
                delay(3000);
                lcd.setRGB(0, 0, 0);
                digitalWrite(led_green,LOW);
                randTime = 0;
                
              }
              else
              {
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.print("YOU LOSE !!!");
                Serial.println("rentrer LOSE");
                lcd.setCursor(0, 1);
                lcd.print(rnd/1000);
                lcd.setCursor(5, 1);
                lcd.print("s       ");
                digitalWrite(led_red,HIGH);
                lcd.setRGB(255, 0, 0);
                delay(3000);
                digitalWrite(led_red,LOW);
                lcd.setRGB(0, 0, 0);
                randTime = 0;
                
              }
            }
          }
        }
      }

      //-----------------------------MODE DUO--------------------------------------
      else
      {
        //mode duo
        Serial.println("mode duo");
        if(randTime==0)
        {randTime = random(8000,15000);}
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("le temps est :");
        lcd.setCursor(0, 1);
        lcd.print(randTime/1000);
        lcd.setCursor(5, 1);
        lcd.print("s");
        if(!bpBLANC or !bpBLEU)
        {
          digitalWrite(led_red,HIGH);
          delay(1000);
          digitalWrite(led_yellow,HIGH);
          delay(1000);
          digitalWrite(led_green,HIGH);
          delay(1000);
          digitalWrite(led_red,LOW);
          digitalWrite(led_yellow,LOW);
          digitalWrite(led_green,LOW);

          lcd.clear();
          lcd.setCursor(0,0);
          lcd.print("C'EST PARTI !!!");
          lcd.setCursor(0, 1);
          lcd.print(randTime/1000);
          lcd.setCursor(5, 1);
          lcd.print("s");
          float rnd_init = millis();
          float rnd1 = 0;
          float rnd2 = 0;
          delay(100);
          while(endd==0)
          {
            //affichage_BP();
            bpBLANC = digitalRead(0);
            bpBLEU = digitalRead(2);
            delay(50);
            if(!bpBLEU)
            {
              rnd1 = millis()-rnd_init;
              //Serial.println(rnd1);
              //Serial.println("rnd1");
              delay(100);
            }
            if(!bpBLANC)
            {
              rnd2 = millis()-rnd_init;
              //Serial.println("rnd2");
             // Serial.println(rnd2);
              delay(100);
            }
            float timeOut = millis()-rnd_init;

            if (rnd1 != 0 and rnd2 != 0){
              float diff1 = rnd1- randTime;
              float diff2 = rnd2- randTime;
              if (abs(diff1) < abs(diff2) ) {
                  lcd.clear();
                  lcd.setCursor(0,0);
                  Serial.println("Calcul difference BLUE WIN");
                  lcd.setRGB(0, 0, 255);
                  lcd.print("BLUE WIN !!!");
                  lcd.setCursor(0, 1);
                  lcd.print(rnd1/1000);
                  lcd.setCursor(5, 1);
                  lcd.print("s       ");
                  delay(3000);
                  randTime = 0;
                  endd=1;
                }
                else
                {
                  lcd.clear();
                  lcd.setCursor(0,0);
                  Serial.println("Calcul difference WHITE WIN");
                  lcd.setRGB(255, 255, 255);
                  lcd.print("WHITE WIN !!!");
                  lcd.setCursor(0, 1);
                  lcd.print(rnd2/1000);
                  lcd.setCursor(5, 1);
                  lcd.print("s       ");
                  delay(3000);
                  randTime = 0;
                  endd=1;
                }
              }
              if (timeOut >= 30000)
              {
                if(rnd1 == 0 and rnd2 == 0){
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.setRGB(255, 0, 0);
                Serial.println("Timeout = 0 0 BOTH LOSE");
                lcd.print("BOTH LOSE !!!");
                lcd.setCursor(0, 1);
                lcd.print("Time Out");
                lcd.setCursor(5, 1);
                lcd.print("s       ");
                delay(3000);
                randTime = 0;
                endd=1;}
                
                else if(rnd2 == 0){
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.setRGB(0, 0, 255);
                Serial.println("Timeout = white pas appuyer blue win");
                lcd.print("BLUE WIN !!!");
                lcd.setCursor(0, 1);
                lcd.print(rnd1/1000);
                lcd.setCursor(5, 1);
                lcd.print("s       ");
                delay(3000);
                randTime = 0;
                endd=1;} 
                
                else{
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.setRGB(255, 255, 255);
                  Serial.println("Timeout = blue pas appuyer white win");
                lcd.print("WHITE WIN !!!");
                lcd.setCursor(0, 1);
                lcd.print(rnd2/1000);
                lcd.setCursor(5, 1);
                lcd.print("s       ");
                delay(3000);
                randTime = 0;
                endd=1;}
              }
            
            

             

             
            
          
              
            }
          }
        }
      }
    }
  }
void affichage_BP(){
  
  bpBLANC = digitalRead(0);
  bpBLEU = digitalRead(2);
  Serial.println("BP_BLANC");Serial.println(bpBLANC);
  Serial.println();
  Serial.println("BP_BLEU");Serial.println(bpBLEU);
  Serial.println();
  delay(100);
  }


/*********************************************************************************************************
    END FILE
*********************************************************************************************************/

Catégories