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