summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClyhtsuriva <aimeric@adjutor.xyz>2021-01-21 14:12:34 +0100
committerClyhtsuriva <aimeric@adjutor.xyz>2021-01-21 14:12:34 +0100
commit24b20766d6dfa716888d1e0852dd0374004f6420 (patch)
tree0b7ef62881c31e8d2f24f09d20e378c3e21491e6
parent9430438047d6359ba38fb9380b380100c801d9fc (diff)
ajout de commentaires
-rw-r--r--prototype_simon.c79
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!");}