This is an old revision of the document!
Autor: Rusu Bianca-Ana-Maria 336CA
Proiectul constă într-o adaptare a jocului Tower Stack pe un ecran LCD.
Scopul jocului este de a construi un turn cât mai înalt din piese.
Piesele vin de sus, iar poziția lor poate fi controlată folosind un accelerometru. Piesele încep să cadă după ce jucătorul apasă pe un buton.
Un buzzer va fi folosit pentru a semnala că piesa curentă nu a fost așezată pe turn.
Am folosit Arduino IDE si urmatoarele biblioteci:
Implementarea este bazata pe exemplele din bibliotecile de mai sus si exemplul din Arduino IDE tone digital pentru buzzer. Pentru a folosi butonul ca input am utilizat intrerupere pe PCINT0.
Accelerometrul comunica folosind I2C, insa display-ul folosea pin-ul A4(SDA) pentru LCD_RST. A trebuit sa reconfigurez LCD-ul sa foloseasca pin-ul 13 in loc de A4. Pentru a retine blocurile am folosit o structura si mai apoi blocurile construite le-am pastrat intr-un vector. Blocurilor li se asociaza o culoare random. Am implementat si functionalitate de scor si de game over.
LCD-ul are un refresh rate destul de mic astfel incat daca se face clear la ecran la fiecare frame apare un efect de imagine sacadata. De aceea atunci cand se misca un bloc, practic se coloreaza cu negru pozitia anterioara si apoi se deseneaza normal la pozitia noua.
Scopul jocului e sa se construiasca un turn cat mai inalt. Jucatorul are la dispozitie un bloc care apare la o pozitie random in partea de sus a scenei si il poate muta stanga-dreapta cu ajutorul accelerometrului. Pentru a lansa blocul, se apasa butonul. In momentul in care turnul este prea inalt, acesta este deplasat in jos. Jocul se termina in momentul in care jucatorul nu reuseste sa puna blocul corect deasupra turnului si acesta cade si iese din scena, moment in care apare un text cu “Game over” si se aude si o melodie de la buzzer. Pentru a se relua jocul se apasa din nou pe buton.