This is an old revision of the document!
Candy Crush
Autor
Introducere
Despre proiect
Proiectul ales de mine urmărește o implementare minimală a celebrului joc Candy Crush. Jucătorul va avea de aliniat pe linie sau coloană o serie de bomboane de același tip pentru a le putea distruge primind puncte. Jocul se resetează într-un minut, astfel că challenge-ul îl reprezintă obținerea unui scor cât mai bun.
Scopul proiectului
Scopul proiectului este de familiarizare cu Arduino și perifericele necesare pentru implementarea jocului dar scrierea unui cod ce controlează direct componente hardware. Consider că reprezintă o metodă bună de a pune în aplicare toate noțiunile dobândite, atât software cât și hardware, pentru a realiza un joc de la 0.
Descriere generală
Schema bloc:
Funcționalitate
Jocul presupune interacțiunea cu utilizatorul printr-un joystick prin care se pot alege linia și coloana dorită și va putea alege 2 căsuțe pe care să le interschimbe. Imaginea jocului se va afișa pe LCD, cu forme specifice pentru fiecare “tip de bomboană” și se va menține un scor. De asemenea, se va emite un sunet prin intermediul buzzer-ului ori de câte ori jucătorul reușește să distrugă minim 3 elemente de același tip pe linie sau coloană sau jocul se termină (același lucru se întamplă și la apăsarea butonului de reset).
Hardware Design
Listă de piese
Ordered List ItemArduino Uno
LCD
Modul joystick
Buton
Buzzer
Fire
Breadboard
Schema electrică
Software Design
Mediul de dezvoltare pe care l-am folosit:
Arduino IDE - pentru încărcarea programului pe placuță;
Atom - pentru dezvoltarea codului;
Eagle - pentru realizarea schemei electrice ;
Draw.io - pentru schema bloc a proiectului;
Biblioteci folosite:
Pentru interacțiunea cu LCD-ul, am descărcat libraria PCD8554.h
1);
Pentru redarea melodiei atunci când se expiră timpul alocat fiecarui joc, am folosit codul ce se află în header-ul buzzer.h
2);
Pentru interacțiunea cu joystick-ul, am folosit codul propus de pe site-ul de unde l-am achiziționat
3);
Funcții folosite:
verify_collision() - verific dacă s-a format pe linie sau pe coloană o succesiune de minim 3 bomboane de același tip
print_lcd() - afișez pe ecran scorul dar și matricea cu formele corespunzătoare
reset_lcd() - funcție apelată la apăsarea butonului sau la expirarea timpului alocat
init_timer() - inițializarea timer-ului
createChar() - realizarea corespondența între un char și un tip de bomboană pentru a ușura prelucrarea datelor
drawBitmap() - afișează forma unei bomboane pe ecran
Alte observații:
Ordered List Item
Rezultate Obţinute
Concluzii
Download
Jurnal
24 Aprilie → alegerea temei proiectului
08 Mai → achiziționare piese
11 Mai → realizare montaj hardware
13 Mai → schema electrica
17 Mai → implementare forme pe LCD
18 Mai → updatate pagina ocw și realizare interacțiune între LCD și joystick
20 Mai → interacțtiune LCD - buzzer
21 Mai → varianta finală a jocului
22 Mai → încărcare demo și updatare pagină ocw
Bibliografie/Resurse