Projet Interfaçage de Kenny GUILLOUCHE, Vadim IELKIN, Nathan DELAFOSSE

Dependencies:   BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG mbed

Committer:
Tsarvadim
Date:
Tue Jun 12 15:04:11 2018 +0000
Revision:
2:3bb535973904
Parent:
1:f034e131e408
Projet acc?l?rom?tre

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Tsarvadim 0:19846e16566e 1 #include "mbed.h"
Tsarvadim 0:19846e16566e 2 #include "TS_DISCO_F746NG.h"
Tsarvadim 0:19846e16566e 3 #include "LCD_DISCO_F746NG.h"
Tsarvadim 0:19846e16566e 4 #include <time.h> // pour rand
Tsarvadim 0:19846e16566e 5 #include <stdio.h>
Tsarvadim 0:19846e16566e 6 #include <stdlib.h>
Tsarvadim 0:19846e16566e 7
Tsarvadim 0:19846e16566e 8 LCD_DISCO_F746NG lcd;
Tsarvadim 0:19846e16566e 9 TS_DISCO_F746NG ts;
Tsarvadim 0:19846e16566e 10
Tsarvadim 0:19846e16566e 11 I2C i2c(PB_9,PB_8);
Tsarvadim 0:19846e16566e 12
Tsarvadim 0:19846e16566e 13 TS_StateTypeDef TS_State;
Tsarvadim 0:19846e16566e 14
Tsarvadim 0:19846e16566e 15 //adress de l'accelerometre
Tsarvadim 0:19846e16566e 16 int addr = 0x14;
Tsarvadim 0:19846e16566e 17
Tsarvadim 0:19846e16566e 18 //Tableau contenant les commandes
Tsarvadim 0:19846e16566e 19 char cmd[2];
Tsarvadim 0:19846e16566e 20 char resultat[2];
Tsarvadim 0:19846e16566e 21
Tsarvadim 0:19846e16566e 22
Tsarvadim 0:19846e16566e 23 //Tableau contenant les données du capteur
Tsarvadim 0:19846e16566e 24 char tmp[40];
Tsarvadim 0:19846e16566e 25
Tsarvadim 0:19846e16566e 26 //Position du pion
Tsarvadim 0:19846e16566e 27 int position_pion_x = 0;
Tsarvadim 0:19846e16566e 28 int position_pion_y = 30;
Tsarvadim 0:19846e16566e 29
Tsarvadim 0:19846e16566e 30 //Variable contenant le score
Tsarvadim 0:19846e16566e 31 int score = 0;
Tsarvadim 0:19846e16566e 32
Tsarvadim 0:19846e16566e 33 //Variable de la position du checkpoint
Tsarvadim 0:19846e16566e 34 int position_checkpoint_x = 250;
Tsarvadim 0:19846e16566e 35 int position_checkpoint_y = 125;
Tsarvadim 0:19846e16566e 36
Tsarvadim 0:19846e16566e 37
Tsarvadim 0:19846e16566e 38 //Variable choix utilisateur menu
Tsarvadim 0:19846e16566e 39 bool choix_jeu = false;
Tsarvadim 0:19846e16566e 40 bool choix_info = false;
Tsarvadim 0:19846e16566e 41
Tsarvadim 0:19846e16566e 42 //Prototype des méthode
Tsarvadim 0:19846e16566e 43 void jeu();
Tsarvadim 0:19846e16566e 44 void information();
Tsarvadim 0:19846e16566e 45
Tsarvadim 0:19846e16566e 46 int main()
Tsarvadim 0:19846e16566e 47 {
Tsarvadim 0:19846e16566e 48 //Variable utilisé pour stocker les données de l'écran tactiles
Tsarvadim 0:19846e16566e 49 uint16_t x, y;
Tsarvadim 0:19846e16566e 50 uint8_t status;
Tsarvadim 0:19846e16566e 51
Tsarvadim 1:f034e131e408 52 lcd.SetBackColor(0);
Tsarvadim 0:19846e16566e 53 //Initialisation
Tsarvadim 1:f034e131e408 54
Tsarvadim 1:f034e131e408 55 lcd.SetTextColor(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 56 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Bienvenue sur AngleTarget", CENTER_MODE);
Tsarvadim 1:f034e131e408 57 wait(2);
Tsarvadim 0:19846e16566e 58
Tsarvadim 1:f034e131e408 59 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 60 status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
Tsarvadim 0:19846e16566e 61 if (status != TS_OK) {
Tsarvadim 0:19846e16566e 62 lcd.Clear(LCD_COLOR_RED);
Tsarvadim 0:19846e16566e 63 lcd.SetTextColor(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 64 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Initialisation fail ", CENTER_MODE);
Tsarvadim 0:19846e16566e 65 } else {
Tsarvadim 0:19846e16566e 66 lcd.Clear(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 67 }
Tsarvadim 0:19846e16566e 68
Tsarvadim 1:f034e131e408 69 lcd.SetBackColor(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 70 //Affichage du menu
Tsarvadim 0:19846e16566e 71 lcd.SetFont(&Font16);
Tsarvadim 0:19846e16566e 72 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)"Veuillez choisir une option", CENTER_MODE);
Tsarvadim 0:19846e16566e 73
Tsarvadim 0:19846e16566e 74 //"Bouton" jeu
Tsarvadim 0:19846e16566e 75 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 76 lcd.FillRect(250, 150, 150, 100);
Tsarvadim 1:f034e131e408 77 lcd.SetBackColor(LCD_COLOR_BLACK);
Tsarvadim 1:f034e131e408 78 lcd.SetTextColor(LCD_COLOR_WHITE);
Tsarvadim 1:f034e131e408 79 lcd.SetFont(&Font16);
Tsarvadim 1:f034e131e408 80 lcd.DisplayStringAt(95,190, (uint8_t *)"Jeu", CENTER_MODE);
Tsarvadim 0:19846e16566e 81
Tsarvadim 0:19846e16566e 82 //"Bouton" informations
Tsarvadim 0:19846e16566e 83 lcd.SetTextColor(LCD_COLOR_RED);
Tsarvadim 1:f034e131e408 84 lcd.FillRect(40,150,150,100);
Tsarvadim 1:f034e131e408 85 lcd.SetBackColor(LCD_COLOR_RED);
Tsarvadim 1:f034e131e408 86 lcd.SetTextColor(LCD_COLOR_WHITE);
Tsarvadim 1:f034e131e408 87 lcd.SetFont(&Font16);
Tsarvadim 1:f034e131e408 88 lcd.DisplayStringAt(85,190, (uint8_t *)"Info", LEFT_MODE);
Tsarvadim 1:f034e131e408 89
Tsarvadim 1:f034e131e408 90 lcd.SetBackColor(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 91 while(1)
Tsarvadim 0:19846e16566e 92 {
Tsarvadim 0:19846e16566e 93 //Recuperation des informations tactiles
Tsarvadim 0:19846e16566e 94 ts.GetState(&TS_State);
Tsarvadim 0:19846e16566e 95 if (TS_State.touchDetected)
Tsarvadim 0:19846e16566e 96 {
Tsarvadim 0:19846e16566e 97 x = TS_State.touchX[0];
Tsarvadim 0:19846e16566e 98 y = TS_State.touchY[0];
Tsarvadim 0:19846e16566e 99
Tsarvadim 0:19846e16566e 100 //Si on appuie sur la case jeu on lance le jeu
Tsarvadim 0:19846e16566e 101 if((x >=250 && y>=150) && (x<400 && y<250))
Tsarvadim 0:19846e16566e 102 choix_jeu = true;
Tsarvadim 0:19846e16566e 103
Tsarvadim 0:19846e16566e 104 //Si on appuie sur la case information on lance la methode information
Tsarvadim 0:19846e16566e 105 if((x >=50 && y>=150) && (x<200&& y<250))
Tsarvadim 0:19846e16566e 106 choix_info = true;
Tsarvadim 0:19846e16566e 107 }
Tsarvadim 0:19846e16566e 108
Tsarvadim 0:19846e16566e 109
Tsarvadim 0:19846e16566e 110 //Si on appuie sur la case jeu on lance le jeu
Tsarvadim 0:19846e16566e 111 if(choix_jeu == true)
Tsarvadim 0:19846e16566e 112 {
Tsarvadim 0:19846e16566e 113 jeu();
Tsarvadim 0:19846e16566e 114 }
Tsarvadim 0:19846e16566e 115
Tsarvadim 0:19846e16566e 116 //Si on appuie sur la case information on lance la methode information
Tsarvadim 0:19846e16566e 117 if(choix_info == true)
Tsarvadim 0:19846e16566e 118 {
Tsarvadim 0:19846e16566e 119 information();
Tsarvadim 0:19846e16566e 120 choix_info = false;
Tsarvadim 0:19846e16566e 121 choix_jeu = true;
Tsarvadim 0:19846e16566e 122 }
Tsarvadim 0:19846e16566e 123
Tsarvadim 0:19846e16566e 124 }
Tsarvadim 0:19846e16566e 125 }
Tsarvadim 0:19846e16566e 126
Tsarvadim 0:19846e16566e 127 //Methode information
Tsarvadim 0:19846e16566e 128 void information()
Tsarvadim 0:19846e16566e 129 {
Tsarvadim 0:19846e16566e 130 uint16_t x, y;
Tsarvadim 0:19846e16566e 131 bool choix_retour = false;
Tsarvadim 0:19846e16566e 132 lcd.Clear(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 133 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 134
Tsarvadim 0:19846e16566e 135 //Affichage des informations
Tsarvadim 0:19846e16566e 136 lcd.SetFont(&Font12);
Tsarvadim 0:19846e16566e 137 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Bienvenue dans la rubrique information sur AngleTarget", CENTER_MODE);
Tsarvadim 0:19846e16566e 138 lcd.SetFont(&Font12);
Tsarvadim 0:19846e16566e 139 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Developpe par Kenny Guillouche, Nathan Delafosse et Vadim Ielkin", CENTER_MODE);
Tsarvadim 0:19846e16566e 140 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)"Pour jouer, rendez vous dans le menu principal et clique sur jouer", CENTER_MODE);
Tsarvadim 0:19846e16566e 141 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Les regles sont simples. vous devez placer votre pion sur une forme generer", CENTER_MODE);
Tsarvadim 0:19846e16566e 142 lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"Un jeu MANGame", CENTER_MODE);
Tsarvadim 0:19846e16566e 143 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Developpe par Kenny Guillouche, Nathan Delafosse et Vadim Ielkin", CENTER_MODE);
Tsarvadim 0:19846e16566e 144
Tsarvadim 0:19846e16566e 145 //Bouton jeu
Tsarvadim 0:19846e16566e 146 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 147 lcd.FillRect(165, 150, 150, 100);
Tsarvadim 1:f034e131e408 148 lcd.SetBackColor(LCD_COLOR_BLACK);
Tsarvadim 1:f034e131e408 149 lcd.SetTextColor(LCD_COLOR_WHITE);
Tsarvadim 1:f034e131e408 150 lcd.SetFont(&Font16);
Tsarvadim 1:f034e131e408 151 lcd.DisplayStringAt(0,190, (uint8_t *)"JEU", CENTER_MODE);
Tsarvadim 2:3bb535973904 152
Tsarvadim 2:3bb535973904 153
Tsarvadim 2:3bb535973904 154 lcd.SetBackColor(LCD_COLOR_WHITE);
Tsarvadim 2:3bb535973904 155
Tsarvadim 2:3bb535973904 156 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 157 do
Tsarvadim 0:19846e16566e 158 {
Tsarvadim 0:19846e16566e 159 ts.GetState(&TS_State);
Tsarvadim 0:19846e16566e 160 if (TS_State.touchDetected)
Tsarvadim 0:19846e16566e 161 {
Tsarvadim 0:19846e16566e 162 x = TS_State.touchX[0];
Tsarvadim 0:19846e16566e 163 y = TS_State.touchY[0];
Tsarvadim 0:19846e16566e 164 if((x >=165 && y>=150) && (x<315 && y<250))
Tsarvadim 0:19846e16566e 165 {
Tsarvadim 0:19846e16566e 166 choix_retour = true;
Tsarvadim 0:19846e16566e 167 choix_info = false;
Tsarvadim 0:19846e16566e 168 jeu();
Tsarvadim 0:19846e16566e 169 }
Tsarvadim 0:19846e16566e 170 }
Tsarvadim 0:19846e16566e 171 }
Tsarvadim 0:19846e16566e 172 while(choix_retour == false);
Tsarvadim 0:19846e16566e 173
Tsarvadim 0:19846e16566e 174 }
Tsarvadim 0:19846e16566e 175
Tsarvadim 0:19846e16566e 176 //Methode jeu
Tsarvadim 0:19846e16566e 177 void jeu()
Tsarvadim 0:19846e16566e 178 {
Tsarvadim 0:19846e16566e 179 uint16_t x, y;
Tsarvadim 0:19846e16566e 180 bool cheat;
Tsarvadim 0:19846e16566e 181 cheat = false;
Tsarvadim 0:19846e16566e 182 bool stopjeu = false;
Tsarvadim 0:19846e16566e 183
Tsarvadim 0:19846e16566e 184 //Initialisation du jeu
Tsarvadim 0:19846e16566e 185 lcd.Clear(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 186 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 187 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 188
Tsarvadim 0:19846e16566e 189 //Generation du score
Tsarvadim 0:19846e16566e 190 sprintf(tmp,"Score : %d",score);
Tsarvadim 0:19846e16566e 191 lcd.DisplayStringAt(0, LINE(1),(uint8_t *)tmp,CENTER_MODE);
Tsarvadim 0:19846e16566e 192
Tsarvadim 0:19846e16566e 193 //Generation du premier checkpoint
Tsarvadim 0:19846e16566e 194 lcd.SetTextColor(LCD_COLOR_RED);
Tsarvadim 0:19846e16566e 195 lcd.FillRect(position_checkpoint_x, position_checkpoint_y, 10, 10);
Tsarvadim 0:19846e16566e 196
Tsarvadim 0:19846e16566e 197 srand(time(NULL));
Tsarvadim 0:19846e16566e 198
Tsarvadim 0:19846e16566e 199 while(stopjeu == false)
Tsarvadim 0:19846e16566e 200 {
Tsarvadim 0:19846e16566e 201 //Recuperation de la coordonnée en X
Tsarvadim 0:19846e16566e 202 resultat[0] = 0;
Tsarvadim 0:19846e16566e 203 cmd[0] = 0x04; //Command read
Tsarvadim 0:19846e16566e 204 i2c.write(addr, cmd, 1);
Tsarvadim 0:19846e16566e 205 i2c.read(addr, resultat, 1);
Tsarvadim 0:19846e16566e 206
Tsarvadim 0:19846e16566e 207 //Si accelerometre penché vers la droite
Tsarvadim 0:19846e16566e 208 if((int)resultat[0]<52 && (int)resultat[0]>8)
Tsarvadim 0:19846e16566e 209 {
Tsarvadim 0:19846e16566e 210 //On modifie notre postion du pion vers la droite
Tsarvadim 0:19846e16566e 211 if(position_pion_x<450) //Limite ecran
Tsarvadim 0:19846e16566e 212 {
Tsarvadim 0:19846e16566e 213 lcd.SetTextColor(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 214 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 215 position_pion_x += 1;
Tsarvadim 0:19846e16566e 216 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 217 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 218 }
Tsarvadim 0:19846e16566e 219 }
Tsarvadim 0:19846e16566e 220
Tsarvadim 0:19846e16566e 221 //Si accelerometre penché vers la hauche
Tsarvadim 0:19846e16566e 222 else if((int)resultat[0]> 200 && (int)resultat[0]<250)
Tsarvadim 0:19846e16566e 223 {
Tsarvadim 0:19846e16566e 224 //On modifie notre postion du pion vers la gauche
Tsarvadim 0:19846e16566e 225 if(position_pion_x>0) //Limite ecran
Tsarvadim 0:19846e16566e 226 {
Tsarvadim 0:19846e16566e 227 lcd.SetTextColor(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 228 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 229 position_pion_x -= 1;
Tsarvadim 0:19846e16566e 230 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 231 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 232 }
Tsarvadim 0:19846e16566e 233 }
Tsarvadim 0:19846e16566e 234
Tsarvadim 0:19846e16566e 235 //Recuperation de la coordonnée en Y
Tsarvadim 0:19846e16566e 236 resultat[0] = 0;
Tsarvadim 0:19846e16566e 237 cmd[0] = 0x06; //Command read
Tsarvadim 0:19846e16566e 238 i2c.write(addr, cmd, 1);
Tsarvadim 0:19846e16566e 239 i2c.read(addr, resultat, 1);
Tsarvadim 0:19846e16566e 240
Tsarvadim 0:19846e16566e 241 //Si accelerometre penché vers le haut
Tsarvadim 0:19846e16566e 242 if((int)resultat[0]<52 && (int)resultat[0]>8)
Tsarvadim 0:19846e16566e 243 {
Tsarvadim 0:19846e16566e 244 //On modifie notre postion du pion vers le haut
Tsarvadim 0:19846e16566e 245 if(position_pion_y>30) //Limite ecran
Tsarvadim 0:19846e16566e 246 {
Tsarvadim 0:19846e16566e 247 lcd.SetTextColor(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 248 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 249 position_pion_y -= 1;
Tsarvadim 0:19846e16566e 250 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 251 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 252 }
Tsarvadim 0:19846e16566e 253 }
Tsarvadim 0:19846e16566e 254
Tsarvadim 0:19846e16566e 255 //Si accelerometre penché vers le bas
Tsarvadim 0:19846e16566e 256 else if((int)resultat[0]<248 && (int)resultat[0]>200)
Tsarvadim 0:19846e16566e 257 {
Tsarvadim 0:19846e16566e 258 //On modifie notre postion du pion vers le bas
Tsarvadim 0:19846e16566e 259 if(position_pion_y<242) //Limite ecran
Tsarvadim 0:19846e16566e 260 {
Tsarvadim 0:19846e16566e 261 lcd.SetTextColor(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 262 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 263 position_pion_y += 1;
Tsarvadim 0:19846e16566e 264 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 265 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 266 }
Tsarvadim 0:19846e16566e 267 }
Tsarvadim 0:19846e16566e 268
Tsarvadim 0:19846e16566e 269 //colission pion/checkpoint
Tsarvadim 0:19846e16566e 270 if((position_pion_x + 30 >position_checkpoint_x) && (position_pion_x < position_checkpoint_x + 10) && (position_pion_y + 30 >position_checkpoint_y) && (position_pion_y < position_checkpoint_y +10))
Tsarvadim 0:19846e16566e 271 {
Tsarvadim 0:19846e16566e 272 //On efface
Tsarvadim 0:19846e16566e 273 lcd.Clear(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 274 lcd.SetTextColor(LCD_COLOR_BLACK);
Tsarvadim 0:19846e16566e 275 lcd.FillRect(position_pion_x, position_pion_y, 30, 30);
Tsarvadim 0:19846e16566e 276
Tsarvadim 0:19846e16566e 277 //Actualisation du score
Tsarvadim 0:19846e16566e 278 score++;
Tsarvadim 0:19846e16566e 279 sprintf(tmp,"Score : %d",score);
Tsarvadim 0:19846e16566e 280 lcd.DisplayStringAt(0, LINE(1),(uint8_t *)tmp,CENTER_MODE);
Tsarvadim 0:19846e16566e 281
Tsarvadim 0:19846e16566e 282 //Position aléatoire du prochain checkpoint
Tsarvadim 0:19846e16566e 283 position_checkpoint_x = (rand()%450) + 10; //generation nombre aleatoire entre 10 et 460
Tsarvadim 0:19846e16566e 284 position_checkpoint_y = (rand()%215) + 35 ; //generation nombre aleatoire entre 35 et 250
Tsarvadim 0:19846e16566e 285
Tsarvadim 0:19846e16566e 286 //Affichage nouveau checkpoint
Tsarvadim 0:19846e16566e 287 lcd.SetTextColor(LCD_COLOR_RED);
Tsarvadim 0:19846e16566e 288 lcd.FillRect(position_checkpoint_x, position_checkpoint_y, 10, 10);
Tsarvadim 0:19846e16566e 289 }
Tsarvadim 0:19846e16566e 290
Tsarvadim 0:19846e16566e 291 //Si il a reussit à faire +20 de score
Tsarvadim 0:19846e16566e 292 if(score>20)
Tsarvadim 0:19846e16566e 293 {
Tsarvadim 0:19846e16566e 294 //On efface
Tsarvadim 0:19846e16566e 295 lcd.Clear(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 296 lcd.SetFont(&Font24);
Tsarvadim 0:19846e16566e 297
Tsarvadim 0:19846e16566e 298 //On affiche victoire
Tsarvadim 0:19846e16566e 299 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Victoire", CENTER_MODE);
Tsarvadim 0:19846e16566e 300 wait(5);
Tsarvadim 0:19846e16566e 301
Tsarvadim 0:19846e16566e 302 //Reinitialisation
Tsarvadim 0:19846e16566e 303 stopjeu =true;
Tsarvadim 0:19846e16566e 304 score = 0;
Tsarvadim 0:19846e16566e 305 position_pion_x = 0;
Tsarvadim 0:19846e16566e 306 position_pion_y = 30;
Tsarvadim 0:19846e16566e 307 lcd.SetFont(&Font16);
Tsarvadim 0:19846e16566e 308 }
Tsarvadim 0:19846e16566e 309
Tsarvadim 0:19846e16566e 310 //Recuperation des informations tactiles
Tsarvadim 0:19846e16566e 311 ts.GetState(&TS_State);
Tsarvadim 0:19846e16566e 312 if (TS_State.touchDetected)
Tsarvadim 0:19846e16566e 313 {
Tsarvadim 0:19846e16566e 314 x = TS_State.touchX[0];
Tsarvadim 0:19846e16566e 315 y = TS_State.touchY[0];
Tsarvadim 0:19846e16566e 316 }
Tsarvadim 0:19846e16566e 317
Tsarvadim 0:19846e16566e 318 //si on appuie sur la bonne position 1
Tsarvadim 0:19846e16566e 319 if((x >=250 && y>=150) && (x<275 && y<175))
Tsarvadim 0:19846e16566e 320 {
Tsarvadim 0:19846e16566e 321 cheat = true;
Tsarvadim 0:19846e16566e 322 }
Tsarvadim 0:19846e16566e 323
Tsarvadim 0:19846e16566e 324 //si on appuie sur la bonne position 2 apres la 1
Tsarvadim 0:19846e16566e 325 if((x >=150 && y>=250) && (x<175 && y<275) && (cheat == true))
Tsarvadim 0:19846e16566e 326 {
Tsarvadim 0:19846e16566e 327 //On efface
Tsarvadim 0:19846e16566e 328 lcd.Clear(LCD_COLOR_WHITE);
Tsarvadim 0:19846e16566e 329 lcd.SetFont(&Font24);
Tsarvadim 0:19846e16566e 330
Tsarvadim 0:19846e16566e 331 //On affiche victoire
Tsarvadim 0:19846e16566e 332 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Victoire", CENTER_MODE);
Tsarvadim 0:19846e16566e 333 wait(5);
Tsarvadim 0:19846e16566e 334
Tsarvadim 0:19846e16566e 335 //Reinitialisation
Tsarvadim 0:19846e16566e 336 stopjeu =true;
Tsarvadim 0:19846e16566e 337 score = 0;
Tsarvadim 0:19846e16566e 338 position_pion_x = 0;
Tsarvadim 0:19846e16566e 339 position_pion_y = 30;
Tsarvadim 0:19846e16566e 340 lcd.SetFont(&Font16);
Tsarvadim 0:19846e16566e 341 }
Tsarvadim 0:19846e16566e 342 wait(0.005);
Tsarvadim 0:19846e16566e 343 }
Tsarvadim 0:19846e16566e 344 }