Mini projet LOO
Dependencies: mbed APDS_9960 mbed-rtos
Home du projet
Diff: src/cJeu.cpp
- Revision:
- 14:6b6aa696680f
- Parent:
- 13:336220ac9a8b
- Child:
- 15:3782eb2bc312
--- a/src/cJeu.cpp Sun Apr 10 21:54:27 2016 +0000 +++ b/src/cJeu.cpp Mon Apr 11 11:36:14 2016 +0000 @@ -2,12 +2,12 @@ cJeu::cJeu() { - _mat = new cMatrice(8,8); + cMatrice _mat(8,8); //on initialise la générateur de nombres pseudo-aléatoires srand(time(NULL)); } -cMatrice* cJeu::get_matrice() +cMatrice cJeu::get_matrice() { return _mat; } @@ -17,7 +17,7 @@ return _score; } -void cJeu::set_matrice(cMatrice *mat) +void cJeu::set_matrice(cMatrice mat) { _mat = mat; } @@ -28,12 +28,12 @@ } void cJeu::initialiser() { - _mat->clear(); + _mat.clear(); } // Description: // Créé une nouvelle pièce et renvoi l'adresse de cette dernière -cForme *cJeu::nouvellePiece() +void cJeu::nouvellePiece() { cForme *f; //on génère un nombre aléatoire entre 1 et 5 pour la pièce @@ -69,51 +69,58 @@ } default: {} - } - //puis on renvoi la nouvelle pièce - return f; + } + //puis on affiche la nouvelle pièce + _mat.afficherForme(f, couleur); } cJeu::~cJeu() { - delete _mat; + delete _ptrForme; } -unsigned char cJeu::ligneComplete() +void cJeu::nouvelleManche() +{ + cJeu::nouvellePiece(); + //tant que l'on peut descendre + //while(frfd) + + + //puis on teste si une ligne est complete + cJeu::ligneComplete(); + +} +void cJeu::ligneComplete() { Serial pc(USBTX, USBRX); - unsigned char res = 0, total = 0, numLigne = 0; + unsigned char total = 0, numLigne = 0; /*on parcourt chaque ligne de la matrice. Si une de ces lignes est complète (c-à-d pas de LED noire), alors on fait descendre toutes les pièces au-dessus de la ligne(autres que celle de la manche) d'un cran. */ - for( unsigned char i=0; i < _mat->getLig(); i++) { + for( unsigned char i=0; i < _mat.getLig(); i++) { total = 0; - for( unsigned char j=0; j < _mat->getCol(); j++) { - - if(_mat->getValTab(j, i) != LED_NOIR) { + for( unsigned char j=0; j < _mat.getCol(); j++) { + if(_mat.getValTab(j, i) != LED_NOIR) { total ++; - } - if(total == 8) - { - res = 1; + } + if(total == 8) { numLigne = i; break; } } } - pc.printf("numLigne: %d\n", numLigne); + pc.printf("numLigne: %d\n", numLigne); ////////////////////////////////////////////// //On descend toutes les LEDs allumées au dessus de numLigne d'un cran - if(numLigne != 0) - { + if(numLigne != 0) { + for( unsigned char i = 0; i < numLigne; i++) { + total = 0; + for( unsigned char j = 0; j < _mat.getCol(); j++) { + _mat.setValTab(j, i, _mat.getValTab(j-1, i)); + } + } + //Et on augmente le score! + _score+=10; } - - - - - //Et on augmente le score! - _score+=10; - - return res; }