BastatDoreau / Mbed 2 deprecated MoveYourTetris

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

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?

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 {
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 }