BastatDoreau / Mbed 2 deprecated MoveYourTetris

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

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