César est la clef

De Les Fabriques du Ponant
Aller à : navigation, rechercher

Nous sommes au temps de l'empire Romain et César a besoin de vous pour résoudre une énigme. L'énigme se décompose en 2 parties.

1. Vous devez trouver le code secret qui ouvrira la boîte et vous donnera accès à la 2ème partie.

2. Vous devez chiffer le code secret César avec le bon décalage.

L'objectif étant d'indiquer le nombre de décalage sur l'écran. Vous saurez si l'énigme est résolue seulement si la led verte s'allume.

photo de l'équipe

Photo groupe.jpg

Que fait ce projet ?

Nous sommes un groupe d'étudiants de l'ENIB : Elouan, Arthur, Sidiki et Sylane (de gauche à droite).

Les sites utiles

Liste des composants

  • composant 1
  • composant 2
  • ...

Code

Le code n'est pas malheureusement pas opérationnel. Nous avons eu beaucoup de difficultés à connecter le microcontrôleur à notre pc. 
  1. include <LiquidCrystal_I2C.h>
  2. include <Arduino.h>
  3. include <String.h>
bool e0= false;
bool e1=false;



// set the LCD number of columns and rows int lcdColumns = 16; int lcdRows = 2;

// set LCD address, number of columns and rows // if you don't know your display address, run an I2C scanner sketch LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);

void setup(){

 pinMode(D0, INPUT);
 pinMode(D5,INPUT);
 pinMode(D6,INPUT);

 // initialize LCD
 lcd.init();
 // turn on LCD backlight                      
 lcd.backlight();
 lcd.clear();
 // set cursor to first column, first row
 // lcd.setCursor(0, 0);
 // print message
 // lcd.print("Hello, World!");
 // Serial.begin(115200);
 // Serial.println(random(0,100));

}

 char char1 = (char)0x41 +(char)random(0,25);
 char char2 = (char)0x41 +(char)random(0,25); 
 char char3 = (char)0x41 +(char)random(0,25);
 //String TrueString =(String)(char1+(char)7) +(String)(char2+(char)7) + (String)(char3+(char)7);
 //int cmpt =0;
 String chain1=(String)char1 +(String)char2 + (String)char3;
 int shift=0;


void DisplayCode(String Chain,int dec,int sh){
 lcd.setCursor(0, 0);
 lcd.print("Mon code est:");
 lcd.setCursor(0, 14);
 lcd.print(sh);
 lcd.setCursor(dec, 1);
 lcd.print(Chain);


}
void Increment()
{
   if (char1 =='Z' || char2 =='Z' || char3 =='Z'){

char1 = (char)((int)char1-25); char2 = (char)((int)char1-25); char3 = (char)((int)char1-25);

shift++; if (shift>=26){

 shift=0;

}

chain1=(String)char1 +(String)char2 + (String)char3; DisplayCode(chain1, 7, shift);

   }
   else{

char1 = (char)((int)char1+1); char2 = (char)((int)char2+1); char3 = (char)((int)char3+1);

shift++; if (shift>=26){

 shift=0;

} chain1=(String)char1 +(String)char2 + (String)char3; DisplayCode(chain1, 7, shift);

   }

}

void Decrement(){

if (char1 =='A' || char2 =='A' || char3 =='A'){

char1 = (char)((int)char1+25); char2 = (char)((int)char2+25); char3 = (char)((int)char3+25);

shift--; if (shift<0){

 shift=25;

} chain1=(String)char1 +(String)char2 + (String)char3; DisplayCode(chain1, 7, shift);

   }
   else{

char1 = (char)((int)char1-1); char2 = (char)((int)char2-1); char3 = (char)((int)char3-1);

shift--; if (shift<0){

 shift=25;

} chain1=(String)char1 +(String)char2 + (String)char3; DisplayCode(chain1, 7, shift);

   }
 }

void loop(){

 while (!e0){
 DisplayCode(chain1, 7, shift);
 if (digitalRead(D5==HIGH )){
    Increment();
 }
 if (digitalRead(D6==HIGH)){
    Decrement();
 }

if(shift==7 && D0==HIGH){

    e0=true;

}

 delay(1000);
 Decrement();
 lcd.clear();
 }

}

Catégories