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@21:f0cf4173ecdb, 2016-04-14 (annotated)
- 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?
| 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 | 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 | } |