Autorul poate fi contactat la adresa: Login pentru adresa
Propunerea mea a fost implementarea unui joc numit “Memory Game” care presupune antrenarea memoriei jucatorului. Pentru a invinge, utilizatorul trebuie sa retina locurile unde se afla formele dezvaluite in actiunile trecute.
Regulile jocului:
Schema electrica
Am gasit o biblioteca pe internet pentru LCD-ul meu si am folosit-o pentru a dezvolta jocul. Am folosit o matrice de simboluri care este aleasa aleator dintr-un pool de posibilitati.
Jocul contine 3 nivele, unul usor, celelalte mai dificile.
La inceput, in meniu este difuzat o partea din melodia star wars cu dupa jucatorul sa poata alege ce nivel doreste sa rezolve.
Pentru fiecare nivel este afisat un cronometru care numara cate o secunda, am folosit timer-ul atmega-ului si laboratorul 2.
Pentru fiecare nivel mai este afisat si cate perechi mai sunt de gasit pentru a incheia nivelul, acesta impreuna cu miscarea pe pozitiile simbolurilor au fost implementate folosind intreruperi pentru portul A al placutei, la care am legat cele 5 butoane.
Dupa fiecare nivel incheiat cu succes, jucatorul are posibilitatea de a rezolva urmatorul nivel sau sa intre in Hall Of Fame unde sunt afisate scorurile tuturor jucatorilor la o rulare a programului. De asemenea, cand jucatorul intra in Hall Of Fame, run-ul lui s-a terminat si ii este calculat un scor care este afisat, fiecare jucatorul avand un ID unic. Dupa ce jucatorul a rezolvat al 3-lea nivel, programul intra automat in Hall of Fame. Daca jucatorul se afla in Hall Of Fame, alt jucator poate incepe un run nou folosind butonul din mijloc al tastaturii. In timpul unui nivel, in momentul in care jucatorul gaseste o pereche o sa se auda un sunet din buzzer-ul conectat la PD5.
Implementare:
Rezultatul este o aplicatie utila pentru exersarea memoriei jucatorului dar poate sa fie si competitiva din cauza punctajului din Hall of Fame.
Aplicatia e perfecta pentru persoanele care vor sa se relaxeze putin si sa-si antreneze neuronii in acelasi timp.
De asemenea aplicatia este portabila si usor de tinut in mana si usor de utilizat.
Mi s-a parut destul de dificil sa conectez toate componentele la inceput ca sa aprind lcd-ul. Nestiind de ce componente aveam nevoie a trebuit sa fac mai multe drumuri in diferite locatii. Ma bucur ca nu am ars nimic!
Jocul are o logica simpla, cea mai dificila parte din program a fost sa inteleg cu adevarat cum functioneaza intreruperile si timer-ul pentru a le folosi in joc. A fost dificil sa gasesc un mod de randomizare bun, pana la urma am gasit pe internet folosind functii din diferite biblioteci.
Cea mai dificila partea a fost sa realizez un cablaj pentru ca proiectul sa arate mai bine (nu am mai lucrat cu asa ceva pana acum).
Consider ca am invatat destul de multe din acest proiect atat hardware, software si modul aranjare a pieselor fiind pentru mine un succes.
Resurse Software
Generarea de numere random: how-do-you-seed-srand
Melodie Star Wars: https://gist.github.com/nicksort/4736535
Biblioteca pentru IL9341: ili9341-library-drive-22-tft-displayderived-adafruit-tft-library-ili9340-type-controller
Laboratoare PM: lab2
Functia PLAYNOTE: pizo%20speaker.html
Resurse Hardware
3544-modul-lcd-spi-de-28-cu-touchscreen-controller-ili9341-i-xpt2046-240x320-px.html
Cablaj : watch