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