Mini projet LOO
Dependencies: mbed APDS_9960 mbed-rtos
Home du projet
Diff: src/cZed.cpp
- Revision:
- 12:7afdbc7465ac
- Parent:
- 8:92d0c4961a16
- Child:
- 29:95469b25e187
--- a/src/cZed.cpp Sun Apr 10 17:46:03 2016 +0000 +++ b/src/cZed.cpp Sun Apr 10 20:51:02 2016 +0000 @@ -2,44 +2,127 @@ #include "cZed.h" -cZed::cZed() { - // variables à 0 - _positionX = 0; - _positionY = 0; - _orientation = 1; - // Positionnement des leds - // |0|1| - // |2|3| - _Leds[0].setPositionX(_positionX); // Led coin haut gauche - _Leds[0].setPositionY(_positionY); // Led coin haut gauche - _Leds[1].setPositionX(_positionX + 1); - _Leds[1].setPositionY(_positionY); - _Leds[2].setPositionX(_positionX + 1); - _Leds[2].setPositionY(_positionY + 1); - _Leds[3].setPositionX(_positionX + 2); - _Leds[3].setPositionY(_positionY + 1); +cZed::cZed() +{ + // 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); + _Leds[2].setPositionY(_positionY + 1); + _Leds[3].setPositionX(_positionX + 1); + _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 = 2; +} +cZed::cZed(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); + _Leds[2].setPositionY(_positionY + 1); + _Leds[3].setPositionX(_positionX + 1); + _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 = 2; } -cZed::cZed(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); // Led coin haut gauche - _Leds[0].setPositionY(_positionY); // Led coin haut gauche - _Leds[1].setPositionX(_positionX + 1); - _Leds[1].setPositionY(_positionY); - _Leds[2].setPositionX(_positionX + 1); - _Leds[2].setPositionY(_positionY + 1); - _Leds[3].setPositionX(_positionX + 2); - _Leds[3].setPositionY(_positionY + 1); +void cZed::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| + // |2|1| + // |3| + _Leds[0].setPositionX(_positionX); + _Leds[0].setPositionY(_positionY - 1); + _Leds[1].setPositionX(_positionX); + _Leds[1].setPositionY(_positionY); + _Leds[2].setPositionX(_positionX - 1); + _Leds[2].setPositionY(_positionY); + _Leds[3].setPositionX(_positionX - 1); + _Leds[3].setPositionY(_positionY + 1); + _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); + _Leds[2].setPositionY(_positionY - 1); + _Leds[3].setPositionX(_positionX - 1); + _Leds[3].setPositionY(_positionY - 1); + _orientation = 3; + break; + case 3: + // Positionnement des leds + // |3| + // |1|2| + // |0| + _Leds[0].setPositionX(_positionX); + _Leds[0].setPositionY(_positionY + 1); + _Leds[1].setPositionX(_positionX); + _Leds[1].setPositionY(_positionY); + _Leds[2].setPositionX(_positionX + 1); + _Leds[2].setPositionY(_positionY); + _Leds[3].setPositionX(_positionX + 1); + _Leds[3].setPositionY(_positionY - 1); + _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); + _Leds[2].setPositionY(_positionY + 1); + _Leds[3].setPositionX(_positionX + 1); + _Leds[3].setPositionY(_positionY + 1); + _orientation = 1; + break; + default: + break; + } } - - -void cZed::rotationHoraire() { - -}