Mini projet LOO

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

Home du projet

src/cEl.cpp

Committer:
Willheisen
Date:
2016-04-10
Revision:
12:7afdbc7465ac
Parent:
11:c37922a0a915
Child:
20:921ffec1acb4

File content as of revision 12:7afdbc7465ac:

// Définition de la classe El

#include "cEl.h"

cEl::cEl()
{
    // variables à 0
    _positionX = 0;
    _positionY = 0;
    _orientation = 1;
    // Positionnement des leds
    //  |1|2|3|
    //  |0|
    _Leds[0].setPositionX(_positionX - 1);
    _Leds[0].setPositionY(_positionY + 1);
    _Leds[1].setPositionX(_positionX - 1);
    _Leds[1].setPositionY(_positionY);
    _Leds[2].setPositionX(_positionX);
    _Leds[2].setPositionY(_positionY);
    _Leds[3].setPositionX(_positionX + 1);
    _Leds[3].setPositionY(_positionY);
    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 = 4;
}

cEl::cEl(unsigned char x, unsigned char y)
{
    // variables à 0
    _positionX = x;
    _positionY = y;    
    _orientation = 1;
    // Positionnement des leds
    //  |1|2|3|
    //  |0|
    _Leds[0].setPositionX(_positionX - 1);
    _Leds[0].setPositionY(_positionY + 1);
    _Leds[1].setPositionX(_positionX - 1);
    _Leds[1].setPositionY(_positionY);
    _Leds[2].setPositionX(_positionX);
    _Leds[2].setPositionY(_positionY);
    _Leds[3].setPositionX(_positionX + 1);
    _Leds[3].setPositionY(_positionY);
    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 = 4;
}

void cEl::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|1|
            //    |2|
            //	  |3|
            _Leds[0].setPositionX(_positionX - 1);
            _Leds[0].setPositionY(_positionY - 1);
            _Leds[1].setPositionX(_positionX);
            _Leds[1].setPositionY(_positionY - 1);
            _Leds[2].setPositionX(_positionX);
            _Leds[2].setPositionY(_positionY);
            _Leds[3].setPositionX(_positionX);
            _Leds[3].setPositionY(_positionY + 1);
            _orientation = 2;
            break;
        case 2:
            // Positionnement des leds
            //      |0|
            //  |3|2|1|
            _Leds[0].setPositionX(_positionX + 1);
            _Leds[0].setPositionY(_positionY - 1);
            _Leds[1].setPositionX(_positionX + 1);
            _Leds[1].setPositionY(_positionY);
            _Leds[2].setPositionX(_positionX);
            _Leds[2].setPositionY(_positionY);
            _Leds[3].setPositionX(_positionX - 1);
            _Leds[3].setPositionY(_positionY);
            _orientation = 3;
            break;
        case 3:
            // Positionnement des leds
            //  |3|
            //  |2|
            //  |1|0|
            _Leds[0].setPositionX(_positionX + 1);
            _Leds[0].setPositionY(_positionY + 1);
            _Leds[1].setPositionX(_positionX);
            _Leds[1].setPositionY(_positionY + 1);
            _Leds[2].setPositionX(_positionX);
            _Leds[2].setPositionY(_positionY);
            _Leds[3].setPositionX(_positionX);
            _Leds[3].setPositionY(_positionY - 1);
            _orientation = 4;
            break;

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