Mini projet LOO

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

Home du projet

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