summaryrefslogtreecommitdiff
path: root/Core/Inc
diff options
context:
space:
mode:
authorClyhtsuriva <aimeric@adjutor.xyz>2021-01-25 22:11:30 +0100
committerClyhtsuriva <aimeric@adjutor.xyz>2021-01-25 22:11:30 +0100
commit816804c9c114e20d2231258cc346c3714590b9ea (patch)
treef0c8aec1fb265762654ef5ffe4f51fa880f8513a /Core/Inc
parent343e88525d1d13a6da5629d7137b2d8a15f9d2d8 (diff)
Rapport et main.c
Diffstat (limited to 'Core/Inc')
-rw-r--r--Core/Inc/simon.h111
1 files changed, 0 insertions, 111 deletions
diff --git a/Core/Inc/simon.h b/Core/Inc/simon.h
deleted file mode 100644
index 01bcf6f..0000000
--- a/Core/Inc/simon.h
+++ /dev/null
@@ -1,111 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <string.h>
-
-void fonction_led(char* couleur, int position) { //correspondance LEDs
- if (position==0){
- 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) { //correspondance LCD
- printf ("[LCD : %s]\n", contenu); //afichage sur l'ecran LCD
-}
-
-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 pour avoir 3 valeurs differentes (3 couleurs/leds)
- char* choix = couleur_leds[aleatoire];
- return choix;
-}
-
-
-int simon(void) {
- affiche_lcd("SIMON_STM32");
-
- 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; //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){ //lancement du mode 2J
- affiche_lcd("MODE 2J");
- affiche_lcd("J1!");
- }
- 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, tant qu'on a pas perdu
-
- suite_de_leds[score] = choix_aleatoire();
- score++;
- 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); //petite attente (1s) pour ne pas avoir toute les leds qui s'allume en meme temps
- }
-
- affiche_lcd("A VOUS !");
- int iLed=0;
- do { //le joueur appuie sur les boutons
- char bouton[100];
- scanf("%s", bouton); //correspondance
- char* bouton_couleur = bouton; //boutons poussoirs
-
- 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); //rendre un int en char
-
- affiche_lcd(score_char);
- perdu = 1;
- etat_bouton_start=0;
- } else {
- perdu = 0; //possiblement enlevable
- }
- 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){ //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){ //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!");}
- else {affiche_lcd("EGALITE...");}
- }
-
- }
- score=0;
-
- }
-
- return 0;
-}