Mini projet LOO

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

Home du projet

src/main.cpp

Committer:
Willheisen
Date:
2016-04-10
Revision:
13:336220ac9a8b
Parent:
12:7afdbc7465ac
Child:
14:6b6aa696680f

File content as of revision 13:336220ac9a8b:

#include "mbed.h"
#include "cJeu.h"
#include "cMatrice.h"
#include "cLigne.h"
#include "cSPI.h"

int main()
{
    ////////////////////////////////////////
    Serial pc(USBTX, USBRX);
    cSPI spi;
    spi.initSPI(100000, 8, 3);
    cJeu jeu;
    cMatrice * mat = new cMatrice(8,8);
    jeu.initialiser();
    jeu.set_matrice(mat);
    /////////////////////////////////////////
    //cForme *ptrForme = new cEl(3, 0);
    //cForme *ptrForme = new cLigne(3,0);
    //cForme *ptrForme = new cZed(3,0);
    //cForme *ptrForme = new cCarre(3,0);
    //cForme *ptrForme = new cTe(3,0);
    /*mat->afficherForme(ptrForme, LED_VERT); // Affiche la nouvelle pièce

    cForme *ptrForme2 = new cZed(1, 3);
    ptrForme2->rotationHoraire();
    mat->afficherForme(ptrForme2, LED_BLEU_CLAIR); // Affiche la nouvelle pièce

    spi.envoyerMatrice(*mat);

    mat->afficherForme(ptrForme, LED_VERT); // Affiche la nouvelle pièce

    spi.envoyerMatrice(*mat);
    //Déplacement
    ptrForme->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
        wait(0.5);
           //Déplacement
    ptrForme->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
        wait(0.5);
           //Déplacement
    ptrForme->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
        wait(0.5);
           //Déplacement
    ptrForme->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
        wait(0.5);
    //Rotation
    ptrForme->rotationHoraire();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
     wait(0.5);
         //Rotation
    ptrForme->rotationHoraire();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
     wait(0.5);
         //Rotation
    ptrForme->rotationHoraire();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
     wait(0.5);
    //Déplacement
    ptrForme->deplacementDroite();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
        wait(0.5);


    //test collision
    while(mat->verificationMvt('g') != 0)
    {
    ptrForme->deplacementGauche();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
    wait(0.5);
    }
    */
    cForme *ptrForme = new cLigne(3,0);
    mat->afficherForme(ptrForme, LED_MAGENTA); // Affiche la nouvelle pièce
    spi.envoyerMatrice(*mat);
    wait(0.2);
    for(int i=0; i<3; i++) {
        //Déplacement
        ptrForme->deplacementBas();
        mat->updateMatrice();
        spi.envoyerMatrice(*mat);
        wait(0.2);
    }

//test collision
    for(int i =0; i<2; i++) {
        ptrForme->deplacementGauche();
        mat->updateMatrice();
        spi.envoyerMatrice(*mat);
        wait(0.2);
    }

    //test collision
    do {
        ptrForme->deplacementBas();
        mat->updateMatrice();
        spi.envoyerMatrice(*mat);
        wait(0.2);
    } while(mat->verificationMvt('b') != 0);

    cForme *ptrForme2 = new cLigne(3,0);
    mat->afficherForme(ptrForme2, LED_ORANGE); // Affiche la nouvelle pièce
    spi.envoyerMatrice(*mat);
    wait(0.2);
    for(int i=0; i<3; i++) {
        //Déplacement
        ptrForme2->deplacementBas();
        mat->updateMatrice();
        spi.envoyerMatrice(*mat);
        wait(0.2);
    }
    //test collision
    for(int i=0; i<2; i++) {
        ptrForme2->deplacementDroite();
        mat->updateMatrice();
        spi.envoyerMatrice(*mat);
        wait(0.2);
    }
    ptrForme2->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
    wait(0.2);
    ptrForme2->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
    wait(0.2);

    jeu.ligneComplete();

    cForme *ptrForme3 = new cLigne(3,0);
    mat->afficherForme(ptrForme3, LED_VERT); // Affiche la nouvelle pièce
    spi.envoyerMatrice(*mat);
    wait(0.2);
    for(int i=0; i<3; i++) {
        //Déplacement
        ptrForme3->deplacementBas();
        mat->updateMatrice();
        spi.envoyerMatrice(*mat);
        wait(0.2);
    }
    //test collision
    for(int i=0; i<2; i++) {
        ptrForme3->deplacementGauche();
        mat->updateMatrice();
        spi.envoyerMatrice(*mat);
        wait(0.2);
    }
    ptrForme3->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
    wait(0.2);
    ptrForme3->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
    wait(0.2);
    delete ptrForme3;
    jeu.ligneComplete();
    /*
    ptrForme->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
    	wait(1);
    ptrForme->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);
    	wait(1);
    ptrForme->deplacementBas();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);


    wait(1);
    ptrForme->deplacementDroite();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);

    wait(1);
    ptrForme->deplacementDroite();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);

    wait(1);
    ptrForme->deplacementDroite();
    mat->updateMatrice();
    spi.envoyerMatrice(*mat);  */
    delete ptrForme;
    delete ptrForme2;
    delete mat;

}