0% ont trouvé ce document utile (0 vote)
33 vues6 pages

Code C

Transféré par

gbkfrost
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
33 vues6 pages

Code C

Transféré par

gbkfrost
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

const int buttonPins[5] = {3, 4, 5, 6}; // Broches des boutons

int buttonStates[4]; // États des boutons


const int ledPins[4] = {8,9,10,11};
int greenledPin = 12;
struct agents {
char nom[2];
int code;
};

agents tableau[16] = {
{"A", 601}, {"B", 619}, {"C", 631}, {"D", 641},
{"E", 647}, {"F", 653}, {"H", 661}, {"I", 673},
{"J", 691}, {"K", 701}, {"L", 733}, {"M", 739},
{"N", 751}, {"O", 797}, {"P", 809}, {"Q", 822},
};

void lederreur(){
int nombre = 0;
while (nombre < 3){
delay(1000);
digitalWrite(ledPins[0], LOW);
digitalWrite(ledPins[1], LOW);
digitalWrite(ledPins[2], LOW);
digitalWrite(ledPins[3], LOW);
delay(1000);
digitalWrite(ledPins[0], HIGH);
digitalWrite(ledPins[1], HIGH);
digitalWrite(ledPins[2], HIGH);
digitalWrite(ledPins[3], HIGH);
nombre++;
}
}

int SECU1(){
[Link]("Etape 1 :");
if (mA1() == 1) {
[Link]("Etape 3 :");
if (mA3() == 1) {
[Link]("ouverture coffre");
}
}
}

int SECU2(){
[Link]("Etape 1 :");
if (mA1() == 1) {
[Link]("Etape 4 :");
if (mA4() == 1) {
[Link]("ouverture coffre");
}
}
}

int SECU3(){
[Link]("Etape 2 :");
if (mA2() == 1) {
[Link]("Etape 4 :");
if (mA4() == 1) {
[Link]("ouverture coffre");
}
}
}

int SECU4(){
[Link]("Etape 1 :");
if (mA1() == 1) {
[Link]("Etape 2 :");
if (mA2() == 1) {
[Link]("Etape 3 :");
if (mA3() == 1) {
[Link]("Etape 4 :");
if (mA4() == 1) {
[Link]("ouverture coffre");
}
}
}
}
}

int SECU5(){
[Link]("Etape 1 :");
if (mA1() == 1) {
[Link]("Etape 2 :");
if (mA2() == 1) {
[Link]("Etape 3 :");
if (mA3() == 1) {
[Link]("Etape 4 :");
if (mA4() == 1) {
[Link]("Etape 5 :");
if (MA5() == 1) {
[Link]("La porte s'ouvre");
}
}
}
}
}
}

void setup() {
[Link](9600);
for (int i = 0; i < 4; i++)
{
pinMode(buttonPins[i], INPUT_PULLUP);
pinMode(ledPins[i], OUTPUT); // Initialiser les broches des LEDs comme
sorties
pinMode(greenledPin, OUTPUT);
digitalWrite(ledPins[i], HIGH); // Éteindre toutes les LEDs au début
digitalWrite(greenledPin, HIGH);
}
SECU5();
}

void loop() {
// Nous somme dans le coffre, tout est dans le setup
}

int readButtons() {
int value = 0;
for (int i = 0; i < 4; i++)
{
if (digitalRead(buttonPins[i]) == LOW) {
value = i + 1;
break;
}
}
while (value == 0) {
// Attendre que l'utilisateur appuie sur un bouton
for (int i = 0; i < 4; i++)
{
if (digitalRead(buttonPins[i]) == LOW) {
value = i + 1;
break;
}
}
}
delay(200); // Anti-rebond
return value;
}

int mA1() {
int v1 = 0;
int reponse, reponse2;

[Link]("De quelle couleur est lE LOGO CESI ?");


[Link]("1: Rouge");
[Link]("2: Vert");
[Link]("3: Jaune");
[Link]("4: Blanc");

reponse = readButtons();

if (reponse == 3) {
[Link]("Comment s'appelle l'agent K ?");
[Link]("1 : Kilian");
[Link]("2 : Kirikou");
[Link]("3 : Konan");
[Link]("4 : Karl");

reponse2 = readButtons();

if (reponse2 == 4) {
[Link]("Accès autorisé");
v1 = 1;
} else {
[Link]("Accès refusé");
}
} else {
[Link]("Accès refusé");
}
return v1;
}

int mA2() {
int erreur = 0;
int v2 = 0;
int tab[4] = {1, 2, 3, 4};
int saisi;
bool ouvert = false;

while (!ouvert) {
[Link]("Veuillez entrer votre mot de passe (4 chiffres) :");

for (int i = 0; i < 4; i++) {


saisi = readButtons();
if (saisi == tab[i]) {
[Link]("Correct");
digitalWrite(ledPins[i], LOW);
} else {
[Link]("Incorrect, veuillez recommencer");
erreur = erreur + 1;
lederreur();
if (erreur == 3){
[Link]("Coffre bloqué");}
return v2;
break;
}
if (i == 3) {

ouvert = true;
digitalWrite(greenledPin, LOW);
delay(3000);
digitalWrite(greenledPin, HIGH);
for (int i = 0; i < 4; i++)
{
digitalWrite(ledPins[i], HIGH);
}
for (int j = 0; j < 4; j++)
{
tab[j] = random(1, 5); // Nouveau mot de passe aléatoire
entre 1 et 4
}
[Link]("Votre nouveau mot de passe est : ");
for (int j = 0; j < 4; j++)
{
[Link](tab[j]);
}
[Link]();
v2 = 1;
}
}
}
return v2;
}

int mA3() {
int v3 = 0;
String input;

[Link]("Veuillez présenter votre oeil (True/False) :");


while ([Link]() == 0);
input = [Link]('\n');
[Link]();
if (input == "true"){
[Link]("Valider");
v3 = 1;
}
else{
[Link]("ERREUR");}
return v3;
}

int mA4() {
int v4 = 0;
String input;

[Link]("Veuillez présenter votre main (True/False) :");


while ([Link]() == 0);
input = [Link]('\n'); // Lit l'entrée jusqu'à un saut de ligne
[Link](); // Supprime les espaces et les sauts de ligne superflus
if (input == "true") {
[Link]("Commande reçue : true");
[Link]("Valider");
v4 = 1;

} else {
[Link]("Entrée incorrecte, essayez encore.");
}
return v4;
}

int MA5() {
int v5= 0;
while (![Link]()){}
char input = [Link](); // Lire la lettre
input = toupper(input); // Assurez-vous que la lettre est en majuscule
[Link]("Lettre reçue : ");
[Link](input);
int index = -1; // Index de la lettre trouvée dans le tableau
for (int i = 0; i < 16; i++) {
if (tableau[i].nom[0] == input) {
index = i;
break;
}
}

if (index != -1) {
[Link]("Correct ! Tapez le code associé.");
while ([Link]() == 0) {
// Attente d'une saisie
}

int enteredCode = [Link](); // Lire le code entré par


l'utilisateur
if (enteredCode == tableau[index].code) {
[Link]("Code correct !");
v5 = 1;
} else {
[Link]("Erreur : Code incorrect !");
}
} else {
[Link]("Erreur : Lettre inconnue.");
}
return(v5);
}

Vous aimerez peut-être aussi