BastatDoreau / Mbed 2 deprecated MoveYourTetris

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

Committer:
Willheisen
Date:
Sun Apr 10 20:51:02 2016 +0000
Revision:
12:7afdbc7465ac
Parent:
11:c37922a0a915
Child:
13:336220ac9a8b
Tous les gestions de collisions OK!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
clementdoreau 1:ab5f440f4156 1 #include "cMatrice.h"
Willheisen 9:6f3d8b714a59 2 #include <algorithm>
Willheisen 9:6f3d8b714a59 3
Willheisen 9:6f3d8b714a59 4 // CONSTRUCTEURS
clementdoreau 1:ab5f440f4156 5
Willheisen 9:6f3d8b714a59 6 cMatrice::cMatrice()
Willheisen 9:6f3d8b714a59 7 {
Willheisen 9:6f3d8b714a59 8
Willheisen 9:6f3d8b714a59 9 }
clementdoreau 1:ab5f440f4156 10
Willheisen 9:6f3d8b714a59 11 cMatrice::cMatrice(unsigned char c, unsigned char l)
Willheisen 9:6f3d8b714a59 12 {
Willheisen 9:6f3d8b714a59 13 _lig = l;
Willheisen 9:6f3d8b714a59 14 _col = c;
Willheisen 9:6f3d8b714a59 15 _matrice = new unsigned char*[_lig];
Willheisen 11:c37922a0a915 16 for(unsigned char i = 0; i < _lig; i++) {
Willheisen 11:c37922a0a915 17 _matrice[i] = new unsigned char[_col];
Willheisen 11:c37922a0a915 18 }
Willheisen 11:c37922a0a915 19 clear();
Willheisen 9:6f3d8b714a59 20 }
clementdoreau 1:ab5f440f4156 21
Willheisen 9:6f3d8b714a59 22 // DESTRUCTEUR
Willheisen 9:6f3d8b714a59 23 cMatrice::~cMatrice()
Willheisen 9:6f3d8b714a59 24 {
Willheisen 11:c37922a0a915 25 for(unsigned char i = 0; i < _lig; i++) {
Willheisen 11:c37922a0a915 26 delete[] _matrice[i];
Willheisen 11:c37922a0a915 27 delete[] _matrice;
Willheisen 11:c37922a0a915 28 }
clementdoreau 1:ab5f440f4156 29 }
clementdoreau 1:ab5f440f4156 30
Willheisen 9:6f3d8b714a59 31 // GETTER
Willheisen 9:6f3d8b714a59 32 unsigned char cMatrice::getValTab(unsigned char l, unsigned char c)
Willheisen 9:6f3d8b714a59 33 {
Willheisen 9:6f3d8b714a59 34 return _matrice[l][c];
clementdoreau 1:ab5f440f4156 35 }
clementdoreau 1:ab5f440f4156 36
Willheisen 11:c37922a0a915 37 unsigned char cMatrice::getCol()
Willheisen 11:c37922a0a915 38 {
Willheisen 11:c37922a0a915 39 return _col;
Willheisen 9:6f3d8b714a59 40 }
clementdoreau 1:ab5f440f4156 41
Willheisen 11:c37922a0a915 42 unsigned char cMatrice::getLig()
Willheisen 11:c37922a0a915 43 {
Willheisen 11:c37922a0a915 44 return _lig;
Willheisen 9:6f3d8b714a59 45 }
Willheisen 3:493dd1cf30a4 46
Willheisen 11:c37922a0a915 47 cForme* cMatrice::get_pForme()
Willheisen 11:c37922a0a915 48 {
Willheisen 11:c37922a0a915 49 return _pForme;
Willheisen 11:c37922a0a915 50 }
clementdoreau 1:ab5f440f4156 51 // SETTER
clementdoreau 7:4b283e36b147 52
Willheisen 11:c37922a0a915 53 void cMatrice::setCol(unsigned char c)
Willheisen 11:c37922a0a915 54 {
Willheisen 11:c37922a0a915 55 _col = c;
Willheisen 9:6f3d8b714a59 56 }
clementdoreau 7:4b283e36b147 57
Willheisen 11:c37922a0a915 58 void cMatrice::setLig(unsigned char l)
Willheisen 11:c37922a0a915 59 {
Willheisen 11:c37922a0a915 60 _lig = l;
Willheisen 9:6f3d8b714a59 61 }
Willheisen 9:6f3d8b714a59 62
clementdoreau 7:4b283e36b147 63
Willheisen 9:6f3d8b714a59 64 // METHODES
clementdoreau 7:4b283e36b147 65
Willheisen 4:b7a46af55574 66 // Paramètres:
Willheisen 4:b7a46af55574 67 // f: Forme à afficher
Willheisen 4:b7a46af55574 68 // c: Couleur
clementdoreau 10:9ef3f520ff6c 69 void cMatrice::afficherForme(cForme* f, unsigned char c)
Willheisen 9:6f3d8b714a59 70 {
Willheisen 11:c37922a0a915 71 _pForme = f;
Willheisen 11:c37922a0a915 72 // Changement de couleur des Leds
Willheisen 9:6f3d8b714a59 73 for (int i = 0; i < 4; i++) {
Willheisen 11:c37922a0a915 74 _pForme->getLed(i).setCouleur(c);
clementdoreau 10:9ef3f520ff6c 75 _matrice[_pForme->getLed(i).getPositionX()][_pForme->getLed(i).getPositionY()] = c;
Willheisen 11:c37922a0a915 76
Willheisen 9:6f3d8b714a59 77 }
Willheisen 4:b7a46af55574 78 }
Willheisen 4:b7a46af55574 79
Willheisen 4:b7a46af55574 80
Willheisen 4:b7a46af55574 81 // Description:
Willheisen 4:b7a46af55574 82 // Nettoyage de la matrice, passage à 0 de la valeur de chaque Led
Willheisen 9:6f3d8b714a59 83 void cMatrice::clear()
Willheisen 9:6f3d8b714a59 84 {
Willheisen 11:c37922a0a915 85 for(unsigned char i = 0; i < _lig; i++) {
Willheisen 11:c37922a0a915 86 for(unsigned char j = 0; j < _col; j++) {
Willheisen 11:c37922a0a915 87 _matrice[i][j] = LED_NOIR;
Willheisen 11:c37922a0a915 88 }
Willheisen 11:c37922a0a915 89 }
Willheisen 11:c37922a0a915 90 _matrice[0][0] = LED_ROUGE;
Willheisen 4:b7a46af55574 91 }
clementdoreau 1:ab5f440f4156 92
Willheisen 11:c37922a0a915 93 void cMatrice::updateMatrice()
clementdoreau 10:9ef3f520ff6c 94 {
Willheisen 11:c37922a0a915 95 // On éteint les leds de la pièce
Willheisen 11:c37922a0a915 96 for (int i = 0; i < 4; i++) {
clementdoreau 10:9ef3f520ff6c 97 _matrice[_pForme->getLed(i).getOldPositionX()][_pForme->getLed(i).getOldPositionY()] = LED_NOIR;
clementdoreau 10:9ef3f520ff6c 98 }
clementdoreau 10:9ef3f520ff6c 99 // Affichage de la nouvelle position
Willheisen 11:c37922a0a915 100 afficherForme(_pForme, _pForme->getLed(0).getCouleur());
clementdoreau 10:9ef3f520ff6c 101 ///////////////////////////////////////////////////////////////////////////////////////////////
clementdoreau 10:9ef3f520ff6c 102 // Controle de la collision avec les bords
clementdoreau 10:9ef3f520ff6c 103 ///////////////////////////////////////////////////////////////////////////////////////////////
clementdoreau 10:9ef3f520ff6c 104 }
Willheisen 11:c37922a0a915 105
Willheisen 12:7afdbc7465ac 106 unsigned char cMatrice::verificationMvt(unsigned char mvt)
Willheisen 11:c37922a0a915 107 {
Willheisen 11:c37922a0a915 108 unsigned char result = 0;
Willheisen 12:7afdbc7465ac 109 ///////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 110 /////////////////////////////////////
Willheisen 11:c37922a0a915 111 Serial pc(USBTX, USBRX);
Willheisen 11:c37922a0a915 112
Willheisen 12:7afdbc7465ac 113 switch(mvt) {
Willheisen 12:7afdbc7465ac 114 case 'b': {
Willheisen 12:7afdbc7465ac 115 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 116 //POUR UNE LIGNE
Willheisen 12:7afdbc7465ac 117 if(_pForme->getTypeForme() == 0) {
Willheisen 11:c37922a0a915 118
Willheisen 12:7afdbc7465ac 119 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 120 //En orientation de base:
Willheisen 12:7afdbc7465ac 121 case 1: {
Willheisen 12:7afdbc7465ac 122 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 123 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 124 //Et si la LED en dessous de la LED 1 est noire
Willheisen 12:7afdbc7465ac 125 if(_matrice[_pForme->getLed(1).getPositionX()][_pForme->getLed(1).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 126 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 127 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 128 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 129 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 130 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 131 result = 1;
Willheisen 12:7afdbc7465ac 132 }
Willheisen 12:7afdbc7465ac 133 }
Willheisen 12:7afdbc7465ac 134 }
Willheisen 12:7afdbc7465ac 135 }
Willheisen 12:7afdbc7465ac 136 break;
Willheisen 12:7afdbc7465ac 137 }
Willheisen 12:7afdbc7465ac 138 //En orientation 2:
Willheisen 12:7afdbc7465ac 139 case 2: {
Willheisen 12:7afdbc7465ac 140 //Si la LED en dessous de la LED 3 est noire
Willheisen 11:c37922a0a915 141 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 11:c37922a0a915 142 //alors on peut descendre la piece
Willheisen 11:c37922a0a915 143 result = 1;
Willheisen 11:c37922a0a915 144 }
Willheisen 12:7afdbc7465ac 145 break;
Willheisen 11:c37922a0a915 146 }
Willheisen 12:7afdbc7465ac 147 //En orientation 3:
Willheisen 12:7afdbc7465ac 148 case 3: {
Willheisen 12:7afdbc7465ac 149 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 150 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 151 //Et si la LED en dessous de la LED 1 est noire
Willheisen 12:7afdbc7465ac 152 if(_matrice[_pForme->getLed(1).getPositionX()][_pForme->getLed(1).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 153 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 154 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 155 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 156 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 157 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 158 result = 1;
Willheisen 12:7afdbc7465ac 159 }
Willheisen 12:7afdbc7465ac 160 }
Willheisen 12:7afdbc7465ac 161 }
Willheisen 12:7afdbc7465ac 162 }
Willheisen 12:7afdbc7465ac 163 break;
Willheisen 12:7afdbc7465ac 164 }
Willheisen 12:7afdbc7465ac 165 //En orientation 4:
Willheisen 12:7afdbc7465ac 166 case 4: {
Willheisen 12:7afdbc7465ac 167 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 168 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 169 result = 1;
Willheisen 12:7afdbc7465ac 170 }
Willheisen 12:7afdbc7465ac 171 break;
Willheisen 12:7afdbc7465ac 172 }
Willheisen 12:7afdbc7465ac 173 }//fin switch
Willheisen 12:7afdbc7465ac 174 }//fin if
Willheisen 12:7afdbc7465ac 175
Willheisen 12:7afdbc7465ac 176 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 177 //POUR UN CARRE
Willheisen 12:7afdbc7465ac 178 if(_pForme->getTypeForme() == 1) {
Willheisen 12:7afdbc7465ac 179 //Si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 180 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 11:c37922a0a915 181 //Et si la LED en dessous de la LED 3 est noire
Willheisen 11:c37922a0a915 182 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 11:c37922a0a915 183 //alors on peut descendre la piece
Willheisen 11:c37922a0a915 184 result = 1;
Willheisen 11:c37922a0a915 185 }
Willheisen 12:7afdbc7465ac 186 }
Willheisen 12:7afdbc7465ac 187 }
Willheisen 12:7afdbc7465ac 188 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 189 //POUR UN Z
Willheisen 12:7afdbc7465ac 190 if(_pForme->getTypeForme() == 2) {
Willheisen 12:7afdbc7465ac 191 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 192 //En orientation de base:
Willheisen 12:7afdbc7465ac 193 case 1: {
Willheisen 12:7afdbc7465ac 194 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 195 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 196 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 197 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 198 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 199 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 200 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 201 result = 1;
Willheisen 12:7afdbc7465ac 202 }
Willheisen 12:7afdbc7465ac 203 }
Willheisen 12:7afdbc7465ac 204 }
Willheisen 12:7afdbc7465ac 205 break;
Willheisen 12:7afdbc7465ac 206 }
Willheisen 12:7afdbc7465ac 207 //En orientation 2:
Willheisen 12:7afdbc7465ac 208 case 2: {
Willheisen 12:7afdbc7465ac 209 //Si la LED en dessous de la LED 1 est noire
Willheisen 12:7afdbc7465ac 210 if(_matrice[_pForme->getLed(1).getPositionX()][_pForme->getLed(1).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 211 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 212 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 213 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 214 result = 1;
Willheisen 12:7afdbc7465ac 215 }
Willheisen 11:c37922a0a915 216
Willheisen 12:7afdbc7465ac 217 }
Willheisen 12:7afdbc7465ac 218 break;
Willheisen 12:7afdbc7465ac 219 }
Willheisen 12:7afdbc7465ac 220 //En orientation 3:
Willheisen 12:7afdbc7465ac 221 case 3: {
Willheisen 12:7afdbc7465ac 222 //Si la LED en dessous de la LED 1 est noire
Willheisen 12:7afdbc7465ac 223 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 224 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 225 if(_matrice[_pForme->getLed(1).getPositionX()][_pForme->getLed(1).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 226 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 227 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 228 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 229 result = 1;
Willheisen 12:7afdbc7465ac 230 }
Willheisen 12:7afdbc7465ac 231 }
Willheisen 12:7afdbc7465ac 232 }
Willheisen 12:7afdbc7465ac 233 break;
Willheisen 12:7afdbc7465ac 234 }
Willheisen 12:7afdbc7465ac 235 //En orientation 4:
Willheisen 12:7afdbc7465ac 236 case 4: {
Willheisen 12:7afdbc7465ac 237 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 238 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 239 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 240 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 241 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 242 result = 1;
Willheisen 12:7afdbc7465ac 243 }
Willheisen 12:7afdbc7465ac 244 }
Willheisen 12:7afdbc7465ac 245 break;
Willheisen 12:7afdbc7465ac 246 }
Willheisen 12:7afdbc7465ac 247 }
Willheisen 12:7afdbc7465ac 248 }
Willheisen 12:7afdbc7465ac 249 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 250 //POUR UN T
Willheisen 12:7afdbc7465ac 251 if(_pForme->getTypeForme() == 3) {
Willheisen 12:7afdbc7465ac 252
Willheisen 12:7afdbc7465ac 253 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 254 //En orientation de base:
Willheisen 12:7afdbc7465ac 255 case 1: {
Willheisen 12:7afdbc7465ac 256 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 257 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 258 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 259 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 260 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 261 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 262 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 263 result = 1;
Willheisen 12:7afdbc7465ac 264 }
Willheisen 12:7afdbc7465ac 265 }
Willheisen 12:7afdbc7465ac 266 }
Willheisen 12:7afdbc7465ac 267 break;
Willheisen 12:7afdbc7465ac 268 }
Willheisen 12:7afdbc7465ac 269 //En orientation 2:
Willheisen 12:7afdbc7465ac 270 case 2: {
Willheisen 12:7afdbc7465ac 271 //Si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 272 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 273 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 274 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 275 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 276 result = 1;
Willheisen 12:7afdbc7465ac 277 }
Willheisen 12:7afdbc7465ac 278
Willheisen 12:7afdbc7465ac 279 }
Willheisen 12:7afdbc7465ac 280 break;
Willheisen 12:7afdbc7465ac 281 }
Willheisen 12:7afdbc7465ac 282 //En orientation 3:
Willheisen 12:7afdbc7465ac 283 case 3: {
Willheisen 12:7afdbc7465ac 284 //Si la LED en dessous de la LED 1 est noire
Willheisen 12:7afdbc7465ac 285 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 286 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 287 if(_matrice[_pForme->getLed(1).getPositionX()][_pForme->getLed(1).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 288 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 289 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 290 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 291 result = 1;
Willheisen 12:7afdbc7465ac 292 }
Willheisen 12:7afdbc7465ac 293 }
Willheisen 12:7afdbc7465ac 294 }
Willheisen 12:7afdbc7465ac 295 break;
Willheisen 12:7afdbc7465ac 296 }
Willheisen 12:7afdbc7465ac 297 //En orientation 4:
Willheisen 12:7afdbc7465ac 298 case 4: {
Willheisen 12:7afdbc7465ac 299 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 300 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 301 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 302 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 303 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 304 result = 1;
Willheisen 12:7afdbc7465ac 305 }
Willheisen 12:7afdbc7465ac 306 }
Willheisen 12:7afdbc7465ac 307 break;
Willheisen 12:7afdbc7465ac 308 }
Willheisen 11:c37922a0a915 309 }
Willheisen 12:7afdbc7465ac 310 }
Willheisen 12:7afdbc7465ac 311 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 312 //POUR UN L
Willheisen 12:7afdbc7465ac 313 if(_pForme->getTypeForme() == 4) {
Willheisen 12:7afdbc7465ac 314
Willheisen 12:7afdbc7465ac 315 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 316 //En orientation de base:
Willheisen 12:7afdbc7465ac 317 case 1: {
Willheisen 12:7afdbc7465ac 318 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 319 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 320 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 321 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 322 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 323 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 324 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 325 result = 1;
Willheisen 12:7afdbc7465ac 326 }
Willheisen 12:7afdbc7465ac 327 }
Willheisen 12:7afdbc7465ac 328 }
Willheisen 12:7afdbc7465ac 329 break;
Willheisen 12:7afdbc7465ac 330 }
Willheisen 12:7afdbc7465ac 331 //En orientation 2:
Willheisen 12:7afdbc7465ac 332 case 2: {
Willheisen 12:7afdbc7465ac 333 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 334 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 335 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 336 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 337 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 338 result = 1;
Willheisen 12:7afdbc7465ac 339 }
Willheisen 12:7afdbc7465ac 340 }
Willheisen 12:7afdbc7465ac 341 break;
Willheisen 12:7afdbc7465ac 342 }
Willheisen 12:7afdbc7465ac 343 //En orientation 3:
Willheisen 12:7afdbc7465ac 344 case 3: {
Willheisen 12:7afdbc7465ac 345 //Si la LED en dessous de la LED 1 est noire
Willheisen 12:7afdbc7465ac 346 if(_matrice[_pForme->getLed(1).getPositionX()][_pForme->getLed(1).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 347 //Et si la LED en dessous de la LED 2 est noire
Willheisen 12:7afdbc7465ac 348 if(_matrice[_pForme->getLed(2).getPositionX()][_pForme->getLed(2).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 349 //Et si la LED en dessous de la LED 3 est noire
Willheisen 12:7afdbc7465ac 350 if(_matrice[_pForme->getLed(3).getPositionX()][_pForme->getLed(3).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 351 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 352 result = 1;
Willheisen 12:7afdbc7465ac 353 }
Willheisen 12:7afdbc7465ac 354 }
Willheisen 12:7afdbc7465ac 355 }
Willheisen 12:7afdbc7465ac 356 break;
Willheisen 12:7afdbc7465ac 357 }
Willheisen 12:7afdbc7465ac 358 //En orientation 4:
Willheisen 12:7afdbc7465ac 359 case 4: {
Willheisen 12:7afdbc7465ac 360 //Si la LED en dessous de la LED 0 est noire
Willheisen 12:7afdbc7465ac 361 if(_matrice[_pForme->getLed(0).getPositionX()][_pForme->getLed(0).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 362 //Et si la LED en dessous de la LED 1 est noire
Willheisen 12:7afdbc7465ac 363 if(_matrice[_pForme->getLed(1).getPositionX()][_pForme->getLed(1).getPositionY() + 1] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 364 //alors on peut descendre la piece
Willheisen 12:7afdbc7465ac 365 result = 1;
Willheisen 12:7afdbc7465ac 366 }
Willheisen 12:7afdbc7465ac 367 }
Willheisen 12:7afdbc7465ac 368 break;
Willheisen 12:7afdbc7465ac 369 }
Willheisen 12:7afdbc7465ac 370 }
Willheisen 12:7afdbc7465ac 371 }
Willheisen 12:7afdbc7465ac 372 break;
Willheisen 12:7afdbc7465ac 373 }
Willheisen 12:7afdbc7465ac 374 //Pour translater une pièce vers la droite
Willheisen 12:7afdbc7465ac 375 case 'd': {
Willheisen 12:7afdbc7465ac 376 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 377 //POUR UNE LIGNE
Willheisen 12:7afdbc7465ac 378 if(_pForme->getTypeForme() == 0) {
Willheisen 12:7afdbc7465ac 379
Willheisen 12:7afdbc7465ac 380 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 381 //En orientation de base:
Willheisen 12:7afdbc7465ac 382 case 1: {
Willheisen 12:7afdbc7465ac 383 //Si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 384 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 385 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 386 result = 1;
Willheisen 12:7afdbc7465ac 387 }
Willheisen 12:7afdbc7465ac 388 break;
Willheisen 12:7afdbc7465ac 389 }
Willheisen 12:7afdbc7465ac 390 //En orientation 2:
Willheisen 12:7afdbc7465ac 391 case 2: {
Willheisen 12:7afdbc7465ac 392 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 393 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 394 //Et si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 395 if(_matrice[_pForme->getLed(1).getPositionX() + 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 396 //Et si la LED à droite de la LED 2 est noire
Willheisen 12:7afdbc7465ac 397 if(_matrice[_pForme->getLed(2).getPositionX() + 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 398 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 399 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 400 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 401 result = 1;
Willheisen 12:7afdbc7465ac 402 }
Willheisen 12:7afdbc7465ac 403 }
Willheisen 12:7afdbc7465ac 404 }
Willheisen 12:7afdbc7465ac 405 }
Willheisen 12:7afdbc7465ac 406 break;
Willheisen 12:7afdbc7465ac 407 }
Willheisen 12:7afdbc7465ac 408 //En orientation 3:
Willheisen 12:7afdbc7465ac 409 case 3: {
Willheisen 12:7afdbc7465ac 410 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 411 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 412 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 413 result = 1;
Willheisen 12:7afdbc7465ac 414 }
Willheisen 12:7afdbc7465ac 415 break;
Willheisen 12:7afdbc7465ac 416 }
Willheisen 12:7afdbc7465ac 417 //En orientation 4:
Willheisen 12:7afdbc7465ac 418 case 4: {
Willheisen 12:7afdbc7465ac 419 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 420 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 421 //Et si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 422 if(_matrice[_pForme->getLed(1).getPositionX() + 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 423 //Et si la LED à droite de la LED 2 est noire
Willheisen 12:7afdbc7465ac 424 if(_matrice[_pForme->getLed(2).getPositionX() + 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 425 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 426 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 427 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 428 result = 1;
Willheisen 12:7afdbc7465ac 429 }
Willheisen 12:7afdbc7465ac 430 }
Willheisen 12:7afdbc7465ac 431 }
Willheisen 12:7afdbc7465ac 432 }
Willheisen 12:7afdbc7465ac 433 break;
Willheisen 12:7afdbc7465ac 434 }
Willheisen 12:7afdbc7465ac 435 }
Willheisen 12:7afdbc7465ac 436 }
Willheisen 12:7afdbc7465ac 437 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 438 //POUR UN CARRE
Willheisen 12:7afdbc7465ac 439 if(_pForme->getTypeForme() == 1) {
Willheisen 12:7afdbc7465ac 440 //Si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 441 if(_matrice[_pForme->getLed(1).getPositionX() + 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 442 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 443 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 444 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 445 result = 1;
Willheisen 12:7afdbc7465ac 446 }
Willheisen 12:7afdbc7465ac 447 }
Willheisen 11:c37922a0a915 448 }
Willheisen 12:7afdbc7465ac 449 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 450 //POUR UN Z
Willheisen 12:7afdbc7465ac 451 if(_pForme->getTypeForme() == 2) {
Willheisen 12:7afdbc7465ac 452
Willheisen 12:7afdbc7465ac 453 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 454 //En orientation de base:
Willheisen 12:7afdbc7465ac 455 case 1: {
Willheisen 12:7afdbc7465ac 456 //Si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 457 if(_matrice[_pForme->getLed(1).getPositionX() + 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 458 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 459 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 460 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 461 result = 1;
Willheisen 12:7afdbc7465ac 462 }
Willheisen 12:7afdbc7465ac 463 }
Willheisen 12:7afdbc7465ac 464 break;
Willheisen 12:7afdbc7465ac 465 }
Willheisen 12:7afdbc7465ac 466 //En orientation 2:
Willheisen 12:7afdbc7465ac 467 case 2: {
Willheisen 12:7afdbc7465ac 468 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 469 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 470 //Et si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 471 if(_matrice[_pForme->getLed(1).getPositionX() + 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 472 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 473 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 474 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 475 result = 1;
Willheisen 12:7afdbc7465ac 476 }
Willheisen 12:7afdbc7465ac 477 }
Willheisen 12:7afdbc7465ac 478 }
Willheisen 12:7afdbc7465ac 479 break;
Willheisen 12:7afdbc7465ac 480 }
Willheisen 12:7afdbc7465ac 481 //En orientation 3:
Willheisen 12:7afdbc7465ac 482 case 3: {
Willheisen 12:7afdbc7465ac 483 //Si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 484 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 485 //Et si la LED à droite de la LED 2 est noire
Willheisen 12:7afdbc7465ac 486 if(_matrice[_pForme->getLed(2).getPositionX() + 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 487 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 488 result = 1;
Willheisen 12:7afdbc7465ac 489 }
Willheisen 12:7afdbc7465ac 490 }
Willheisen 12:7afdbc7465ac 491 break;
Willheisen 12:7afdbc7465ac 492 }
Willheisen 12:7afdbc7465ac 493 //En orientation 4:
Willheisen 12:7afdbc7465ac 494 case 4: {
Willheisen 12:7afdbc7465ac 495 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 496 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 497 //Et si la LED à droite de la LED 2 est noire
Willheisen 12:7afdbc7465ac 498 if(_matrice[_pForme->getLed(2).getPositionX() + 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 499 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 500 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 501 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 502 result = 1;
Willheisen 12:7afdbc7465ac 503 }
Willheisen 12:7afdbc7465ac 504 }
Willheisen 12:7afdbc7465ac 505 }
Willheisen 12:7afdbc7465ac 506 break;
Willheisen 12:7afdbc7465ac 507 }
Willheisen 12:7afdbc7465ac 508 }
Willheisen 12:7afdbc7465ac 509 }
Willheisen 12:7afdbc7465ac 510 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 511 //POUR UN T
Willheisen 12:7afdbc7465ac 512 if(_pForme->getTypeForme() == 3) {
Willheisen 12:7afdbc7465ac 513
Willheisen 12:7afdbc7465ac 514 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 515 //En orientation de base:
Willheisen 12:7afdbc7465ac 516 case 1: {
Willheisen 12:7afdbc7465ac 517 //Si la LED à droite de la LED 2 est noire
Willheisen 12:7afdbc7465ac 518 if(_matrice[_pForme->getLed(2).getPositionX() + 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 519 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 520 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 521 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 522 result = 1;
Willheisen 12:7afdbc7465ac 523 }
Willheisen 12:7afdbc7465ac 524
Willheisen 12:7afdbc7465ac 525 }
Willheisen 12:7afdbc7465ac 526 break;
Willheisen 12:7afdbc7465ac 527 }
Willheisen 12:7afdbc7465ac 528 //En orientation 2:
Willheisen 12:7afdbc7465ac 529 case 2: {
Willheisen 12:7afdbc7465ac 530 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 531 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 532 //Et si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 533 if(_matrice[_pForme->getLed(1).getPositionX() + 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 534 //Et si la LED à droite de la LED 2 est noire
Willheisen 12:7afdbc7465ac 535 if(_matrice[_pForme->getLed(2).getPositionX() + 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 536 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 537 result = 1;
Willheisen 12:7afdbc7465ac 538 }
Willheisen 12:7afdbc7465ac 539 }
Willheisen 12:7afdbc7465ac 540 }
Willheisen 12:7afdbc7465ac 541 break;
Willheisen 12:7afdbc7465ac 542 }
Willheisen 12:7afdbc7465ac 543 //En orientation 3:
Willheisen 12:7afdbc7465ac 544 case 3: {
Willheisen 12:7afdbc7465ac 545 //Si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 546 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 547 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 548 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 549 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 550 result = 1;
Willheisen 12:7afdbc7465ac 551 }
Willheisen 12:7afdbc7465ac 552
Willheisen 12:7afdbc7465ac 553 }
Willheisen 12:7afdbc7465ac 554 break;
Willheisen 12:7afdbc7465ac 555 }
Willheisen 12:7afdbc7465ac 556 //En orientation 4:
Willheisen 12:7afdbc7465ac 557 case 4: {
Willheisen 12:7afdbc7465ac 558 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 559 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 560 //Et si la LED à droite de la LED 2 est noire
Willheisen 12:7afdbc7465ac 561 if(_matrice[_pForme->getLed(2).getPositionX() + 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 562 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 563 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 564 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 565 result = 1;
Willheisen 12:7afdbc7465ac 566 }
Willheisen 12:7afdbc7465ac 567 }
Willheisen 12:7afdbc7465ac 568 }
Willheisen 12:7afdbc7465ac 569 break;
Willheisen 12:7afdbc7465ac 570 }
Willheisen 12:7afdbc7465ac 571 }
Willheisen 12:7afdbc7465ac 572 }
Willheisen 12:7afdbc7465ac 573 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 574 //POUR UN L
Willheisen 12:7afdbc7465ac 575 if(_pForme->getTypeForme() == 4) {
Willheisen 12:7afdbc7465ac 576 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 577 //En orientation de base:
Willheisen 12:7afdbc7465ac 578 case 1: {
Willheisen 12:7afdbc7465ac 579 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 580 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 581 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 582 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 583 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 584 result = 1;
Willheisen 12:7afdbc7465ac 585 }
Willheisen 12:7afdbc7465ac 586 }
Willheisen 12:7afdbc7465ac 587 break;
Willheisen 12:7afdbc7465ac 588 }
Willheisen 12:7afdbc7465ac 589 //En orientation 2:
Willheisen 12:7afdbc7465ac 590 case 2: {
Willheisen 12:7afdbc7465ac 591 //Si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 592 if(_matrice[_pForme->getLed(1).getPositionX() + 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 593 //Et si la LED à droite de la LED 2 est noire
Willheisen 12:7afdbc7465ac 594 if(_matrice[_pForme->getLed(2).getPositionX() + 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 595 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 596 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 597 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 598 result = 1;
Willheisen 12:7afdbc7465ac 599 }
Willheisen 12:7afdbc7465ac 600 }
Willheisen 12:7afdbc7465ac 601 }
Willheisen 12:7afdbc7465ac 602 break;
Willheisen 12:7afdbc7465ac 603 }
Willheisen 12:7afdbc7465ac 604 //En orientation 3:
Willheisen 12:7afdbc7465ac 605 case 3: {
Willheisen 12:7afdbc7465ac 606 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 607 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 608 //Et si la LED à droite de la LED 1 est noire
Willheisen 12:7afdbc7465ac 609 if(_matrice[_pForme->getLed(1).getPositionX() + 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 610 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 611 result = 1;
Willheisen 12:7afdbc7465ac 612 }
Willheisen 12:7afdbc7465ac 613 }
Willheisen 12:7afdbc7465ac 614 break;
Willheisen 12:7afdbc7465ac 615 }
Willheisen 12:7afdbc7465ac 616 //En orientation 4:
Willheisen 12:7afdbc7465ac 617 case 4: {
Willheisen 12:7afdbc7465ac 618 //Si la LED à droite de la LED 0 est noire
Willheisen 12:7afdbc7465ac 619 if(_matrice[_pForme->getLed(0).getPositionX() + 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 620 //Et si la LED à droite de la LED 2 est noire
Willheisen 12:7afdbc7465ac 621 if(_matrice[_pForme->getLed(2).getPositionX() + 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 622 //Et si la LED à droite de la LED 3 est noire
Willheisen 12:7afdbc7465ac 623 if(_matrice[_pForme->getLed(3).getPositionX() + 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 624 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 625 result = 1;
Willheisen 12:7afdbc7465ac 626 }
Willheisen 12:7afdbc7465ac 627 }
Willheisen 12:7afdbc7465ac 628 }
Willheisen 12:7afdbc7465ac 629 break;
Willheisen 12:7afdbc7465ac 630 }
Willheisen 12:7afdbc7465ac 631 }//switch L
Willheisen 12:7afdbc7465ac 632 }//if L
Willheisen 12:7afdbc7465ac 633
Willheisen 12:7afdbc7465ac 634 break;
Willheisen 12:7afdbc7465ac 635 }
Willheisen 12:7afdbc7465ac 636 //Pour translater une pièce vers la gauche
Willheisen 12:7afdbc7465ac 637 case 'g': {
Willheisen 12:7afdbc7465ac 638 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 639 //POUR UNE LIGNE
Willheisen 12:7afdbc7465ac 640 if(_pForme->getTypeForme() == 0) {
Willheisen 12:7afdbc7465ac 641
Willheisen 12:7afdbc7465ac 642 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 643 //En orientation de base:
Willheisen 12:7afdbc7465ac 644 case 1: {
Willheisen 12:7afdbc7465ac 645 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 646 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 647 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 648 result = 1;
Willheisen 12:7afdbc7465ac 649 }
Willheisen 12:7afdbc7465ac 650 break;
Willheisen 12:7afdbc7465ac 651 }
Willheisen 12:7afdbc7465ac 652 //En orientation 2:
Willheisen 12:7afdbc7465ac 653 case 2: {
Willheisen 12:7afdbc7465ac 654 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 655 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 656 //Et si la LED à gauche de la LED 1 est noire
Willheisen 12:7afdbc7465ac 657 if(_matrice[_pForme->getLed(1).getPositionX() - 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 658 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 659 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 660 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 661 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 662 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 663 result = 1;
Willheisen 12:7afdbc7465ac 664 }
Willheisen 12:7afdbc7465ac 665 }
Willheisen 12:7afdbc7465ac 666 }
Willheisen 12:7afdbc7465ac 667 }
Willheisen 12:7afdbc7465ac 668 break;
Willheisen 12:7afdbc7465ac 669 }
Willheisen 12:7afdbc7465ac 670 //En orientation 3:
Willheisen 12:7afdbc7465ac 671 case 3: {
Willheisen 12:7afdbc7465ac 672 //Si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 673 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 674 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 675 result = 1;
Willheisen 12:7afdbc7465ac 676 }
Willheisen 12:7afdbc7465ac 677 break;
Willheisen 12:7afdbc7465ac 678 }
Willheisen 12:7afdbc7465ac 679 //En orientation 4:
Willheisen 12:7afdbc7465ac 680 case 4: {
Willheisen 12:7afdbc7465ac 681 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 682 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 683 //Et si la LED à gauche de la LED 1 est noire
Willheisen 12:7afdbc7465ac 684 if(_matrice[_pForme->getLed(1).getPositionX() - 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 685 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 686 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 687 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 688 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 689 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 690 result = 1;
Willheisen 12:7afdbc7465ac 691 }
Willheisen 12:7afdbc7465ac 692 }
Willheisen 12:7afdbc7465ac 693 }
Willheisen 12:7afdbc7465ac 694 }
Willheisen 12:7afdbc7465ac 695 break;
Willheisen 12:7afdbc7465ac 696 }
Willheisen 12:7afdbc7465ac 697 }
Willheisen 12:7afdbc7465ac 698 }
Willheisen 12:7afdbc7465ac 699 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 700 //POUR UN CARRE
Willheisen 12:7afdbc7465ac 701 if(_pForme->getTypeForme() == 1) {
Willheisen 12:7afdbc7465ac 702 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 703 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 704 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 705 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 706 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 707 result = 1;
Willheisen 12:7afdbc7465ac 708 }
Willheisen 12:7afdbc7465ac 709 }
Willheisen 12:7afdbc7465ac 710 }
Willheisen 12:7afdbc7465ac 711 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 712 //POUR UN Z
Willheisen 12:7afdbc7465ac 713 if(_pForme->getTypeForme() == 2) {
Willheisen 12:7afdbc7465ac 714
Willheisen 12:7afdbc7465ac 715 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 716 //En orientation de base:
Willheisen 12:7afdbc7465ac 717 case 1: {
Willheisen 12:7afdbc7465ac 718 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 719 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 720 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 721 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 722 //alors on peut translater la piece
Willheisen 11:c37922a0a915 723 result = 1;
Willheisen 11:c37922a0a915 724 }
Willheisen 11:c37922a0a915 725 }
Willheisen 12:7afdbc7465ac 726 break;
Willheisen 11:c37922a0a915 727 }
Willheisen 12:7afdbc7465ac 728 //En orientation 2:
Willheisen 12:7afdbc7465ac 729 case 2: {
Willheisen 12:7afdbc7465ac 730 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 731 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 732 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 733 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 734 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 735 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 736 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 737 result = 1;
Willheisen 12:7afdbc7465ac 738 }
Willheisen 12:7afdbc7465ac 739 }
Willheisen 12:7afdbc7465ac 740 }
Willheisen 12:7afdbc7465ac 741 break;
Willheisen 12:7afdbc7465ac 742 }
Willheisen 12:7afdbc7465ac 743 //En orientation 3:
Willheisen 12:7afdbc7465ac 744 case 3: {
Willheisen 12:7afdbc7465ac 745 //Si la LED à gauche de la LED 1 est noire
Willheisen 12:7afdbc7465ac 746 if(_matrice[_pForme->getLed(1).getPositionX() - 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 747 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 748 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 749 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 750 result = 1;
Willheisen 12:7afdbc7465ac 751 }
Willheisen 12:7afdbc7465ac 752 }
Willheisen 12:7afdbc7465ac 753 break;
Willheisen 12:7afdbc7465ac 754 }
Willheisen 12:7afdbc7465ac 755 //En orientation 4:
Willheisen 12:7afdbc7465ac 756 case 4: {
Willheisen 12:7afdbc7465ac 757 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 758 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 759 //Et si la LED à gauche de la LED 1 est noire
Willheisen 12:7afdbc7465ac 760 if(_matrice[_pForme->getLed(1).getPositionX() - 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 761 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 762 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 763 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 764 result = 1;
Willheisen 12:7afdbc7465ac 765 }
Willheisen 12:7afdbc7465ac 766 }
Willheisen 12:7afdbc7465ac 767 }
Willheisen 12:7afdbc7465ac 768 break;
Willheisen 12:7afdbc7465ac 769 }
Willheisen 11:c37922a0a915 770 }
Willheisen 12:7afdbc7465ac 771 }
Willheisen 12:7afdbc7465ac 772 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 773 //POUR UN T
Willheisen 12:7afdbc7465ac 774 if(_pForme->getTypeForme() == 3) {
Willheisen 12:7afdbc7465ac 775
Willheisen 12:7afdbc7465ac 776 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 777 //En orientation de base:
Willheisen 12:7afdbc7465ac 778 case 1: {
Willheisen 12:7afdbc7465ac 779 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 780 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 781 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 782 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 783 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 784 result = 1;
Willheisen 12:7afdbc7465ac 785 }
Willheisen 12:7afdbc7465ac 786 }
Willheisen 12:7afdbc7465ac 787 break;
Willheisen 12:7afdbc7465ac 788 }
Willheisen 12:7afdbc7465ac 789 //En orientation 2:
Willheisen 12:7afdbc7465ac 790 case 2: {
Willheisen 12:7afdbc7465ac 791 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 792 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 793 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 794 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 795 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 796 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 797 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 798 result = 1;
Willheisen 12:7afdbc7465ac 799 }
Willheisen 12:7afdbc7465ac 800 }
Willheisen 12:7afdbc7465ac 801 }
Willheisen 12:7afdbc7465ac 802 break;
Willheisen 12:7afdbc7465ac 803 }
Willheisen 12:7afdbc7465ac 804 //En orientation 3:
Willheisen 12:7afdbc7465ac 805 case 3: {
Willheisen 12:7afdbc7465ac 806 //Si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 807 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 808 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 809 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 810 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 811 result = 1;
Willheisen 12:7afdbc7465ac 812 }
Willheisen 12:7afdbc7465ac 813
Willheisen 12:7afdbc7465ac 814 }
Willheisen 12:7afdbc7465ac 815 break;
Willheisen 12:7afdbc7465ac 816 }
Willheisen 12:7afdbc7465ac 817 //En orientation 4:
Willheisen 12:7afdbc7465ac 818 case 4: {
Willheisen 12:7afdbc7465ac 819 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 820 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 821 //Et si la LED à gauche de la LED 1 est noire
Willheisen 12:7afdbc7465ac 822 if(_matrice[_pForme->getLed(1).getPositionX() - 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 823 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 824 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 825 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 826 result = 1;
Willheisen 12:7afdbc7465ac 827 }
Willheisen 12:7afdbc7465ac 828 }
Willheisen 11:c37922a0a915 829 }
Willheisen 12:7afdbc7465ac 830 break;
Willheisen 11:c37922a0a915 831 }
Willheisen 11:c37922a0a915 832 }
Willheisen 11:c37922a0a915 833 }
Willheisen 12:7afdbc7465ac 834 ///////////////////////////////////////////////////////////////////////////////////
Willheisen 12:7afdbc7465ac 835 //POUR UN L
Willheisen 12:7afdbc7465ac 836 if(_pForme->getTypeForme() == 4) {
Willheisen 12:7afdbc7465ac 837 switch(_pForme->getOrientation()) {
Willheisen 12:7afdbc7465ac 838 //En orientation de base:
Willheisen 12:7afdbc7465ac 839 case 1: {
Willheisen 12:7afdbc7465ac 840 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 841 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 842 //Et si la LED à gauche de la LED 1 est noire
Willheisen 12:7afdbc7465ac 843 if(_matrice[_pForme->getLed(1).getPositionX() - 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 844 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 845 result = 1;
Willheisen 12:7afdbc7465ac 846 }
Willheisen 12:7afdbc7465ac 847 }
Willheisen 12:7afdbc7465ac 848 break;
Willheisen 12:7afdbc7465ac 849 }
Willheisen 12:7afdbc7465ac 850 //En orientation 2:
Willheisen 12:7afdbc7465ac 851 case 2: {
Willheisen 12:7afdbc7465ac 852 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 853 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 854 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 855 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 856 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 857 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 858 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 859 result = 1;
Willheisen 12:7afdbc7465ac 860 }
Willheisen 12:7afdbc7465ac 861 }
Willheisen 12:7afdbc7465ac 862 break;
Willheisen 12:7afdbc7465ac 863 }
Willheisen 12:7afdbc7465ac 864 //En orientation 3:
Willheisen 12:7afdbc7465ac 865 case 3: {
Willheisen 12:7afdbc7465ac 866 //Si la LED à gauche de la LED 0 est noire
Willheisen 12:7afdbc7465ac 867 if(_matrice[_pForme->getLed(0).getPositionX() - 1][_pForme->getLed(0).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 868 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 869 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 870 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 871 result = 1;
Willheisen 12:7afdbc7465ac 872 }
Willheisen 12:7afdbc7465ac 873 }
Willheisen 12:7afdbc7465ac 874 break;
Willheisen 12:7afdbc7465ac 875 }
Willheisen 12:7afdbc7465ac 876 //En orientation 4:
Willheisen 12:7afdbc7465ac 877 case 4: {
Willheisen 12:7afdbc7465ac 878 //Si la LED à gauche de la LED 1 est noire
Willheisen 12:7afdbc7465ac 879 if(_matrice[_pForme->getLed(1).getPositionX() - 1][_pForme->getLed(1).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 880 //Et si la LED à gauche de la LED 2 est noire
Willheisen 12:7afdbc7465ac 881 if(_matrice[_pForme->getLed(2).getPositionX() - 1][_pForme->getLed(2).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 882 //Et si la LED à gauche de la LED 3 est noire
Willheisen 12:7afdbc7465ac 883 if(_matrice[_pForme->getLed(3).getPositionX() - 1][_pForme->getLed(3).getPositionY()] == LED_NOIR) {
Willheisen 12:7afdbc7465ac 884 //alors on peut translater la piece
Willheisen 12:7afdbc7465ac 885 result = 1;
Willheisen 12:7afdbc7465ac 886 }
Willheisen 12:7afdbc7465ac 887 }
Willheisen 12:7afdbc7465ac 888 }
Willheisen 12:7afdbc7465ac 889 break;
Willheisen 12:7afdbc7465ac 890 }
Willheisen 12:7afdbc7465ac 891 }//switch L
Willheisen 12:7afdbc7465ac 892 }//if L
Willheisen 12:7afdbc7465ac 893 }
Willheisen 12:7afdbc7465ac 894 break;
Willheisen 12:7afdbc7465ac 895 }
Willheisen 11:c37922a0a915 896 }
Willheisen 11:c37922a0a915 897 pc.printf("%d\n", result);
Willheisen 11:c37922a0a915 898 return result;
Willheisen 12:7afdbc7465ac 899 }