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