diff options
-rw-r--r-- | prototype_simon.c | 86 |
1 files changed, 63 insertions, 23 deletions
diff --git a/prototype_simon.c b/prototype_simon.c index 2b3ed83..e1a7258 100644 --- a/prototype_simon.c +++ b/prototype_simon.c @@ -2,9 +2,18 @@ #include <stdio.h> #include <time.h> #include <unistd.h> +#include <string.h> void fonction_led(char* couleur, int position) { //a modifier avec le reel - printf("(La led %s se met en position %d.)\n", couleur, position); + 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"); + } } void affiche_lcd(char* contenu) { //a modifier par l'utlisation des lib @@ -21,26 +30,39 @@ char* choix_aleatoire(void) { //fonctionne int main(void) { - affiche_lcd("Bienvenue sur SIMON_STM32"); + affiche_lcd("SIMON_STM32"); - int etat_bouton_start = 1; //a changer en fonction des pins et tout - int niveau = 0; - char* suite_de_leds[100]; - int perdu = 0; + 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]={}; + + 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... + affiche_lcd("LET'S GO !"); + if (etat_bouton_deux_joueurs && !deuxieme_joueur_joue){ + affiche_lcd("MODE 2J"); + affiche_lcd("J1!"); + } + else if (!etat_bouton_deux_joueurs && !deuxieme_joueur_joue) { + affiche_lcd("MODE 1J"); + } + while (perdu!= 1) { //ici on lance un niveau - int tour=0; - while (tour<10 && perdu!= 1) { - if (etat_bouton_start){//a changer... - affiche_lcd("Let's go !"); - suite_de_leds[niveau] = choix_aleatoire(); - niveau++; - for (int i = 0; i<niveau; i++){ - fonction_led(suite_de_leds[i], 1); - fonction_led(suite_de_leds[i], 0); + suite_de_leds[score] = choix_aleatoire(); + score++; + for (int i = 0; i<score; i++){ + fonction_led(suite_de_leds[i], 1); //on + fonction_led(suite_de_leds[i], 0); //off + sleep(1); } - affiche_lcd("A vous !"); + affiche_lcd("A VOUS !"); int j=0; do { char bouton[100]; @@ -49,22 +71,40 @@ int main(void) { if (*bouton_couleur!=*suite_de_leds[j]){ affiche_lcd("GAME OVER !"); - affiche_lcd("Niveau atteind :"); + affiche_lcd("SCORE :"); - char niveau_char[10]; - sprintf(niveau_char, "%d", niveau); + char score_char[10]; + sprintf(score_char, "%d", score-1); - affiche_lcd(niveau_char); + affiche_lcd(score_char); perdu = 1; + etat_bouton_start=0; } else { - affiche_lcd("BRAVO !"); +// affiche_lcd("BRAVO !"); perdu = 0; } j++; - } while (j<niveau && perdu!=1); + } while (j<score && perdu!=1); //tant qu'on a des leds a faire allume et qu'on a pas perdu } - tour++; + if (etat_bouton_deux_joueurs && perdu==1 && !deuxieme_joueur_joue){ + 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){ + score_deux = score; + if (score_un>score_deux){affiche_lcd("JOUEUR 1 GAGNE!");} + else if (score_un<score_deux){affiche_lcd("JOUEUR 2 GAGNE!");} + else {affiche_lcd("EGALITE...");} + } + } + score=0; + + } + return 0; } |