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:
- Willheisen
- Date:
- 2016-04-24
- Revision:
- 36:f58a566595ad
- Parent:
- 35:7aef0bbdf335
- Child:
- 38:418278e5eb6b
File content as of revision 36:f58a566595ad:
#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();
/////////////////////////////////////////////////////////
decalage = 1;
}
// 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 < _col; i++) {
for(unsigned char j = 0; j < _lig; j++) {
_matrice[i][j] = LED_NOIR;
}
}
//////////////////////////////////////////////////////////////////////////////////////
_matrice[0][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
///////////////////////////////////////////////////////////////////////////////////////////////
}
void cMatrice::messageAccueil()
{
Serial pc (USBTX, USBRX);
int i, j;
for(i=0; i<8 ; i++) {
for(j=0; j<67; j++) {
matriceMessage[i][j]= LED_NOIR;
}
}
unsigned char coul;
j=0;
coul = LED_ROUGE;
//M
for(i = 1; i < _col -1; i++) {
matriceMessage[i][j] = coul;
}
j++;
matriceMessage[5][j] = coul;
j++;
matriceMessage[4][j] = coul;
j++;
matriceMessage[5][j] = coul;
j++;
for(unsigned char i = 1; i < _col -1; i++) {
matriceMessage[i][j] = coul;
}
j++;
j++;
//o
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
j++;
j++;
//v
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[1][j] = coul;
j++;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
j++;
j++;
//e
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[5][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[5][j] = coul;
j++;
matriceMessage[4][j] = coul;
j++;
j++;
coul = LED_VERT;
//y
matriceMessage[1][j] = coul;
matriceMessage[4][j] = coul;
matriceMessage[5][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[3][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[3][j] = coul;
j++;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
matriceMessage[5][j] = coul;
j++;
j++;
//o
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
j++;
j++;
//u
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[1][j] = coul;
j++;
matriceMessage[1][j] = coul;
j++;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
j++;
j++;
//r
matriceMessage[1][j] = coul;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[3][j] = coul;
j++;
matriceMessage[4][j] = coul;
j++;
matriceMessage[3][j] = coul;
j++;
j++;
coul = LED_BLEU_FONCE;
//T
matriceMessage[6][j] = coul;
j++;
matriceMessage[6][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
matriceMessage[5][j] = coul;
matriceMessage[6][j] = coul;
j++;
matriceMessage[6][j] = coul;
j++;
matriceMessage[6][j] = coul;
j++;
j++;
//e
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[5][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[5][j] = coul;
j++;
matriceMessage[4][j] = coul;
j++;
j++;
//t
matriceMessage[4][j] = coul;
j++;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
matriceMessage[5][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[4][j] = coul;
j++;
j++;
//r
matriceMessage[1][j] = coul;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[3][j] = coul;
j++;
matriceMessage[4][j] = coul;
j++;
matriceMessage[3][j] = coul;
j++;
j++;
//i
matriceMessage[1][j] = coul;
matriceMessage[2][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[5][j] = coul;
j++;
j++;
//s
matriceMessage[1][j] = coul;
matriceMessage[4][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[5][j] = coul;
j++;
matriceMessage[1][j] = coul;
matriceMessage[3][j] = coul;
matriceMessage[5][j] = coul;
j++;
matriceMessage[2][j] = coul;
matriceMessage[5][j] = coul;
pc.printf("j=%d\n", j);
for(i=6; i>0 ; i--) {
for(int k=0; k<=j; k++) {
if(matriceMessage[i][k]) {
pc.printf("X");
} else {
pc.printf(" ");
}
}
pc.printf("\n");
}
for(unsigned char i = 0; i < _col; i++) {
for(unsigned char j = 0; j < _lig; j++) {
_matrice[i][j] = matriceMessage[i][j];
}
}
}
void cMatrice::decalerMatrice()
{
Serial pc (USBTX, USBRX);
int i, j;
for(unsigned char i = 0; i < _col; i++) {
for(unsigned char j = 0; j < _lig; j++) {
_matrice[i][j] = matriceMessage[i][j+decalage];
}
}
decalage++;
}