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