BastatDoreau / Mbed 2 deprecated MoveYourTetris

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

src/cTe.cpp

Committer:
Willheisen
Date:
2016-04-10
Revision:
12:7afdbc7465ac
Parent:
8:92d0c4961a16
Child:
29:95469b25e187

File content as of revision 12:7afdbc7465ac:

// 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(unsigned char i = 0; i<4; i++) {
        _Leds[i].setOldPositionX(_Leds[i].getPositionX());
    }
    for(unsigned char i = 0; i<4; i++) {
        _Leds[i].setOldPositionY(_Leds[i].getPositionY());
    }
    _typeForme = 3;
}

cTe::cTe(unsigned char x, unsigned char 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(unsigned char i = 0; i<4; i++) {
        _Leds[i].setOldPositionX(_Leds[i].getPositionX());
    }
    for(unsigned char i = 0; i<4; i++) {
        _Leds[i].setOldPositionY(_Leds[i].getPositionY());
    }
    _typeForme = 3;

}


void cTe::rotationHoraire()
{
// Sauvegarde des anciennes positions
    for (unsigned char 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;
    }
}