Description dans le rapport.

Dependencies:   mbed

Committer:
Damien75
Date:
Sun Apr 02 09:48:30 2017 +0000
Revision:
0:34945468db9f
Projet C++ embarqu? MBED; Damien et Nicolas

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Damien75 0:34945468db9f 1 /*
Damien75 0:34945468db9f 2 Le main permet d'instancier les différentes classes développées.
Damien75 0:34945468db9f 3 C'est dans ce ficher que l'on défini le mot à trouver ainsi que
Damien75 0:34945468db9f 4 les interuptions permettant à l'utilisateur d'interagir avec
Damien75 0:34945468db9f 5 l'écran grâce aux boutons.
Damien75 0:34945468db9f 6 */
Damien75 0:34945468db9f 7
Damien75 0:34945468db9f 8 // Importation des librairies utilisées
Damien75 0:34945468db9f 9
Damien75 0:34945468db9f 10 #include "mbed.h"
Damien75 0:34945468db9f 11 #include "SeeedGrayOLED.h"
Damien75 0:34945468db9f 12 #include "AnalyseurMot.h"
Damien75 0:34945468db9f 13 #include "Lettre.h"
Damien75 0:34945468db9f 14 #include <iostream>
Damien75 0:34945468db9f 15
Damien75 0:34945468db9f 16 using namespace std;
Damien75 0:34945468db9f 17
Damien75 0:34945468db9f 18 // Instanciation des objets utilisés
Damien75 0:34945468db9f 19
Damien75 0:34945468db9f 20 InterruptIn button1(p15);
Damien75 0:34945468db9f 21 InterruptIn button2(p16);
Damien75 0:34945468db9f 22 SeeedGrayOLED *seeedGrayOled = new SeeedGrayOLED(p9, p10);
Damien75 0:34945468db9f 23 Lettre *lettre = new Lettre();
Damien75 0:34945468db9f 24 char motMystere[8]={'P','O','L','Y','T','E','C','H'};
Damien75 0:34945468db9f 25 char motEssai[8]={'_','_','_','_','_','_','_','_'};
Damien75 0:34945468db9f 26 AnalyseurMot *analyseurMot = new AnalyseurMot(motMystere,motEssai);
Damien75 0:34945468db9f 27
Damien75 0:34945468db9f 28 // Interruption permettant de changer l'affichage de la lettre en
Damien75 0:34945468db9f 29 // appuyant sur le boutton 1
Damien75 0:34945468db9f 30
Damien75 0:34945468db9f 31 void flip1()
Damien75 0:34945468db9f 32 {
Damien75 0:34945468db9f 33 if(button1)
Damien75 0:34945468db9f 34 {
Damien75 0:34945468db9f 35 lettre->setLettre();
Damien75 0:34945468db9f 36 wait(0.25);
Damien75 0:34945468db9f 37 }
Damien75 0:34945468db9f 38 }
Damien75 0:34945468db9f 39
Damien75 0:34945468db9f 40 // Interruption permettant de valider le choix de la lettre en appuyant
Damien75 0:34945468db9f 41 // sur le boutton 2 ce qui effectue une comparaison avec les lettres du
Damien75 0:34945468db9f 42 // mot mystère
Damien75 0:34945468db9f 43
Damien75 0:34945468db9f 44 void flip2()
Damien75 0:34945468db9f 45 {
Damien75 0:34945468db9f 46 if(button2)
Damien75 0:34945468db9f 47 {
Damien75 0:34945468db9f 48 analyseurMot->comparerMot(lettre->getLettre(),8);
Damien75 0:34945468db9f 49 wait(0.25);
Damien75 0:34945468db9f 50 }
Damien75 0:34945468db9f 51 }
Damien75 0:34945468db9f 52
Damien75 0:34945468db9f 53 // Fonction d'initialisation de l'écran OLED
Damien75 0:34945468db9f 54
Damien75 0:34945468db9f 55 void initialisationHard()
Damien75 0:34945468db9f 56 {
Damien75 0:34945468db9f 57 seeedGrayOled->init();
Damien75 0:34945468db9f 58 seeedGrayOled->clearDisplay();
Damien75 0:34945468db9f 59 seeedGrayOled->setNormalDisplay();
Damien75 0:34945468db9f 60 seeedGrayOled->setVerticalMode();
Damien75 0:34945468db9f 61 }
Damien75 0:34945468db9f 62
Damien75 0:34945468db9f 63 // Affichage des informations sur l'écran OLED, 3 possibilités :
Damien75 0:34945468db9f 64 // 1. Le nombre d'essais est nul, l'écran affiche la défaite
Damien75 0:34945468db9f 65 // 2. Le mot mystère a été trouvé, l'écran affiche la victoire
Damien75 0:34945468db9f 66 // 3. En cours de jeu, l'écran affiche les informations utiles au joueur
Damien75 0:34945468db9f 67
Damien75 0:34945468db9f 68 void afficherMessage()
Damien75 0:34945468db9f 69 {
Damien75 0:34945468db9f 70 if (analyseurMot->getLvlBar()==0)
Damien75 0:34945468db9f 71 {
Damien75 0:34945468db9f 72 initialisationHard();
Damien75 0:34945468db9f 73 seeedGrayOled->setTextXY(3,2);
Damien75 0:34945468db9f 74 seeedGrayOled->putString("Vous avez");
Damien75 0:34945468db9f 75 seeedGrayOled->setTextXY(5,2);
Damien75 0:34945468db9f 76 seeedGrayOled->putString("PERDU !!!");
Damien75 0:34945468db9f 77 }
Damien75 0:34945468db9f 78 else if ((analyseurMot->getMotEssai())==(analyseurMot->getMotMystere()))
Damien75 0:34945468db9f 79 {
Damien75 0:34945468db9f 80 initialisationHard();
Damien75 0:34945468db9f 81 seeedGrayOled->setTextXY(3,2);
Damien75 0:34945468db9f 82 seeedGrayOled->putString("Vous avez");
Damien75 0:34945468db9f 83 seeedGrayOled->setTextXY(5,2);
Damien75 0:34945468db9f 84 seeedGrayOled->putString("GAGNE !!!");
Damien75 0:34945468db9f 85 }
Damien75 0:34945468db9f 86 else
Damien75 0:34945468db9f 87 {
Damien75 0:34945468db9f 88 seeedGrayOled->setTextXY(1,0);
Damien75 0:34945468db9f 89 seeedGrayOled->putString("Selection :");
Damien75 0:34945468db9f 90 seeedGrayOled->setTextXY(3,5);
Damien75 0:34945468db9f 91 seeedGrayOled->putChar(lettre->getLettre());
Damien75 0:34945468db9f 92 seeedGrayOled->setTextXY(6,0);
Damien75 0:34945468db9f 93 seeedGrayOled->putString("Mystery :");
Damien75 0:34945468db9f 94 seeedGrayOled->setTextXY(8,2);
Damien75 0:34945468db9f 95 seeedGrayOled->putString(analyseurMot->getMotEssai());
Damien75 0:34945468db9f 96 }
Damien75 0:34945468db9f 97 }
Damien75 0:34945468db9f 98
Damien75 0:34945468db9f 99 // La fonction main permet le fonctionnement du programme, il intègre
Damien75 0:34945468db9f 100 // l'initialisation, les adresses d'interruptions, la boucle d'affichage
Damien75 0:34945468db9f 101 // et supprime les objets instanciés en dynamique.
Damien75 0:34945468db9f 102
Damien75 0:34945468db9f 103 int main()
Damien75 0:34945468db9f 104 {
Damien75 0:34945468db9f 105 initialisationHard();
Damien75 0:34945468db9f 106 button1.rise(&flip1);
Damien75 0:34945468db9f 107 button2.rise(&flip2);
Damien75 0:34945468db9f 108
Damien75 0:34945468db9f 109 while(1)
Damien75 0:34945468db9f 110 {
Damien75 0:34945468db9f 111 afficherMessage();
Damien75 0:34945468db9f 112 }
Damien75 0:34945468db9f 113
Damien75 0:34945468db9f 114 delete motMystere;
Damien75 0:34945468db9f 115 delete motEssai;
Damien75 0:34945468db9f 116 delete lettre;
Damien75 0:34945468db9f 117 delete analyseurMot;
Damien75 0:34945468db9f 118 delete seeedGrayOled;
Damien75 0:34945468db9f 119 }