BastatDoreau / Mbed 2 deprecated MoveYourTetris

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

Committer:
Willheisen
Date:
Mon Apr 11 11:36:14 2016 +0000
Revision:
14:6b6aa696680f
Parent:
13:336220ac9a8b
Child:
15:3782eb2bc312
11/04/2016, mise en place de la classe Jeu

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