BastatDoreau / Mbed 2 deprecated MoveYourTetris

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

Committer:
Willheisen
Date:
Thu Apr 14 12:50:25 2016 +0000
Revision:
21:f0cf4173ecdb
Parent:
15:3782eb2bc312
Child:
28:e932eb039271
Child:
35:7aef0bbdf335
bient?t la fin;

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