Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul consta in implementarea unui joc de tip puzzle, bazat pe forme, folosind ca suprafata de afisare una sau mai multe matrici de LED-uri. La inceputul fiecarei runde apar 2 randuri(unul sus si unul jos) de cate 3 forme random.
Treptat randul de sus se apropie de randul de jos.
Misiunea jucatorului este sa modifice formele de jos astfel incat sa fie la fel cu cele de sus,prin intermediul unor butoane aferente fiecarei forme, inainte ca cele doua randuri sa se ciocneasca.
Jocul se termina daca cele doua seturi de forme nu sunt identice cand se intalnesc. Va exista posibilitatea cresterii vitezei de coborare a pieselor de sus pentru trecerea mai rapida la runda urmatoare.
Scopul proiectului este unul de divertisment.
Lista piese:
Schema electrica
Mediu de dezvoltare:
Afisarea formelor se foloseste de fenomenul persistence of vision.Led-urile sunt stinse si aprinse la o frecventa suficient de mare insesizabila ochiului uman. Am ales aceasta abordare deoarece matricea are liniile si coloanele comune.
Pentru deplasarea figurilor de sus am folosit un timer caruia i-am activat intreruperea de comparare.In rutina de tratare a intreruperii schimb pozitia randului de sus, verific coliziunea cu randul de jos si maresc dificultate jocului, daca este necesar, prin micsorarea pragului de comparare.
Tipul formelor de la inceputul jocului sunt complet random - lucru asigurat prin schimbarea seed-ului de la rulare la rulare (seed-ul este scris/citit din EEPROM)
Functii importante:
void make_bot_form(int type, int poz) //afisarea forme de jos in functie de tip si pozitie void make_top_form(int type, int poz, int height) //afisare forme de jos in functie de tip pozitie si distanta fata de linia de sus void get_random_data(void) //generarea date random void make_end_life(void) //animatie de sfarsit
Proiectul a fost unul interesant si nu foarte complicat. O dificultate a constituit-o realizarea hardu-lui in special numarul de mare de fire care au trebuit lipite si gasirea de piese.
In mare am realizat ceea ce mi-am propus.
6 Aprilie - am primit placa de baza;
13 Aprilie - am luat piesele de baza si am inceput lipirea lor
20 Aprilie - am ales tema si am facut schema bloc
27 Aprilie - am terminat de facut placa de baza; am testat-o;
29 Aprilie - am determinat lista de piese si le-am comandat;
11 Mai - am inceput sa lipesc piesele pe placa de test;
15 Mai - am terminat de lipit placa de test si am verificat ca functioneaza;
20 Mai - dezvoltare soft;
23 Mai - terminat proiect;