Autorul poate fi contactat la adresa: Login pentru adresa
Prezentarea pe scurt a proiectului: Doresc sa implementez jocul Snake a carei interfata cu utilizatorul se va face prin intermediul a 64 de leduri si 4 butoane. Se va putea selecta daca sarpele poate trece sau nu prin “peretii” plansei. De asemenea la fiecare punct mancat va creste viteza si marimea sarpelui. Scopul proiectului este de a realiza un joc care imi place, iar prin aceasta experienta sa aprofundez cunostintele invatate la laborator. Ideea a pornit de la faptul ca am vrut sa lucrez cu LED-uri, iar jocul snake cred ca se potriveste dorintelor mele.
Componente auxiliare inafara de cele de pe placa principala:
- 1 buc placa de test 100×100
- 1 buc matrice LED 8×8 LM-88UE19-CC
- 6 buc mufe mama 8 pini
- 1 metru cablu panglica 16 fire
- 8 buc tranzistoare BC547
- 8 buc rezistente 1k2 ohm
- 8 buc rezistente 330 ohm
- 1 buc conector 1×36 pini
- 5 buc butoane
- 1 buc LED 5mm
- 1 buc rezistenta 470 ohm
Scheme electrica placa auxiliara:
Mediu de dezvoltare: Programmer's Notepad + WinAVR
Am declarat un array2D in care memorez care led-uri sunt aprinse si aprind matricea de led-uri in functie de acest array2D. Retin pixelul care reprezinta capul sarpelui si directia in care se indreapta. De asemenea retin coada sarpelui si in ce directie este penultimul punct, pentru a sti care va fi viitorul ultim punct.
Jocul se incheie cand sarpele se loveste de el, sau de margine daca aceasta este activata. La incheierea jocului daca sarpele are o lungime >= 20 se va afisa 'OK' pe matricea de led-uri. In caz contrar sarpele va licari in forma in care a murit, pentru a semnifica pierderea jocului
'bomboanele' se genereaza folosind functia rand().
Placa auxiliara:
Startul jocului:
Sarpele a murit pentru ca s-a lovit de corpul lui Licare pana sa da restart la joc
Sarpele a murit pentru ca s-a lovit de margine. Se observa ledul din stanga de jos ca este aprins. Asta indica faptul ca marginea este activa
in timpul jocului:
Joc castigat(sarpele a avut la final o lungime >= 20):
Am invazat sa lipesc si sa dezlipesc. De dezlipit am invatat deoarece pini nu coincid pe linii si coloane ca in documentatie si am verificat manual care de unde este. Apoi a trebuit sa refac lipiturile corespunzator.
Am invatat cum sa lucrez cu matricea de leduri si sa multiplexez in timp.
Consider ca am lucrat curat si proiectul a iesit exact cum mi-am propus.
Lipire placa de baza : 20.04 (2 ore)
Am cumparat piesele auxiliare
Lipire placa auxiliara : 27.04 (2 ore) + 11.05(2 ore) + 21.05(4 ore)
Realizare software : 22.05(5 ore)