
Programme qui marche 100%
Dependencies: mbed BSP_DISCO_F746NG
prog_util/fonctions.cpp@3:54a96adea9cd, 2020-11-18 (annotated)
- Committer:
- blbl
- Date:
- Wed Nov 18 10:51:15 2020 +0000
- Revision:
- 3:54a96adea9cd
- Parent:
- 2:3e54ffabcc47
- Child:
- 4:58c50d72b423
done.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
blbl | 3:54a96adea9cd | 1 | #include "header.h" |
blbl | 3:54a96adea9cd | 2 | |
blbl | 3:54a96adea9cd | 3 | TS_StateTypeDef TS_State; |
blbl | 3:54a96adea9cd | 4 | |
blbl | 3:54a96adea9cd | 5 | void init_cellules(GRILLE G){ |
blbl | 3:54a96adea9cd | 6 | int demarrer=0; |
blbl | 3:54a96adea9cd | 7 | int x; |
blbl | 3:54a96adea9cd | 8 | int y; |
blbl | 3:54a96adea9cd | 9 | int l; |
blbl | 3:54a96adea9cd | 10 | int h; |
blbl | 3:54a96adea9cd | 11 | while(demarrer==0){ |
blbl | 3:54a96adea9cd | 12 | Affichagepxl2_debut(G); |
blbl | 3:54a96adea9cd | 13 | BSP_TS_GetState(&TS_State); |
blbl | 3:54a96adea9cd | 14 | if(TS_State.touchDetected==1){ |
blbl | 3:54a96adea9cd | 15 | BSP_TS_GetState(&TS_State); |
blbl | 3:54a96adea9cd | 16 | if (TS_State.touchX[0]>Gauche_bouton_demarrer && TS_State.touchY[0]<Bas_bouton_demarrer){ |
blbl | 3:54a96adea9cd | 17 | demarrer=1; |
blbl | 3:54a96adea9cd | 18 | } |
blbl | 3:54a96adea9cd | 19 | else{ |
blbl | 3:54a96adea9cd | 20 | BSP_TS_GetState(&TS_State); |
blbl | 3:54a96adea9cd | 21 | x = TS_State.touchX[0], |
blbl | 3:54a96adea9cd | 22 | BSP_TS_GetState(&TS_State); |
blbl | 3:54a96adea9cd | 23 | y = TS_State.touchY[0]; |
blbl | 3:54a96adea9cd | 24 | l = (x-1)/2 ; |
blbl | 3:54a96adea9cd | 25 | h = (y-1)/2 ; |
blbl | 3:54a96adea9cd | 26 | G[l][h]=1; |
blbl | 3:54a96adea9cd | 27 | Affichagepxl2_debut(G); |
blbl | 3:54a96adea9cd | 28 | } |
blbl | 3:54a96adea9cd | 29 | } |
blbl | 3:54a96adea9cd | 30 | G[11][11]=1; |
blbl | 3:54a96adea9cd | 31 | G[11][13]=1; |
blbl | 3:54a96adea9cd | 32 | G[14][11]=1; |
blbl | 3:54a96adea9cd | 33 | G[15][12]=1; |
blbl | 3:54a96adea9cd | 34 | G[15][13]=1; |
blbl | 3:54a96adea9cd | 35 | G[15][14]=1; |
blbl | 3:54a96adea9cd | 36 | G[12][14]=1; |
blbl | 3:54a96adea9cd | 37 | G[13][14]=1; |
blbl | 3:54a96adea9cd | 38 | G[14][14]=1; |
blbl | 3:54a96adea9cd | 39 | |
blbl | 3:54a96adea9cd | 40 | G[31][31]=1; |
blbl | 3:54a96adea9cd | 41 | G[31][32]=1; |
blbl | 3:54a96adea9cd | 42 | G[32][31]=1; |
blbl | 3:54a96adea9cd | 43 | G[32][32]=1; |
blbl | 3:54a96adea9cd | 44 | |
blbl | 3:54a96adea9cd | 45 | G[65][45]=1; |
blbl | 3:54a96adea9cd | 46 | G[65][46]=1; |
blbl | 3:54a96adea9cd | 47 | G[65][47]=1; |
blbl | 3:54a96adea9cd | 48 | } |
blbl | 3:54a96adea9cd | 49 | } |
blbl | 3:54a96adea9cd | 50 | |
blbl | 3:54a96adea9cd | 51 | |
blbl | 3:54a96adea9cd | 52 | |
blbl | 3:54a96adea9cd | 53 | |
blbl | 3:54a96adea9cd | 54 | |
blbl | 3:54a96adea9cd | 55 | void Changementetat(GRILLE G, GRILLE Gsomme) //réactualise les états des cases dans G en fonction des cases adjacentes dans Gsomme |
blbl | 3:54a96adea9cd | 56 | { |
blbl | 3:54a96adea9cd | 57 | int l; |
blbl | 3:54a96adea9cd | 58 | int h; |
blbl | 3:54a96adea9cd | 59 | for (l=0; l<LONGUEUR+1; l++) |
blbl | 3:54a96adea9cd | 60 | { |
blbl | 3:54a96adea9cd | 61 | for (h=0; h<HAUTEUR+1; h++) |
blbl | 3:54a96adea9cd | 62 | { |
blbl | 3:54a96adea9cd | 63 | if (G[l][h]==1) |
blbl | 3:54a96adea9cd | 64 | { |
blbl | 3:54a96adea9cd | 65 | if (Gsomme[l][h]<=CVA_VIVANT && Gsomme[l][h]>=CVA_MORT) //condition pour la survie d'une case |
blbl | 3:54a96adea9cd | 66 | { |
blbl | 3:54a96adea9cd | 67 | G[l][h]=1; |
blbl | 3:54a96adea9cd | 68 | } |
blbl | 3:54a96adea9cd | 69 | else //meurt d'isolement ou d'étouffement |
blbl | 3:54a96adea9cd | 70 | { |
blbl | 3:54a96adea9cd | 71 | G[l][h]=0; |
blbl | 3:54a96adea9cd | 72 | } |
blbl | 3:54a96adea9cd | 73 | } |
blbl | 3:54a96adea9cd | 74 | else if (G[l][h]==0) |
blbl | 3:54a96adea9cd | 75 | { |
blbl | 3:54a96adea9cd | 76 | if (Gsomme[l][h]==CVA_VIVANT) //passage a l'état vivant si la case est morte |
blbl | 3:54a96adea9cd | 77 | { |
blbl | 3:54a96adea9cd | 78 | G[l][h]=1; |
blbl | 3:54a96adea9cd | 79 | } |
blbl | 3:54a96adea9cd | 80 | else |
blbl | 3:54a96adea9cd | 81 | { |
blbl | 3:54a96adea9cd | 82 | G[l][h]=0; |
blbl | 3:54a96adea9cd | 83 | } |
blbl | 3:54a96adea9cd | 84 | } |
blbl | 3:54a96adea9cd | 85 | } |
blbl | 3:54a96adea9cd | 86 | } |
blbl | 3:54a96adea9cd | 87 | } |
blbl | 3:54a96adea9cd | 88 | |
blbl | 3:54a96adea9cd | 89 | void Affichagepxl2(GRILLE G) //surtout ne pas confondre les dimensions de l'écran avec les dimension du tableau des cases si on utilise des pixels 2x2 ou plus |
blbl | 3:54a96adea9cd | 90 | { |
blbl | 3:54a96adea9cd | 91 | int l; //longueur sur G |
blbl | 3:54a96adea9cd | 92 | int h; //hauteur sur H |
blbl | 3:54a96adea9cd | 93 | for (l=0; l<LONGUEUR+1; l++) |
blbl | 3:54a96adea9cd | 94 | { |
blbl | 3:54a96adea9cd | 95 | for (h=0; h<HAUTEUR+1; h++) |
blbl | 3:54a96adea9cd | 96 | { |
blbl | 3:54a96adea9cd | 97 | int x=(2*l)+1; //position sur l'écran x,y |
blbl | 3:54a96adea9cd | 98 | int y=(2*h)+1; |
blbl | 3:54a96adea9cd | 99 | if (G[l][h]==1){ |
blbl | 3:54a96adea9cd | 100 | BSP_LCD_DrawPixel(x,y,couleurvivante); |
blbl | 3:54a96adea9cd | 101 | BSP_LCD_DrawPixel(x+1,y,couleurvivante); |
blbl | 3:54a96adea9cd | 102 | BSP_LCD_DrawPixel(x,y+1,couleurvivante); |
blbl | 3:54a96adea9cd | 103 | BSP_LCD_DrawPixel(x+1,y+1,couleurvivante); |
blbl | 3:54a96adea9cd | 104 | } |
blbl | 3:54a96adea9cd | 105 | else if (G[l][h]==0){ |
blbl | 3:54a96adea9cd | 106 | BSP_LCD_DrawPixel(x,y,couleurmorte); |
blbl | 3:54a96adea9cd | 107 | BSP_LCD_DrawPixel(x+1,y,couleurmorte); |
blbl | 3:54a96adea9cd | 108 | BSP_LCD_DrawPixel(x,y+1,couleurmorte); |
blbl | 3:54a96adea9cd | 109 | BSP_LCD_DrawPixel(x+1,y+1,couleurmorte); |
blbl | 3:54a96adea9cd | 110 | } |
blbl | 3:54a96adea9cd | 111 | } |
blbl | 3:54a96adea9cd | 112 | } |
blbl | 3:54a96adea9cd | 113 | BSP_LCD_SetTextColor(couleur_stop); |
blbl | 3:54a96adea9cd | 114 | BSP_LCD_FillRect(Gauche_bouton_demarrer,0,Droit_bouton_continuer,Bas_bouton_demarrer); |
blbl | 3:54a96adea9cd | 115 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
blbl | 3:54a96adea9cd | 116 | BSP_LCD_DisplayStringAt(0,0, (uint8_t *)"STOP", RIGHT_MODE); |
blbl | 3:54a96adea9cd | 117 | } |
blbl | 3:54a96adea9cd | 118 | |
blbl | 3:54a96adea9cd | 119 | void Affichagepxl2_debut(GRILLE G) |
blbl | 3:54a96adea9cd | 120 | { |
blbl | 3:54a96adea9cd | 121 | int l; //longueur sur G |
blbl | 3:54a96adea9cd | 122 | int h; //hauteur sur H |
blbl | 3:54a96adea9cd | 123 | for (l=0; l<LONGUEUR+1; l++) |
blbl | 3:54a96adea9cd | 124 | { |
blbl | 3:54a96adea9cd | 125 | for (h=0; h<HAUTEUR+1; h++) |
blbl | 3:54a96adea9cd | 126 | { |
blbl | 3:54a96adea9cd | 127 | int x=(2*l)+1; //position sur l'écran x,y |
blbl | 3:54a96adea9cd | 128 | int y=(2*h)+1; |
blbl | 3:54a96adea9cd | 129 | if (G[l][h]==1){ |
blbl | 3:54a96adea9cd | 130 | BSP_LCD_DrawPixel(x,y,couleurvivante); |
blbl | 3:54a96adea9cd | 131 | BSP_LCD_DrawPixel(x+1,y,couleurvivante); |
blbl | 3:54a96adea9cd | 132 | BSP_LCD_DrawPixel(x,y+1,couleurvivante); |
blbl | 3:54a96adea9cd | 133 | BSP_LCD_DrawPixel(x+1,y+1,couleurvivante); |
blbl | 3:54a96adea9cd | 134 | } |
blbl | 3:54a96adea9cd | 135 | else if (G[l][h]==0){ |
blbl | 3:54a96adea9cd | 136 | BSP_LCD_DrawPixel(x,y,couleurmorte); |
blbl | 3:54a96adea9cd | 137 | BSP_LCD_DrawPixel(x+1,y,couleurmorte); |
blbl | 3:54a96adea9cd | 138 | BSP_LCD_DrawPixel(x,y+1,couleurmorte); |
blbl | 3:54a96adea9cd | 139 | BSP_LCD_DrawPixel(x+1,y+1,couleurmorte); |
blbl | 3:54a96adea9cd | 140 | } |
blbl | 3:54a96adea9cd | 141 | } |
blbl | 3:54a96adea9cd | 142 | } |
blbl | 3:54a96adea9cd | 143 | BSP_LCD_SetTextColor(couleur_demarrer); |
blbl | 3:54a96adea9cd | 144 | BSP_LCD_FillRect(Gauche_bouton_demarrer,0,Droit_bouton_continuer,Bas_bouton_demarrer); |
blbl | 3:54a96adea9cd | 145 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
blbl | 3:54a96adea9cd | 146 | BSP_LCD_DisplayStringAt(0,0, (uint8_t *)"START", RIGHT_MODE); |
blbl | 3:54a96adea9cd | 147 | } |
blbl | 3:54a96adea9cd | 148 | |
blbl | 3:54a96adea9cd | 149 | |
blbl | 3:54a96adea9cd | 150 | |
blbl | 3:54a96adea9cd | 151 | |
blbl | 3:54a96adea9cd | 152 | |
blbl | 3:54a96adea9cd | 153 | |
blbl | 3:54a96adea9cd | 154 | void Tabsomme(GRILLE G, GRILLE Gsomme) //réalisation du tableau des sommes a partir du tableau des états |
blbl | 3:54a96adea9cd | 155 | { |
blbl | 3:54a96adea9cd | 156 | int l; |
blbl | 3:54a96adea9cd | 157 | int h; |
blbl | 3:54a96adea9cd | 158 | for (l=0; l<LONGUEUR+1; l++) |
blbl | 3:54a96adea9cd | 159 | { |
blbl | 3:54a96adea9cd | 160 | for (h=0; h<HAUTEUR+1; h++) |
blbl | 3:54a96adea9cd | 161 | { |
blbl | 3:54a96adea9cd | 162 | if (l<LONGUEUR+1 && l>0 && h<HAUTEUR+1 && h>0) |
blbl | 3:54a96adea9cd | 163 | { |
blbl | 3:54a96adea9cd | 164 | Gsomme[l][h]=SommeADJcorps(G,l,h); |
blbl | 3:54a96adea9cd | 165 | } |
blbl | 3:54a96adea9cd | 166 | else if (((l==0)&&(h==HAUTEUR||h==0))||((l==LONGUEUR)&&(h==HAUTEUR||h==0))) |
blbl | 3:54a96adea9cd | 167 | { |
blbl | 3:54a96adea9cd | 168 | Gsomme[l][h]=SommeADJcoins(G,l,h); |
blbl | 3:54a96adea9cd | 169 | } |
blbl | 3:54a96adea9cd | 170 | else if ((l==0 && (h!=0 && h!=HAUTEUR))||(l==LONGUEUR && (h!=0 && h!=HAUTEUR))) |
blbl | 3:54a96adea9cd | 171 | { |
blbl | 3:54a96adea9cd | 172 | Gsomme[l][h]=SommeADJcoteslat(G,l,h); |
blbl | 3:54a96adea9cd | 173 | } |
blbl | 3:54a96adea9cd | 174 | else if ((h==0 && (l!=0 && l!=LONGUEUR))||(h==HAUTEUR && (l!=0 && l!=LONGUEUR))) |
blbl | 3:54a96adea9cd | 175 | { |
blbl | 3:54a96adea9cd | 176 | Gsomme[l][h]=SommeADJcoteslon(G,l,h); |
blbl | 3:54a96adea9cd | 177 | } |
blbl | 3:54a96adea9cd | 178 | |
blbl | 3:54a96adea9cd | 179 | |
blbl | 3:54a96adea9cd | 180 | } |
blbl | 3:54a96adea9cd | 181 | } |
blbl | 3:54a96adea9cd | 182 | } |
blbl | 3:54a96adea9cd | 183 | |
blbl | 3:54a96adea9cd | 184 | |
blbl | 3:54a96adea9cd | 185 | int SommeADJcorps(GRILLE G, int i, int h) // sous-fonction de Tabsomme qui gère les cases au centre du tableau (sans les cotés et les coins) |
blbl | 3:54a96adea9cd | 186 | { |
blbl | 3:54a96adea9cd | 187 | int s=0; |
blbl | 3:54a96adea9cd | 188 | s+=(G[i+1][h] + G[i-1][h]); |
blbl | 3:54a96adea9cd | 189 | s+=(G[i-1][h-1] + G[i][h-1] + G[i+1][h-1]); |
blbl | 3:54a96adea9cd | 190 | s+=(G[i-1][h+1] + G[i][h+1] + G[i+1][h+1]); |
blbl | 3:54a96adea9cd | 191 | return s; |
blbl | 3:54a96adea9cd | 192 | } |
blbl | 3:54a96adea9cd | 193 | |
blbl | 3:54a96adea9cd | 194 | int SommeADJcoteslat(GRILLE G,int i, int h) // sous-fonction de Tabsomme qui gère les cotés latéraux du tableau |
blbl | 3:54a96adea9cd | 195 | { |
blbl | 3:54a96adea9cd | 196 | if (i==0) |
blbl | 3:54a96adea9cd | 197 | { |
blbl | 3:54a96adea9cd | 198 | int s=0; |
blbl | 3:54a96adea9cd | 199 | s+=(G[i][h+1] + G[i][h-1]); |
blbl | 3:54a96adea9cd | 200 | s+=(G[i+1][h+1] + G[i+1][h-1] + G[i+1][h]); |
blbl | 3:54a96adea9cd | 201 | s+=(G[LONGUEUR][h+1] + G[LONGUEUR][h-1] + G[LONGUEUR][h]); |
blbl | 3:54a96adea9cd | 202 | return s; |
blbl | 3:54a96adea9cd | 203 | } |
blbl | 3:54a96adea9cd | 204 | if (i==LONGUEUR) |
blbl | 3:54a96adea9cd | 205 | { |
blbl | 3:54a96adea9cd | 206 | int s=0; |
blbl | 3:54a96adea9cd | 207 | s+=(G[i][h+1] + G[i][h-1]); |
blbl | 3:54a96adea9cd | 208 | s+=(G[i-1][h+1] + G[i-1][h-1] + G[i-1][h]); |
blbl | 3:54a96adea9cd | 209 | s+=(G[0][h+1] + G[0][h-1] + G[0][h]); |
blbl | 3:54a96adea9cd | 210 | return s; |
blbl | 3:54a96adea9cd | 211 | } |
blbl | 3:54a96adea9cd | 212 | return 0; |
blbl | 3:54a96adea9cd | 213 | } |
blbl | 3:54a96adea9cd | 214 | |
blbl | 3:54a96adea9cd | 215 | int SommeADJcoteslon(GRILLE G,int i, int h)// sous-fonction de Tabsomme qui gère les cotés en longueur du tableau |
blbl | 3:54a96adea9cd | 216 | { |
blbl | 3:54a96adea9cd | 217 | if (h==0) |
blbl | 3:54a96adea9cd | 218 | { |
blbl | 3:54a96adea9cd | 219 | int s=0; |
blbl | 3:54a96adea9cd | 220 | s+=(G[i+1][h] + G[i-1][h]); |
blbl | 3:54a96adea9cd | 221 | s+=(G[i-1][h+1] + G[i][h+1] + G[i+1][h+1]); |
blbl | 3:54a96adea9cd | 222 | s+=(G[i-1][HAUTEUR] + G[i][HAUTEUR] + G[i+1][HAUTEUR]); |
blbl | 3:54a96adea9cd | 223 | return s; |
blbl | 3:54a96adea9cd | 224 | } |
blbl | 3:54a96adea9cd | 225 | if (h==HAUTEUR) |
blbl | 3:54a96adea9cd | 226 | { |
blbl | 3:54a96adea9cd | 227 | int s=0; |
blbl | 3:54a96adea9cd | 228 | s+=(G[i+1][h] + G[i-1][h]); |
blbl | 3:54a96adea9cd | 229 | s+=(G[i-1][h+1] + G[i][h+1] + G[i+1][h+1]); |
blbl | 3:54a96adea9cd | 230 | s+=(G[i-1][0] + G[i][HAUTEUR] + G[i+1][HAUTEUR]); |
blbl | 3:54a96adea9cd | 231 | return s; |
blbl | 3:54a96adea9cd | 232 | } |
blbl | 3:54a96adea9cd | 233 | return 0; |
blbl | 3:54a96adea9cd | 234 | } |
blbl | 3:54a96adea9cd | 235 | |
blbl | 3:54a96adea9cd | 236 | |
blbl | 3:54a96adea9cd | 237 | int SommeADJcoins(GRILLE G, int i, int h) // sous-fonction de Tabsomme qui gère les coins du tableaux |
blbl | 3:54a96adea9cd | 238 | { |
blbl | 3:54a96adea9cd | 239 | int s=0; |
blbl | 3:54a96adea9cd | 240 | if (i==0) |
blbl | 3:54a96adea9cd | 241 | { |
blbl | 3:54a96adea9cd | 242 | if (h==0) //coin sup gauche |
blbl | 3:54a96adea9cd | 243 | { |
blbl | 3:54a96adea9cd | 244 | s+=(G[LONGUEUR][HAUTEUR]); |
blbl | 3:54a96adea9cd | 245 | s+=(G[1][0] + G[1][1] + G[0][1]); |
blbl | 3:54a96adea9cd | 246 | s+=(G[LONGUEUR][0] + G[LONGUEUR][1]); |
blbl | 3:54a96adea9cd | 247 | s+=(G[0][HAUTEUR] + G[1][HAUTEUR]); |
blbl | 3:54a96adea9cd | 248 | return s; |
blbl | 3:54a96adea9cd | 249 | } |
blbl | 3:54a96adea9cd | 250 | else if (h==HAUTEUR) //coin inf gauche |
blbl | 3:54a96adea9cd | 251 | { |
blbl | 3:54a96adea9cd | 252 | s+=(G[LONGUEUR][0]); |
blbl | 3:54a96adea9cd | 253 | s+=(G[0][HAUTEUR - 1] + G[1][HAUTEUR - 1] + G[1][HAUTEUR]); |
blbl | 3:54a96adea9cd | 254 | s+=(G[LONGUEUR][HAUTEUR -1] + G[LONGUEUR][HAUTEUR]); |
blbl | 3:54a96adea9cd | 255 | s+=(G[0][0] + G[1][0]); |
blbl | 3:54a96adea9cd | 256 | return s; |
blbl | 3:54a96adea9cd | 257 | } |
blbl | 3:54a96adea9cd | 258 | } |
blbl | 3:54a96adea9cd | 259 | else if (i==LONGUEUR) |
blbl | 3:54a96adea9cd | 260 | { |
blbl | 3:54a96adea9cd | 261 | if (h==0) //coin sup droit |
blbl | 3:54a96adea9cd | 262 | { |
blbl | 3:54a96adea9cd | 263 | s+=(G[0][HAUTEUR]); |
blbl | 3:54a96adea9cd | 264 | s+=(G[LONGUEUR - 1][0] + G[LONGUEUR - 1][0] + G[LONGUEUR - 1][1]); |
blbl | 3:54a96adea9cd | 265 | s+=(G[LONGUEUR][HAUTEUR] + G[LONGUEUR-1][HAUTEUR]); |
blbl | 3:54a96adea9cd | 266 | s+=(G[0][0] + G[0][1]); |
blbl | 3:54a96adea9cd | 267 | return s; |
blbl | 3:54a96adea9cd | 268 | } |
blbl | 3:54a96adea9cd | 269 | else if (h==HAUTEUR) //coin inf droit |
blbl | 3:54a96adea9cd | 270 | { |
blbl | 3:54a96adea9cd | 271 | s+=(G[0][0]); |
blbl | 3:54a96adea9cd | 272 | s+=(G[LONGUEUR - 1][HAUTEUR] + G[LONGUEUR - 1][HAUTEUR - 1] + G[LONGUEUR][HAUTEUR - 1]); |
blbl | 3:54a96adea9cd | 273 | s+=(G[LONGUEUR][0] + G[LONGUEUR - 1][0]); |
blbl | 3:54a96adea9cd | 274 | s+=(G[0][HAUTEUR] + G[0][HAUTEUR - 1]); |
blbl | 3:54a96adea9cd | 275 | return s; |
blbl | 3:54a96adea9cd | 276 | } |
blbl | 3:54a96adea9cd | 277 | } |
blbl | 3:54a96adea9cd | 278 | return 0; |
blbl | 3:54a96adea9cd | 279 | } |
blbl | 3:54a96adea9cd | 280 | |
blbl | 3:54a96adea9cd | 281 | |
blbl | 3:54a96adea9cd | 282 | |
blbl | 3:54a96adea9cd | 283 | void partie(GRILLE G,GRILLE Gsomme){ |
blbl | 3:54a96adea9cd | 284 | BSP_LCD_Clear(LCD_COLOR_BLACK); |
blbl | 3:54a96adea9cd | 285 | BSP_LCD_SetBackColor(LCD_COLOR_BLACK); |
blbl | 3:54a96adea9cd | 286 | Affichagepxl2(G); |
blbl | 3:54a96adea9cd | 287 | HAL_Delay(TEMPS_TOUR); |
blbl | 3:54a96adea9cd | 288 | int stop=0; |
blbl | 3:54a96adea9cd | 289 | while(stop==0){ |
blbl | 3:54a96adea9cd | 290 | HAL_Delay(TEMPS_TOUR); |
blbl | 3:54a96adea9cd | 291 | Tabsomme(G,Gsomme); |
blbl | 3:54a96adea9cd | 292 | Changementetat(G,Gsomme); |
blbl | 3:54a96adea9cd | 293 | Affichagepxl2(G); |
blbl | 3:54a96adea9cd | 294 | BSP_TS_GetState(&TS_State); |
blbl | 3:54a96adea9cd | 295 | if(TS_State.touchDetected != 0){ |
blbl | 3:54a96adea9cd | 296 | BSP_TS_GetState(&TS_State); |
blbl | 3:54a96adea9cd | 297 | if (TS_State.touchX[0]>Gauche_bouton_demarrer && TS_State.touchY[0]<Bas_bouton_demarrer){ |
blbl | 3:54a96adea9cd | 298 | stop=1; |
blbl | 3:54a96adea9cd | 299 | } |
blbl | 3:54a96adea9cd | 300 | } |
blbl | 3:54a96adea9cd | 301 | } |
blbl | 3:54a96adea9cd | 302 | } |
blbl | 3:54a96adea9cd | 303 | |
blbl | 3:54a96adea9cd | 304 | |
blbl | 3:54a96adea9cd | 305 | |
blbl | 3:54a96adea9cd | 306 | |
blbl | 3:54a96adea9cd | 307 | int fin_de_partie(GRILLE G,GRILLE Gsomme){ |
blbl | 3:54a96adea9cd | 308 | int rejouer=0; |
blbl | 3:54a96adea9cd | 309 | int continuer=0; |
blbl | 3:54a96adea9cd | 310 | BSP_LCD_SetTextColor(couleur_stop); |
blbl | 3:54a96adea9cd | 311 | BSP_LCD_FillRect(Gauche_bouton_demarrer,0,Droit_bouton_continuer,Bas_bouton_demarrer); |
blbl | 3:54a96adea9cd | 312 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
blbl | 3:54a96adea9cd | 313 | BSP_LCD_DisplayStringAt(0,0, (uint8_t *)"NEW TRY", RIGHT_MODE); |
blbl | 3:54a96adea9cd | 314 | BSP_LCD_SetTextColor(couleur_demarrer); |
blbl | 3:54a96adea9cd | 315 | BSP_LCD_FillRect(0,0,Droit_bouton_continuer,Bas_bouton_demarrer); |
blbl | 3:54a96adea9cd | 316 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
blbl | 3:54a96adea9cd | 317 | BSP_LCD_DisplayStringAt(0,0, (uint8_t *)"CONTINUE", LEFT_MODE); |
blbl | 3:54a96adea9cd | 318 | HAL_Delay(1000); |
blbl | 3:54a96adea9cd | 319 | while(1){ |
blbl | 3:54a96adea9cd | 320 | BSP_TS_GetState(&TS_State); |
blbl | 3:54a96adea9cd | 321 | if(TS_State.touchDetected==1){ |
blbl | 3:54a96adea9cd | 322 | BSP_TS_GetState(&TS_State); |
blbl | 3:54a96adea9cd | 323 | if (TS_State.touchX[0]<Droit_bouton_continuer && TS_State.touchY[0]<Bas_bouton_demarrer){ |
blbl | 3:54a96adea9cd | 324 | continuer=1; |
blbl | 3:54a96adea9cd | 325 | } |
blbl | 3:54a96adea9cd | 326 | else if (TS_State.touchX[0]>Gauche_bouton_demarrer && TS_State.touchY[0]<Bas_bouton_demarrer){ |
blbl | 3:54a96adea9cd | 327 | rejouer=1; |
blbl | 3:54a96adea9cd | 328 | } |
blbl | 3:54a96adea9cd | 329 | |
blbl | 3:54a96adea9cd | 330 | } |
blbl | 3:54a96adea9cd | 331 | if (continuer==1){ |
blbl | 3:54a96adea9cd | 332 | partie(G,Gsomme); |
blbl | 3:54a96adea9cd | 333 | fin_de_partie(G,Gsomme); |
blbl | 3:54a96adea9cd | 334 | } |
blbl | 3:54a96adea9cd | 335 | if (rejouer ==1){ |
blbl | 3:54a96adea9cd | 336 | break; |
blbl | 3:54a96adea9cd | 337 | } |
blbl | 3:54a96adea9cd | 338 | } |
blbl | 3:54a96adea9cd | 339 | return rejouer; |
blbl | 3:54a96adea9cd | 340 | } |
blbl | 3:54a96adea9cd | 341 | |
blbl | 3:54a96adea9cd | 342 | |
blbl | 3:54a96adea9cd | 343 | |
blbl | 3:54a96adea9cd | 344 | |
blbl | 3:54a96adea9cd | 345 | |
blbl | 3:54a96adea9cd | 346 | |
blbl | 3:54a96adea9cd | 347 | |
blbl | 3:54a96adea9cd | 348 | |
blbl | 3:54a96adea9cd | 349 | |
blbl | 3:54a96adea9cd | 350 | |
guillaume_m | 2:3e54ffabcc47 | 351 |