Proiectul este un joc 2048, folosind pentru control joystick-ul.
Scopul proiectul este distractia, adunand blocuri putere a lui 2, obtinand scorul 2048, sau chiar un punctaj mai mare.
Ideea de la care am pornit a fost sa vad cum pot aplica cunostiintele invatate la laborator pentru a implementa un joc intersant, cunoscut de toata lumea.
Inputul va fi generat de catre joystick, iar outputul se va afisa pe ecranul lcd, iar buzzer-ul va emite sunete reprezentand feedback-ul fata de evaluarea jocului.
Mediul de dezvoltare folosit a fost Notepad++, insa se putea folosi orice editor de text. Compilatorul folosit a fost avr-gcc. Pentru a scrie pe LCD am folosit o biblioteca deja implementata deja pe internet. Am pus referinta la bibliografie.
Pentru implementarea jocului, am retinut o matrice de 4*4 care reprezenta grid-ul jocului, si din motive de eficenta, am pastrat in matrice puterile la care trebuie ridicat 2. Am implementat mutarile : stanga, dreapta, sus si jos. Am implementat citirea ADC de pe joystick, iar cu aceste informatii decid mutarea, de asemenea la fiecare mutare, buzzer-ul scoate un sunet. Pentru ca pozitionarea casutelor sa se faca cu adevarat random, am folosit un timer care in momentul inceperii jocului este pasat ca seed pentru srand.
Functii implementate :
Rezultatele obtinute sunt cele asteptate, in final a iesit un joc functional, cu care te poti juca cu usurinta.
A fost o experienta interesanta, din care am invat cum funtioneaza anumite componente hardware, si m-a pus in situatia in care trebuia sa ma documentez pentru a cumpara piese, pentru a gandi modul de functionare si cum putea fi programata. Singura remuscare este ca nu am ales un proiect mai greu din cauza ca ma gandeam ca ar fi mult prea complicat pentru mine.
Arhiva proiect: 2048 cod