Autorul poate fi contactat la adresa: Login pentru adresa
Prezentarea pe scurt a proiectului:
Ce face?
Permite utliziatorului sa joace clasicul joc de Snake pe o matrice de LED-uri.
Care este scopul lui?
Implementarea jocului Snake pe matrice de LED-uri.
Care a fost ideea de la care am pornit?
Jocul Snake implementat pe telefon a fost o adevarata sursa de recreere pentru mine in copilarie.
De ce cred că este util pentru alţii şi pentru mine?
Este un joc distractiv, perfect pentru umplerea timpului liber.
Utilizatorul foloseste butoanele pentru a controla sarpele. Microcontrollerul primeste semnalul de la butoane si schimba directia de deplasare pe LED-uri a sarpelui.
Pe langa componentele de baza am folosit:
Componente:
Am folosit uneltele de la laborator pentru a scrie codul: Programmer's Notepad, Win-AVR pentru compilator. Pentru interfatarea cu matricea de LED-uri MAX7219 am folosit o biblioteca scrisa de Davide Gironi. Ea imi furnizeaza functii pentru a seta intensitatea LED-urilor, si pentru a schimba starea tuturor LED-urilor.
Partea algortimica este formata din:
Sarpele este reprezentat de un vector de coordonate, dintre care unul este capul si unul este coada.
La fiecare “ciclu”, capul sarpelui se misca in directia curenta de miscare, iar coada devine penultima parte din sarpe.
La o apasare a unui buton directional, se genereaza o intrerupere ce modifica directia sarpelui. Se poate modifica directia numai intr-una perpendiculara pe directia existenta.
Suprafata de joc este reprezentata de o matrice 8×8, cu valorile EMPTY, SNAKE, sau FOOD.
Nu a fost posibila implementarea de inamici sau ziduri, intrucat matricea de LED-uri este monocolora.
Am implementat si sunet cu un buzzer. Buzzer-ul scoate un sunet inalt atunci cand sarpele atinge mancarea si unul jos atunci cand sarpele se loveste de propria coada.
La inceputul jocului, se poate alege viteza sarpelui (nivel de dificultate), de la 1 la 6.
Rezultatul este un joc Snake complet functional, cu 6 niveluri de dificultate (viteza) si sunet. Am avut cateva probleme cu butoanele si buzzer-ul, dar le-am rezolvat pana la urma. As vrea sa aranjez placuta mai frumos, pentru a da si o nota estetica proiectului.