Mini projet LOO

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

Home du projet

Revision:
30:c647da947bd9
Parent:
29:95469b25e187
Child:
31:7313366789f2
--- a/src/cJeu.cpp	Wed Apr 20 15:09:43 2016 +0000
+++ b/src/cJeu.cpp	Thu Apr 21 12:33:58 2016 +0000
@@ -6,13 +6,11 @@
 DigitalOut led2(LED2);
 
 
-
-
-
 //Constructeur par défaut
 cJeu::cJeu()
 {
-    _mat = new cMatrice(8, 8);
+    Serial pc(USBTX, USBRX);
+    _mat = new cMatrice(16, 8);
 }
 
 //Second constructeur:
@@ -20,7 +18,6 @@
 //avec la broche pin comme entrée d'interruption si détection de mouvement du capteur
 cJeu::cJeu(unsigned int x, unsigned int y)
 {
-
 //create the InterruptIn on the pin specified to Counter
 
     //on crée une nouvelle matrice
@@ -70,10 +67,12 @@
 //            Mode 3
 void cJeu::initialiser()
 {
-    _spi.initSPI(100000, 8, 3);
+    Serial pc(USBTX, USBRX);
+    _spi.initSPI(125000, 0, 0);
+    _spi.configurerNbMatrices(2);
     _mat->clear();
     _spi.envoyerMatrice(*_mat);
-
+    pc.printf("Creation d'une matrice %d %d \n", _mat->getLig(), _mat->getCol());
 }
 
 //Méthode de création d'une nouvelle pièce de manière pseudo-aléatoire
@@ -87,27 +86,27 @@
     switch(nb) {
             //On crée une pièce "L"
         case 1: {
-            _ptrForme = new cEl(3,0);
+            _ptrForme = new cEl(2,3);
             break;
         }
         //On crée une pièce "ligne"
         case 2: {
-            _ptrForme = new cLigne(3,0);
+            _ptrForme = new cLigne(2,3);
             break;
         }
         //On crée une pièce "Z"
         case 3: {
-            _ptrForme = new cZed(3,0);
+            _ptrForme = new cZed(2,3);
             break;
         }
         //On crée une pièce "T"
         case 4: {
-            _ptrForme = new cTe(3,0);
+            _ptrForme = new cTe(2,3);
             break;
         }
         //On crée une pièce "carré"
         case 5: {
-            _ptrForme = new  cCarre(3,0);
+            _ptrForme = new  cCarre(2,3);
             break;
         }
         default:
@@ -242,6 +241,7 @@
 ///////////////////////////////////////////////////////////////////////
     // Boucle qui se répète tant que la partie n'est pas finie
     while(!perdu) {
+        
         //On crée une nouvelle pièce.
         nouvellePiece();
         pc.printf("Nouvelle piece \n\r");
@@ -249,21 +249,25 @@
         if(col.pieceBas(*_ptrForme, *_mat) == true) {
             perdu = 1;
             pc.printf("Perdu!! \n\r");
-            wait(0.1);
+            
             //On colore toute la matrice en bleue
             for(unsigned int i = 0; i < _mat->getLig(); i++) {
                 for(unsigned int j = 0; j < _mat->getCol(); j++) {
                     _mat->setValTab(i, j, LED_BLEU_FONCE);
                 }
             }
+             wait(1);
             _spi.envoyerMatrice(*_mat);
-            wait(0.1);
+           
             //Puis on l'efface
             _mat->clear();
             _spi.envoyerMatrice(*_mat);
+            
         }
 //////////////////////////////////////////////////////////////////////
+
         while(col.bordBas(*_ptrForme, *_mat) == false && col.pieceBas(*_ptrForme, *_mat) == false && !perdu) {
+            wait(0.5);
             osEvent evt = osMessageGet(*_queue, 500);
             if (evt.status == osEventMessage) {
                 pc.printf("Message ==> Recu\n");