Mini projet LOO
Dependencies: mbed APDS_9960 mbed-rtos
Home du projet
Diff: src/cJeu.cpp
- 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");