BastatDoreau / Mbed 2 deprecated MoveYourTetris

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

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?

UserRevisionLine numberNew 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 }