#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
const int boutonA = 13;
const int boutonB = 7;
const int boutonC = 6;
const int boutonD = 1;
const int boutonE = 0;
const int boutonF = 8;
const String motADeviner = "ABCDEF";
String motEnCours = "_ _ _ _ _ _";
int etatPrecedentA;
int etatPrecedentB;
int etatPrecedentC;
int etatPrecedentD;
int etatPrecedentE;
int etatPrecedentF;
void setup() {
lcd.begin(16, 2);
lcd.print("Mot en cours :");
etatPrecedentA = digitalRead(boutonA);
etatPrecedentB = digitalRead(boutonB);
etatPrecedentC = digitalRead(boutonC);
etatPrecedentD = digitalRead(boutonD);
etatPrecedentE = digitalRead(boutonE);
etatPrecedentF = digitalRead(boutonF);
}
void loop() {
AfficherMotEnCours();
TaperUneLettre();
}
void AfficherMotEnCours() {
lcd.setCursor(0, 1);
lcd.print(motEnCours);
}
void TaperUneLettre() {
// Lire l'état actuel des boutons
int etatA = digitalRead(boutonA);
int etatB = digitalRead(boutonB);
int etatC = digitalRead(boutonC);
int etatD = digitalRead(boutonD);
int etatE = digitalRead(boutonE);
int etatF = digitalRead(boutonF);
// Vérifier la lettre uniquement si le bouton a été cliqué (état précédent HIGH et état actuel LOW)
if (etatA == LOW && etatPrecedentA == HIGH) {
VerifierLettre('A');
}
if (etatB == LOW && etatPrecedentB == HIGH) {
VerifierLettre('B');
}
if (etatC == LOW && etatPrecedentC == HIGH) {
VerifierLettre('C');
}
if (etatD == LOW && etatPrecedentD == HIGH) {
VerifierLettre('D');
}
if (etatE == LOW && etatPrecedentE == HIGH) {
VerifierLettre('E');
}
if (etatF == LOW && etatPrecedentF == HIGH) {
VerifierLettre('F');
}
// Mettre à jour les états précédents des boutons
etatPrecedentA = etatA;
etatPrecedentB = etatB;
etatPrecedentC = etatC;
etatPrecedentD = etatD;
etatPrecedentE = etatE;
etatPrecedentF = etatF;
}
void VerifierLettre(char lettre) {
for (int i = 0; i < motADeviner.length(); i++) {
if (lettre == motADeviner[i]) {
// Mettre à jour motEnCours avec la lettre correcte à la position appropriée
motEnCours[i * 2] = lettre;
}
}
// Mettre à jour l'affichage LCD après avoir vérifié toutes les lettres
AfficherMotEnCours();
}