Autorul poate fi contactat la adresa: Login pentru adresa
Voi implementa jocul Snake pe o matrice de leduri. Acesta se va controla prin intermediul butoanelor.
Scopul jocului este acela de a acumula un punctaj cat mai mare.
Ideea de la care a pornit jocul este aceea de a face ceva amuzant si distractiv din care pot sa invat. Am vazut o implementare a acestui joc si are un impact vizual impresionant.
Proiectul este util pentru momentele in care ai nevoie de un pic de relaxare in urma unei zile obositoare.
Jocul va rula pe o matrice de leduri 8*8.
Se vor utiliza 6 butoane, 4 pentru miscari, unul pentru pauza si unul pentru joc nou.
In momentul in care jucatorul este in pericol de a pierde, buzzerul va porni un semnal de atentionare.
Lista de piese necesare:
Schema electrica:
Pentru realizarea părții software a proiectului am folosit Atmel Studio 7.0, din care am generat un fisier .hex pe care l-am încărcat pe plăcuță cu ajutorul aplicației puse la dispoziție: HIDBootFlash.
Pentru aconstrui sarpele am utilizat un vector de coordonate. Initial sarpele are lungime 2, iar restul elementelor din vector care nu fac parte din sarpe sunt initializate cu -1. La fiecare miscare a sarpelui schimb valoarea capului in functie de directie, iar restul elementelor iau valoarea elementului din fata lor. Coliziunea o verific doar cu capul, deoarece numai acesta poate sa produca pierdera jocului. Mancarea sarpelui este tot un element de tip coordonata si o generez folosind functia rand(). Toate acestea le retin pentru afisare intr-un vector cu dimensiunea de 8 si elemente de tip uint8_t pe care il reinitializez la fiecare pas. Comenzile de miscare ale sarpelui sunt implementate folosind intreruperi pentru a evia dezavantajele delay-ului.
Functii implementate:
A fost un proiect intersant din care am învățat multe lucruri ce țin de partea hardware.