Autorul poate fi contactat la adresa: Login pentru adresa
Scopul acestui proiect este de a reinterpreta celebrul joc Snake, pe care îl juca toată lumea în copilărie.
Varianta clasică
Utilizatorul va controla șarpele pe un LCD, folosind 4 butoate prin care se specifică direcția. Inițial, șarpele va fi situat în mijlocul ecranului și va avea o dimensiune redusă. Pe măsură ce va consuma hrana care va apărea random pe ecran, el va crește. În momentul în care șarpele își va atinge cu capul orice parte a corpului, jocul se va termina.
Reinterpretare
Pentru a da o notă personală acestui joc și pentru a-l face cât mai interesant, voi implementa următoarele aspecte în plus:
Listă de piese | |
---|---|
Nume | Distribuitor |
Placa de baza | Echipa PM |
ATMega324A, rezistente, condensatoare etc | Denisa Sandu |
Placă de Test Universală Verde 70×90 mm | Optimus Digital |
Fire Colorate Mamă-Mamă (10p) 10 cm | Optimus Digital |
4 x Buton 6x6x6 | Optimus Digital |
Header de pini albastru 2.54 mm (40p) | Optimus Digital |
LCD Nokia 5110 | OLX |
Placa de bază:
Schema electrică în Eagle:
Implementare
In rezolvarea partii software pt acest proiect, m-am folosit de o biblioteca facuta pt LCD de Nokia 3310. Cea mai grea parte a fost desenarea pixelilor, pe care i-am retinut intr-o matrice si la fiecare operatie, faceam actualizari asupra lor Ce am implementat? - intampinarea utilizatorului cu un mesaj pana in momentul in care acesta decide sa apese un buton - crearea unui meniu din care utilizatorul isi poate alege 4 nivele: easy, medium1, medium2, hard. - Pentru medium1 -> creste viteza; medium2 -> apar obstacole; hard -> viteza crescuta + obstacole - am creat si niste obiecte mai speciale care reprezinta bonus pt utilizator si ii cresc scorul - Am retinut coordonatele pentru head in 2 variabile, cele pt coada tot in 2 variabile si am mai retinut 2 vectori de coordonate pentru corp. Toata treaba se intampla intr-un while(1) in care pot misca sarpele cu ajutorul butoanelor; senzatia de miscare este data de deplasarea head-ului in directia corespunzatoare si shiftarea tuturor pixelilor, impreuna cu stergerea pixelului corespunzator cozii. Mai mult, ii dau posibilitate utilizatorului sa reia jocul dupa ce a terminat o partida.
- am avut parte de o experiență plăcută, mai ales că nu mai lucrasem pe partea de hardware niciodata
- mi-a plăcut faptul că a trebuit să ne lipim noi toate componentele - parte practică, că de teorie tot avem parte :D
- partea software a fost mai complicată decât cea hardware - LCD-ul Nokia este foarte ușor de folosit
Nume | Link |
---|---|
Laboratoare PM | PM wiki |
Eagle | IC wiki |
Datasheet ATMega324 | doc8272.pdf |
Datasheet LCD Nokia | https://www.sparkfun.com/datasheets/LCD/Monochrome/Nokia5110.pdf |
Schema electrica ATMega324 | proiect2017 |
Exemple de proiecte | halloffame |