This shows you the differences between two versions of the page.
pm:prj2021:agrigore:candy-crush [2021/05/22 16:50] diana.patru |
pm:prj2021:agrigore:candy-crush [2021/05/23 11:01] (current) diana.patru |
||
---|---|---|---|
Line 3: | Line 3: | ||
[[diana.patru@stud.acs.upb.ro|Pătru Diana-Georgiana]] | [[diana.patru@stud.acs.upb.ro|Pătru Diana-Georgiana]] | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | {{:pm:prj2021:agrigore:c_crush1.jpg?370|}} | + | {{:pm:prj2021:agrigore:c_crush1.jpg?300|}} |
==== Despre proiect ==== | ==== 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.\\ | 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.\\ | ||
Line 30: | Line 30: | ||
===== Software Design ===== | ===== Software Design ===== | ||
Mediul de dezvoltare pe care l-am folosit: | Mediul de dezvoltare pe care l-am folosit: | ||
- | * Arduino IDE - pentru încărcarea programului pe placuță; | + | * **Arduino IDE** - pentru încărcarea programului pe placuță; |
- | * Atom - pentru dezvoltarea codului; | + | * **Atom** - pentru dezvoltarea codului; |
- | * Eagle - pentru realizarea schemei electrice ; | + | * **Eagle** - pentru realizarea schemei electrice ; |
- | * Draw.io - pentru schema bloc a proiectului; | + | * **Draw.io** - pentru schema bloc a proiectului; |
Biblioteci folosite: | Biblioteci folosite: | ||
- | * Pentru interacțiunea cu LCD-ul, am descărcat libraria PCD8554.h ((https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library)); | + | * Pentru **//interacțiunea cu LCD-ul//**, am descărcat libraria __PCD8554.h__ ((https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library)); |
- | * Pentru redarea melodiei atunci când se expiră timpul alocat fiecarui joc, am folosit codul ce se află în header-ul buzzer.h ((https://www.arduino.cc/en/Tutorial/BuiltInExamples/toneMelody)); | + | * Pentru **//redarea melodiei//** atunci când se expiră timpul alocat fiecarui joc, am folosit codul ce se află în header-ul __buzzer.h__ ((https://www.arduino.cc/en/Tutorial/BuiltInExamples/toneMelody)); |
- | * Pentru interacțiunea cu joystick-ul, am folosit codul propus de pe site-ul de unde l-am achiziționat ((https://ardushop.ro/ro/electronica/127-modul-joystick.html)); | + | * Pentru **//interacțiunea cu joystick-ul//**, am folosit codul propus de pe site-ul de unde l-am achiziționat ((https://ardushop.ro/ro/electronica/127-modul-joystick.html)); |
+ | 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 | ||
+ | <note tip>Alte observații: | ||
+ | - Melodia redată la expirarea timpului alocat sau la apăsarea butonului de reset este apelată cu funcția //play_melody()// din buzzer.h | ||
+ | - Timer-ul este setat să aloce un minut pentru fiecare încercare a jucătorului. | ||
+ | - Alegerea căsuței pentru intershimbarea ei, se realizează cu ajutorul celor 2 valori analogice ale joystick-ului iar selectarea acesteia se obține prin output-ul digital încorporat în joystick | ||
+ | - Inițializarea ecranului cu formele de bomboane este random, astfel că după orice schimbare, se verifică dacă s-a format o nouă succesiune de bomboane | ||
+ | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | Demo: https://www.youtube.com/watch?v=tq6qaPf6Mag\\ | ||
+ | {{:pm:prj2021:agrigore:poza_demo_candycrush.jpeg?600|}} \\ | ||
+ | {{:pm:prj2021:agrigore:candy-crush-poza2.jpeg?600|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Pot spune că a fost un proiect interesant și mă bucur că am reușit să îl implementez până la final ^_^. A fost o experiență nouă în cadrul căreia am reușit să iau puțin contact cu programarea embedded și să realizez un joc funcțional pornind doar de la câteva componente hardware. | ||
===== Download ===== | ===== Download ===== | ||
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | + | Pdf pagina ocw: <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> \\ |
+ | Arhiva cod: {{:pm:prj2021:agrigore:candy-crush.zip|}} \\ | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
* 24 Aprilie -> alegerea temei proiectului \\ | * 24 Aprilie -> alegerea temei proiectului \\ | ||
* 08 Mai -> achiziționare piese\\ | * 08 Mai -> achiziționare piese\\ | ||
- | * 11 Mai -> realizare montaj hardware\\ | + | * 11 Mai -> realizare montaj hardware final\\ |
- | * 13 Mai -> schema electrica \\ | + | * 13 Mai -> schema electrica in eagle \\ |
- | * 17 Mai -> implementare forme pe LCD \\ | + | * 17 Mai -> implementare forme pe LCD și asezarea elementelor pe ecran \\ |
* 18 Mai -> updatate pagina ocw și realizare interacțiune între LCD și joystick\\ | * 18 Mai -> updatate pagina ocw și realizare interacțiune între LCD și joystick\\ | ||
* 20 Mai -> interacțtiune LCD - buzzer | * 20 Mai -> interacțtiune LCD - buzzer |