BastatDoreau / Mbed 2 deprecated MoveYourTetris

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

src/cTe.cpp

Committer:
clementdoreau
Date:
2016-04-21
Revision:
30:c647da947bd9
Parent:
29:95469b25e187
Child:
31:7313366789f2

File content as of revision 30:c647da947bd9:

// Définition de la classe Té

#include "cTe.h"

cTe::cTe()
{
    // variables à 0
    _positionX = 0;
    _positionY = 0;
    _orientation = 1;
    // Positionnement des leds
    // |0|1|2|
    //   |3|
    _Leds[0].setPositionX(_positionX - 1);
    _Leds[0].setPositionY(_positionY);
    _Leds[1].setPositionX(_positionX);
    _Leds[1].setPositionY(_positionY);
    _Leds[2].setPositionX(_positionX + 1);
    _Leds[2].setPositionY(_positionY);
    _Leds[3].setPositionX(_positionX);
    _Leds[3].setPositionY(_positionY + 1);
    for(int i = 0; i<4; i++) {
        _Leds[i].setOldPositionX(_Leds[i].getPositionX());
    }
    for(int i = 0; i<4; i++) {
        _Leds[i].setOldPositionY(_Leds[i].getPositionY());
    }
    _typeForme = 3;
}

cTe::cTe(int x, int y)
{
    // variables à 0
    _positionX = x;
    _positionY = y;
    _orientation = 1;
    // Positionnement des leds
    // |0|1|2|
    //   |3|
    _Leds[0].setPositionX(_positionX - 1);
    _Leds[0].setPositionY(_positionY);
    _Leds[1].setPositionX(_positionX);
    _Leds[1].setPositionY(_positionY);
    _Leds[2].setPositionX(_positionX + 1);
    _Leds[2].setPositionY(_positionY);
    _Leds[3].setPositionX(_positionX);
    _Leds[3].setPositionY(_positionY + 1);
    for(int i = 0; i<4; i++) {
        _Leds[i].setOldPositionX(_Leds[i].getPositionX());
    }
    for(int i = 0; i<4; i++) {
        _Leds[i].setOldPositionY(_Leds[i].getPositionY());
    }
    _typeForme = 3;

}


void cTe::rotationHoraire()
{
// Sauvegarde des anciennes positions
    for (int i = 0; i < 4; i++) {
        _Leds[i].setOldPositionX(_Leds[i].getPositionX());
        _Leds[i].setOldPositionY(_Leds[i].getPositionY());
    }

    switch (_orientation) {
        case 1:
            // Positionnement des leds
            //      |0|
            //    |3|1|
            //      |2|
            _Leds[0].setPositionX(_positionX);
            _Leds[0].setPositionY(_positionY - 1);
            _Leds[1].setPositionX(_positionX);
            _Leds[1].setPositionY(_positionY);
            _Leds[2].setPositionX(_positionX);
            _Leds[2].setPositionY(_positionY + 1);
            _Leds[3].setPositionX(_positionX - 1);
            _Leds[3].setPositionY(_positionY);
            _orientation = 2;
            break;
        case 2:
            // Positionnement des leds
            //     |3|
            //   |2|1|0|
            _Leds[0].setPositionX(_positionX + 1);
            _Leds[0].setPositionY(_positionY);
            _Leds[1].setPositionX(_positionX);
            _Leds[1].setPositionY(_positionY);
            _Leds[2].setPositionX(_positionX - 1);
            _Leds[2].setPositionY(_positionY);
            _Leds[3].setPositionX(_positionX);
            _Leds[3].setPositionY(_positionY - 1);
            _orientation = 3;
            break;
        case 3:
            // Positionnement des leds
            //  |2|
            //  |1|3|
            //  |0|
            _Leds[0].setPositionX(_positionX);
            _Leds[0].setPositionY(_positionY + 1);
            _Leds[1].setPositionX(_positionX);
            _Leds[1].setPositionY(_positionY);
            _Leds[2].setPositionX(_positionX);
            _Leds[2].setPositionY(_positionY - 1);
            _Leds[3].setPositionX(_positionX + 1);
            _Leds[3].setPositionY(_positionY);
            _orientation = 4;
            break;

        case 4:
            // Positionnement des leds
            // |0|1|2|
            //   |3|
            _Leds[0].setPositionX(_positionX - 1);
            _Leds[0].setPositionY(_positionY);
            _Leds[1].setPositionX(_positionX);
            _Leds[1].setPositionY(_positionY);
            _Leds[2].setPositionX(_positionX + 1);
            _Leds[2].setPositionY(_positionY);
            _Leds[3].setPositionX(_positionX);
            _Leds[3].setPositionY(_positionY + 1);
            _orientation = 1;
            break;
        default:
            break;
    }
}