summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--prototype_simon.c86
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;
}