diff options
author | Clyhtsuriva <aimeric@adjutor.xyz> | 2021-01-21 14:12:34 +0100 |
---|---|---|
committer | Clyhtsuriva <aimeric@adjutor.xyz> | 2021-01-21 14:12:34 +0100 |
commit | 24b20766d6dfa716888d1e0852dd0374004f6420 (patch) | |
tree | 0b7ef62881c31e8d2f24f09d20e378c3e21491e6 | |
parent | 9430438047d6359ba38fb9380b380100c801d9fc (diff) |
ajout de commentaires
-rw-r--r-- | prototype_simon.c | 79 |
1 files changed, 40 insertions, 39 deletions
diff --git a/prototype_simon.c b/prototype_simon.c index e1a7258..07225de 100644 --- a/prototype_simon.c +++ b/prototype_simon.c @@ -4,26 +4,26 @@ #include <unistd.h> #include <string.h> -void fonction_led(char* couleur, int position) { //a modifier avec le reel +void fonction_led(char* couleur, int position) { //correspondance LEDs if (position==0){ - printf("( () () () )\n"); - } else if (strcmp(couleur,"R")==0){ - printf("( (R) () () )\n"); - } else if (strcmp(couleur,"V")==0){ - printf("( () (V) () )\n"); - } else if (strcmp(couleur,"J")==0){ - printf("( () () (J) )\n"); + printf("( () () () )\n"); //eteind + } else if (strcmp(couleur,"R")==0){ //rouge + printf("( (R) () () )\n"); //allume (envoie la commande sur le pin correspondant) + } else if (strcmp(couleur,"V")==0){ //vert + printf("( () (V) () )\n"); //allume (envoie la commande sur le pin correspondant) + } else if (strcmp(couleur,"J")==0){ //jaune + printf("( () () (J) )\n"); //allume (envoie la commande sur le pin correspondant) } } -void affiche_lcd(char* contenu) { //a modifier par l'utlisation des lib - printf ("[LCD : %s]\n", contenu); +void affiche_lcd(char* contenu) { //correspondance LCD + printf ("[LCD : %s]\n", contenu); //afichage sur l'ecran LCD } -char* choix_aleatoire(void) { //fonctionne - char* couleur_leds[3]={"R","V","J"}; //nos led +char* choix_aleatoire(void) { + char* couleur_leds[3]={"R","V","J"}; //nos couleurs de led srand(time(0)); - int aleatoire = (rand() % (2 - 0 + 1)) + 0; //choix entre 0 et 2 + int aleatoire = (rand() % (2 - 0 + 1)) + 0; //choix entre 0 et 2 pour avoir 3 valeurs differentes (3 couleurs/leds) char* choix = couleur_leds[aleatoire]; return choix; } @@ -32,69 +32,70 @@ char* choix_aleatoire(void) { //fonctionne int main(void) { affiche_lcd("SIMON_STM32"); - int etat_bouton_deux_joueurs = 0; //faire une correspondance au quatrieme bouton - int score = 0; - int deuxieme_joueur_joue = 0; - int score_un=0; - int score_deux=0; - char* suite_de_leds[100]={}; + int etat_bouton_deux_joueurs = 1; //faire une correspondance au quatrieme bouton + + int score = 0; //ne pas toucher + int deuxieme_joueur_joue = 0; //ne pas toucher + int score_un=0; //ne pas toucher + int score_deux=0; //ne pas toucher + char* suite_de_leds[100]={}; //ne pas toucher while (1) { //le programme tourne en continue - int etat_bouton_start = 1; //fiare correspondance bouton bleu de la carte - int perdu = 0; - if (etat_bouton_start){ //a changer... + int etat_bouton_start = 1; //correspondance bouton bleu + int perdu = 0; //ne pas toucher + if (etat_bouton_start){ affiche_lcd("LET'S GO !"); - if (etat_bouton_deux_joueurs && !deuxieme_joueur_joue){ + if (etat_bouton_deux_joueurs && !deuxieme_joueur_joue){ //lancement du mode 2J affiche_lcd("MODE 2J"); affiche_lcd("J1!"); } - else if (!etat_bouton_deux_joueurs && !deuxieme_joueur_joue) { + else if (!etat_bouton_deux_joueurs && !deuxieme_joueur_joue) { //lancement du mode 1J affiche_lcd("MODE 1J"); } - while (perdu!= 1) { //ici on lance un niveau + while (perdu!= 1) { //ici on lance un niveau, tant qu'on a pas perdu suite_de_leds[score] = choix_aleatoire(); score++; - for (int i = 0; i<score; i++){ + for (int i = 0; i<score; i++){ //allume et eteinds les leds une par une par rapport au niveau fonction_led(suite_de_leds[i], 1); //on fonction_led(suite_de_leds[i], 0); //off - sleep(1); + sleep(1); //petite attente (1s) pour ne pas avoir toute les leds qui s'allume en meme temps } affiche_lcd("A VOUS !"); - int j=0; - do { + int iLed=0; + do { //le joueur appuie sur les boutons char bouton[100]; - scanf("%s", bouton); //a remplacer par la reception IRL du bouton - char* bouton_couleur = bouton; //pareil + scanf("%s", bouton); //correspondance + char* bouton_couleur = bouton; //boutons poussoirs - if (*bouton_couleur!=*suite_de_leds[j]){ + if (*bouton_couleur!=*suite_de_leds[iLed]){ //le joueur se trompe affiche_lcd("GAME OVER !"); affiche_lcd("SCORE :"); char score_char[10]; - sprintf(score_char, "%d", score-1); + sprintf(score_char, "%d", score-1); //rendre un int en char affiche_lcd(score_char); perdu = 1; etat_bouton_start=0; } else { -// affiche_lcd("BRAVO !"); - perdu = 0; + perdu = 0; //possiblement enlevable } - j++; - } while (j<score && perdu!=1); + iLed++; + } while (iLed<score && perdu!=1); //tant qu'on a des leds a faire allume et qu'on a pas perdu } - if (etat_bouton_deux_joueurs && perdu==1 && !deuxieme_joueur_joue){ + + if (etat_bouton_deux_joueurs && perdu==1 && !deuxieme_joueur_joue){ //si le premier joueur perd en mode 2J affiche_lcd("J2!"); etat_bouton_deux_joueurs = 0; perdu = 0; etat_bouton_start=1; score_un = score; deuxieme_joueur_joue = 1; - } else if (deuxieme_joueur_joue){ + } else if (deuxieme_joueur_joue){ //si tout le monde a joue en mode 2 joueurs, on fait la comparaison des scores score_deux = score; if (score_un>score_deux){affiche_lcd("JOUEUR 1 GAGNE!");} else if (score_un<score_deux){affiche_lcd("JOUEUR 2 GAGNE!");} |