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
- Committer:
- clementdoreau
- Date:
- 2016-04-20
- Revision:
- 28:e932eb039271
- Parent:
- 21:f0cf4173ecdb
- Child:
- 29:95469b25e187
File content as of revision 28:e932eb039271:
#include "cMatrice.h"
#include <algorithm>
// CONSTRUCTEURS
cMatrice::cMatrice()
{
}
cMatrice::cMatrice(unsigned char c, unsigned char l)
{
_lig = l;
_col = c;
_matrice = new unsigned char*[_lig];
for(unsigned char i = 0; i < _lig; i++) {
_matrice[i] = new unsigned char[_col];
}
clear();
}
// DESTRUCTEUR
cMatrice::~cMatrice()
{
for(unsigned char i = 0; i < _lig; i++) {
delete[] _matrice[i];
delete[] _matrice;
}
}
// GETTER
unsigned char cMatrice::getValTab(unsigned char l, unsigned char c)
{
return _matrice[l][c];
}
unsigned char cMatrice::getCol()
{
return _col;
}
unsigned char cMatrice::getLig()
{
return _lig;
}
cForme* cMatrice::get_pForme()
{
return _pForme;
}
// SETTER
void cMatrice::setCol(unsigned char c)
{
_col = c;
}
void cMatrice::setLig(unsigned char l)
{
_lig = l;
}
void cMatrice::setValTab(unsigned char l, unsigned char c, unsigned char coul)
{
_matrice [l][c] = coul;
}
// METHODES
// Paramètres:
// f: Forme à afficher
// c: Couleur
void cMatrice::afficherForme(cForme* f, unsigned char c)
{
_pForme = f;
// Changement de couleur des Leds
for (int i = 0; i < 4; i++) {
_pForme->getLed(i).setCouleur(c);
_matrice[_pForme->getLed(i).getPositionX()][_pForme->getLed(i).getPositionY()] = c;
}
}
// Description:
// Nettoyage de la matrice, passage à 0 de la valeur de chaque Led
void cMatrice::clear()
{
for(unsigned char i = 0; i < _lig; i++) {
for(unsigned char j = 0; j < _col; j++) {
_matrice[i][j] = LED_NOIR;
}
}
//////////////////////////////////////////////////////////////////////////////////////
_matrice[0][0] = LED_ROUGE;
//_matrice[8][0] = LED_ROUGE;
}
void cMatrice::updateMatrice()
{
// On éteint les leds de la pièce
for (int i = 0; i < 4; i++) {
_matrice[_pForme->getLed(i).getOldPositionX()][_pForme->getLed(i).getOldPositionY()] = LED_NOIR;
}
// Affichage de la nouvelle position
afficherForme(_pForme, _pForme->getLed(0).getCouleur());
///////////////////////////////////////////////////////////////////////////////////////////////
// Controle de la collision avec les bords
///////////////////////////////////////////////////////////////////////////////////////////////
}