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@29:95469b25e187, 2016-04-20 (annotated)
- Committer:
- clementdoreau
- Date:
- Wed Apr 20 15:09:43 2016 +0000
- Revision:
- 29:95469b25e187
- Parent:
- 28:e932eb039271
- Child:
- 30:c647da947bd9
Mise a jour de l'envoi du nombre de matrices
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 | { |
| clementdoreau | 29:95469b25e187 | 8 | _lig = 0; |
| clementdoreau | 29:95469b25e187 | 9 | _col = 0; |
| Willheisen | 9:6f3d8b714a59 | 10 | } |
| clementdoreau | 1:ab5f440f4156 | 11 | |
| clementdoreau | 29:95469b25e187 | 12 | cMatrice::cMatrice(unsigned int c, unsigned int l) |
| Willheisen | 9:6f3d8b714a59 | 13 | { |
| Willheisen | 9:6f3d8b714a59 | 14 | _lig = l; |
| Willheisen | 9:6f3d8b714a59 | 15 | _col = c; |
| clementdoreau | 29:95469b25e187 | 16 | _matrice = new unsigned int*[_lig]; |
| clementdoreau | 29:95469b25e187 | 17 | for(unsigned int i = 0; i < _lig; i++) { |
| clementdoreau | 29:95469b25e187 | 18 | _matrice[i] = new unsigned int[_col]; |
| Willheisen | 11:c37922a0a915 | 19 | } |
| Willheisen | 11:c37922a0a915 | 20 | clear(); |
| Willheisen | 9:6f3d8b714a59 | 21 | } |
| clementdoreau | 1:ab5f440f4156 | 22 | |
| Willheisen | 9:6f3d8b714a59 | 23 | // DESTRUCTEUR |
| Willheisen | 9:6f3d8b714a59 | 24 | cMatrice::~cMatrice() |
| Willheisen | 9:6f3d8b714a59 | 25 | { |
| clementdoreau | 29:95469b25e187 | 26 | for(unsigned int i = 0; i < _lig; i++) { |
| Willheisen | 11:c37922a0a915 | 27 | delete[] _matrice[i]; |
| Willheisen | 11:c37922a0a915 | 28 | delete[] _matrice; |
| Willheisen | 11:c37922a0a915 | 29 | } |
| clementdoreau | 1:ab5f440f4156 | 30 | } |
| clementdoreau | 1:ab5f440f4156 | 31 | |
| Willheisen | 9:6f3d8b714a59 | 32 | // GETTER |
| clementdoreau | 29:95469b25e187 | 33 | unsigned int cMatrice::getValTab(unsigned int l, unsigned int c) |
| Willheisen | 9:6f3d8b714a59 | 34 | { |
| Willheisen | 9:6f3d8b714a59 | 35 | return _matrice[l][c]; |
| clementdoreau | 1:ab5f440f4156 | 36 | } |
| clementdoreau | 1:ab5f440f4156 | 37 | |
| clementdoreau | 29:95469b25e187 | 38 | unsigned int cMatrice::getCol() |
| Willheisen | 11:c37922a0a915 | 39 | { |
| Willheisen | 11:c37922a0a915 | 40 | return _col; |
| Willheisen | 9:6f3d8b714a59 | 41 | } |
| clementdoreau | 1:ab5f440f4156 | 42 | |
| clementdoreau | 29:95469b25e187 | 43 | unsigned int cMatrice::getLig() |
| Willheisen | 11:c37922a0a915 | 44 | { |
| Willheisen | 11:c37922a0a915 | 45 | return _lig; |
| Willheisen | 9:6f3d8b714a59 | 46 | } |
| Willheisen | 3:493dd1cf30a4 | 47 | |
| Willheisen | 11:c37922a0a915 | 48 | cForme* cMatrice::get_pForme() |
| Willheisen | 11:c37922a0a915 | 49 | { |
| Willheisen | 11:c37922a0a915 | 50 | return _pForme; |
| Willheisen | 11:c37922a0a915 | 51 | } |
| clementdoreau | 1:ab5f440f4156 | 52 | // SETTER |
| clementdoreau | 7:4b283e36b147 | 53 | |
| clementdoreau | 29:95469b25e187 | 54 | void cMatrice::setCol(unsigned int c) |
| Willheisen | 11:c37922a0a915 | 55 | { |
| Willheisen | 11:c37922a0a915 | 56 | _col = c; |
| Willheisen | 9:6f3d8b714a59 | 57 | } |
| clementdoreau | 7:4b283e36b147 | 58 | |
| clementdoreau | 29:95469b25e187 | 59 | void cMatrice::setLig(unsigned int l) |
| Willheisen | 11:c37922a0a915 | 60 | { |
| Willheisen | 11:c37922a0a915 | 61 | _lig = l; |
| Willheisen | 9:6f3d8b714a59 | 62 | } |
| clementdoreau | 29:95469b25e187 | 63 | void cMatrice::setValTab(unsigned int l, unsigned int c, unsigned int coul) |
| Willheisen | 14:6b6aa696680f | 64 | { |
| Willheisen | 14:6b6aa696680f | 65 | _matrice [l][c] = coul; |
| Willheisen | 14:6b6aa696680f | 66 | } |
| clementdoreau | 7:4b283e36b147 | 67 | |
| Willheisen | 9:6f3d8b714a59 | 68 | // METHODES |
| clementdoreau | 7:4b283e36b147 | 69 | |
| Willheisen | 4:b7a46af55574 | 70 | // Paramètres: |
| Willheisen | 4:b7a46af55574 | 71 | // f: Forme à afficher |
| Willheisen | 4:b7a46af55574 | 72 | // c: Couleur |
| clementdoreau | 29:95469b25e187 | 73 | void cMatrice::afficherForme(cForme* f, unsigned int c) |
| Willheisen | 9:6f3d8b714a59 | 74 | { |
| Willheisen | 11:c37922a0a915 | 75 | _pForme = f; |
| Willheisen | 11:c37922a0a915 | 76 | // Changement de couleur des Leds |
| Willheisen | 9:6f3d8b714a59 | 77 | for (int i = 0; i < 4; i++) { |
| Willheisen | 11:c37922a0a915 | 78 | _pForme->getLed(i).setCouleur(c); |
| clementdoreau | 10:9ef3f520ff6c | 79 | _matrice[_pForme->getLed(i).getPositionX()][_pForme->getLed(i).getPositionY()] = c; |
| Willheisen | 11:c37922a0a915 | 80 | |
| Willheisen | 9:6f3d8b714a59 | 81 | } |
| Willheisen | 4:b7a46af55574 | 82 | } |
| Willheisen | 4:b7a46af55574 | 83 | |
| Willheisen | 4:b7a46af55574 | 84 | |
| Willheisen | 4:b7a46af55574 | 85 | // Description: |
| Willheisen | 4:b7a46af55574 | 86 | // Nettoyage de la matrice, passage à 0 de la valeur de chaque Led |
| Willheisen | 9:6f3d8b714a59 | 87 | void cMatrice::clear() |
| Willheisen | 9:6f3d8b714a59 | 88 | { |
| clementdoreau | 29:95469b25e187 | 89 | for(unsigned int i = 0; i < _lig; i++) { |
| clementdoreau | 29:95469b25e187 | 90 | for(unsigned int j = 0; j < _col; j++) { |
| Willheisen | 11:c37922a0a915 | 91 | _matrice[i][j] = LED_NOIR; |
| Willheisen | 11:c37922a0a915 | 92 | } |
| Willheisen | 11:c37922a0a915 | 93 | } |
| Willheisen | 21:f0cf4173ecdb | 94 | ////////////////////////////////////////////////////////////////////////////////////// |
| Willheisen | 11:c37922a0a915 | 95 | _matrice[0][0] = LED_ROUGE; |
| clementdoreau | 28:e932eb039271 | 96 | //_matrice[8][0] = LED_ROUGE; |
| Willheisen | 4:b7a46af55574 | 97 | } |
| clementdoreau | 1:ab5f440f4156 | 98 | |
| Willheisen | 11:c37922a0a915 | 99 | void cMatrice::updateMatrice() |
| clementdoreau | 10:9ef3f520ff6c | 100 | { |
| Willheisen | 11:c37922a0a915 | 101 | // On éteint les leds de la pièce |
| Willheisen | 11:c37922a0a915 | 102 | for (int i = 0; i < 4; i++) { |
| clementdoreau | 10:9ef3f520ff6c | 103 | _matrice[_pForme->getLed(i).getOldPositionX()][_pForme->getLed(i).getOldPositionY()] = LED_NOIR; |
| clementdoreau | 10:9ef3f520ff6c | 104 | } |
| clementdoreau | 10:9ef3f520ff6c | 105 | // Affichage de la nouvelle position |
| Willheisen | 11:c37922a0a915 | 106 | afficherForme(_pForme, _pForme->getLed(0).getCouleur()); |
| clementdoreau | 10:9ef3f520ff6c | 107 | /////////////////////////////////////////////////////////////////////////////////////////////// |
| clementdoreau | 10:9ef3f520ff6c | 108 | // Controle de la collision avec les bords |
| clementdoreau | 10:9ef3f520ff6c | 109 | /////////////////////////////////////////////////////////////////////////////////////////////// |
| clementdoreau | 10:9ef3f520ff6c | 110 | } |