hbachetti:
Suggestion : si tu donnais le type de variable tableau où sont stockés les codes ?
Mon code est super logn donc je voulais éviter de le mettre mais j'arrive pas à faire ce que je veux malgré tout donc le voici:
#include <Adafruit_NeoPixel.h>
int buttonPin1 = 10;
int buttonPin2 = 11;
int buttonPin3 = 12;
int buttonPin4 = 13;
int buttonPin[] = {buttonPin1,buttonPin2,buttonPin3,buttonPin4};
int counter1=0;
int counter2=0;
int counter3=0;
int counter4=0;
int counter[] = {counter1,counter2,counter3,counter4};
int bien_place=0;
int mal_place=0;
int nb_tour=0;
int buttonState1=0;
int buttonState2=0;
int buttonState3=0;
int buttonState4=0;
int buttonState[] = {buttonState1,buttonState2,buttonState3,buttonState4};
int lastbuttonState1=0;
int lastbuttonState2=0;
int lastbuttonState3=0;
int lastbuttonState4=0;
int lastbuttonState[] = {lastbuttonState1,lastbuttonState2,lastbuttonState3,lastbuttonState4};
int buttonbloqPin = 9;
int buttonbloqState = 0;
int lastbuttonbloqState = 0;
int counterbloq = 0;
char c1;
char c2;
char c3;
char c4;
char code[] = {c1,c2,c3,c4};
char code_secret[] = {'b','b','b','r'};
Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(10, 2);
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(10, 3);
Adafruit_NeoPixel strip3 = Adafruit_NeoPixel(10, 4);
Adafruit_NeoPixel strip4 = Adafruit_NeoPixel(10, 5);
Adafruit_NeoPixel strip[] = {strip1, strip2, strip3, strip4};
Adafruit_NeoPixel stripC1 = Adafruit_NeoPixel(10, 6);
Adafruit_NeoPixel stripC2 = Adafruit_NeoPixel(10, 7);
Adafruit_NeoPixel stripC3 = Adafruit_NeoPixel(10, 8);
Adafruit_NeoPixel stripC4 = Adafruit_NeoPixel(10, A5);
Adafruit_NeoPixel stripC[] = {stripC1, stripC2, stripC3, stripC4};
void setup() {
Serial.begin(9600);
for (int i=0; i <= 3; i++){
pinMode(buttonPin[i], INPUT);
}
for (int j=0; j <=3; j++) {
strip[j].begin();
strip[j].show(); // Initialize all pixels to 'off'
}
for (int j=0; j <=3; j++) {
stripC[j].begin();
stripC[j].show(); // Initialize all pixels to 'off'
}
}
void loop() {
while (bien_place<4) {
buttonbloqState = digitalRead(buttonbloqPin);
if (buttonbloqState != lastbuttonbloqState) {
if (buttonbloqState == HIGH) {
counterbloq++;
}
else{
counterbloq =counterbloq;
}
lastbuttonbloqState = buttonbloqState;
}
for (int i=0; i <= 9; i++){
if (counterbloq == i) {
for (int j=0; j <= 3; j++){
uint32_t rose = strip[j].Color(255, 0, 255);
uint32_t bleu = strip[j].Color(1, 102, 102);
uint32_t vert = strip[j].Color(0, 255, 0);
uint32_t jaune = strip[j].Color(255, 255, 0);
buttonState[j] = digitalRead(buttonPin[j]);
if (buttonState[j] != lastbuttonState[j]) {
if (buttonState[j] == HIGH) {
counter[j]++;
}
else{
counter[j]=counter[j];
}
lastbuttonState[j] = buttonState[j];
}
if(counter[j]==0){
strip[j].setPixelColor(i, 0, 0, 0); //noir
strip[j].show();
}
else if (counter[j]%4==1){
strip[j].setPixelColor(i, rose); //rose
strip[j].show();
code[j]='r';
}
else if (counter[j]%4==2){
strip[j].setPixelColor(i, bleu); //bleu
strip[j].show();
code[j]='b';
}
else if (counter[j]%4==3 ){
strip[j].setPixelColor(i, vert); //vert
strip[j].show();
code[j]='v';
}
else if (counter[j]%4==0){
strip[j].setPixelColor(i, jaune); //jaune
strip[j].show();
code[j]='j';
}
}
nb_tour=nb_tour+1;
if (nb_tour>10) {
Serial.print("PERDU!!!");
}
else {
if (code[0]==code_secret[0]) {
bien_place=bien_place+1;
}
else {
if (code_secret.indexOf(code[0])!=-1) {
mal_place=mal_place+1;
}
}
if (code[1]==code_secret[1]) {
bien_place=bien_place+1;
}
else {
if (strchr(code_secret, code[1])!=0) {
mal_place=mal_place+1;
}
}
if (code[2]==code_secret[2]) {
bien_place=bien_place+1;
}
else {
if (strchr(code_secret, code[2])!=0) {
mal_place=mal_place+1;
}
}
if (code[3]==code_secret[3]) {
bien_place=bien_place+1;
}
else {
if (strchr(code_secret, code[3])!=0) {
mal_place=mal_place+1;
}
}
if (bien_place<4) {
if (bien_place==0) {
Serial.print("vous n avez aucune lettre bien placée.");
}
else {
Serial.print("vous avez");
Serial.print(bien_place);
Serial.print(" lettres bien placées.\n");
}
if (mal_place==0) {
Serial.print("vous n avez aucune lettre mal placée et présente dans l expression");
}
else {
Serial.print("vous avez");
Serial.print(mal_place);
Serial.print("lettres mals placées.\n");
}
}
else {
Serial.print("GAGNE en");
Serial.print(nb_tour);
Serial.print("tours !!!! \n ");
}
}
}
}
}
}