![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Description dans le rapport.
main.cpp@0:34945468db9f, 2017-04-02 (annotated)
- 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?
User | Revision | Line number | New 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 | } |