Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:avaduva:ana_bianca.savin [2025/05/23 21:17]
ana_bianca.savin [Software Design]
pm:prj2025:avaduva:ana_bianca.savin [2025/05/23 23:03] (current)
ana_bianca.savin [Bibliografie/Resurse]
Line 73: Line 73:
 În funcţia de setup, am iniţializat ecranul, iar apoi pinul pentru buton ca INPUT, cel pentru buzzer şi cel pentru modulul de card SD ca OUTPUT. În funcţia de setup, am iniţializat ecranul, iar apoi pinul pentru buton ca INPUT, cel pentru buzzer şi cel pentru modulul de card SD ca OUTPUT.
  
-Jocul are un splash screen ce este randat înainte să se apese butonul. In funcţia de loop, se verifică constant dacă butonl se apasă sau nu. Când acesta este apăsat, variabila bool splashScreen ia valoare fals, iar jocul începe. Jucătorul controlează prin buton când sare dinozaurul. Acesta este mereu plasat la poziţia 0 pe hartă. Pentru a face delimitarea între cadre, am folosit funcţia delay astfel: delay(200 - (score * 3)). În acest mod, cu cât scorul este mai mare, cu atât jocul se mişcă mai repede.+Jocul are un splash screen ce este randat înainte să se apese butonul. In funcţia de loop, se verifică constant dacă butonl se apasă sau nu. Când acesta este apăsat, variabila bool splashScreen ia valoare fals, iar jocul începe. Jucătorul controlează prin buton când sare dinozaurul. Acesta este mereu plasat la poziţia 0 pe hartă. Pentru a face delimitarea între cadre, am folosit funcţia delay astfel: delay(200 - (score * 2)). În acest mod, cu cât scorul este mai mare, cu atât jocul se mişcă mai repede.
  
  
Line 86: Line 86:
 **Obstacole** **Obstacole**
  
-La fiecare cadru obstacolele se apropie de dinozaur, prin randarea lor la poziţia anterioară minus 1. Obstacolele sunt de 2 feluri: cactuşii, care sunt pe nivelul pământului şi păsările, care sunt pe nivelul saltului. Pentru a face jocul sa fie echilibrat, am decis ca, la un moment dat, pe ecran pot sa fie maxim 2 cactuşi şi o pasăre. Astfel, trei variabile care reţin poziţia fiecăreia dintre ele. Am încercat să simulez generarea random a obstacolelor. Astfel, când există doar un cactus în scenă, cu cât acesta se apropie de dinozaur, cu atât şansa să vina în scena cel de al doilea cactus creşte. Dacă un cactus ajunge pe poziţia 1, lângă jucător (care este mereu pe 0), fără ca un al doilea cactus sa fi intrat în scenă, acesta va apărea garantat pentru a menţine ciclul. Pentru pasăre, am decis să existe o şansă de 15% ca ea să apară în orice cadru în care nu există deja şi în care cei doi cactuşi au poziţia mai mică decât 15. Această condiţie asigură că pasărea nu poate apărea deasupra unui cactus, astfel făcând rezolvarea imposibilă.+La fiecare cadru obstacolele se apropie de dinozaur, prin randarea lor la poziţia anterioară minus 1. Obstacolele sunt de 2 feluri: cactuşii, care sunt pe nivelul pământului şi păsările, care sunt pe nivelul saltului. Pentru a face jocul sa fie echilibrat, am decis ca, la un moment dat, pe ecran pot sa fie maxim 2 cactuşi şi o pasăre. Astfel, trei variabile care reţin poziţia fiecăreia dintre ele. Am încercat să simulez generarea random a obstacolelor. Astfel, când există doar un cactus în scenă, cu cât acesta se apropie de dinozaur, cu atât şansa să vina în scena cel de al doilea cactus creşte. Dacă un cactus ajunge pe poziţia 1, lângă jucător (care este mereu pe 0), fără ca un al doilea cactus sa fi intrat în scenă, acesta va apărea garantat pentru a menţine ciclul. Pentru pasăre, am decis să existe o şansă de 15% ca ea să apară în orice cadru în care nu există deja şi în care cei doi cactuşi au poziţia mai mică decât 15 şi poziţia lor nu este cea mai din dreapta (cazul în care tocmai au apărut). Această condiţie asigură că pasărea nu poate apărea deasupra unui cactus, astfel făcând rezolvarea imposibilă.
  
 Pentru a testa coloziunea dintre dinozaur şi obstacole, în fiecare cadru se verifică: Pentru a testa coloziunea dintre dinozaur şi obstacole, în fiecare cadru se verifică:
Line 110: Line 110:
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Proiectul cu bateria conectată: 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</​note>​+{{:​pm:​prj2025:​avaduva:​savin_ana_bianca_fara_cutie.jpeg?​200|}} 
 + 
 +Proiectul aşezat într-o cutie astfel încât doar ecranul, buzzer-ul şi butonul să fie vizibile: 
 + 
 +{{:​pm:​prj2025:​avaduva:​savin_ana_bianca_in_cutie.jpeg?200|}} 
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Nu am mai folosit Arduino deloc înainte de a realiza acest proiect, deci pot spune că am învăţat multe de la comanda pieselor potrivite până la scrierea codului.
  
-<note warning>​ +Majoritatea lucrurilor nu am mers din prima şi a fost nevoie de mult căutat pe Internet şi debugging. Unul dintre primele lucruri la care m-am blocat a fost faptul ca trebuia să înşurubez puţin şurubul ​de pe spatele I2C-ului de pe ecran, pentru a vedea bine.
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script ​de compilare şi copiere automată ​pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Totuşi să duc până la capăt proiectul a fost satisfăcătormai ales când pot să îl folosesc la final.
-</​note>​+
  
-===== Jurnal ​=====+Link demo: https://​youtu.be/​PXyI-jHPegI 
 + 
 + 
 +===== Download ​===== 
 + 
 +Arhiva cu codul: {{:​pm:​prj2025:​avaduva:​savin_ana_bianca_dino_endless_runner.zip|}}
  
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
-</​note>​ 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +Resurse hardware: 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse ​Software** şi **Resurse Hardware**. +  * https://​lastminuteengineers.com/​arduino-micro-sd-card-module-tutorial/​ 
-</note>+  ​https://​docs.arduino.cc/​built-in-examples/​digital/​Button/​ 
 +  ​https://​lastminuteengineers.com/​i2c-lcd-arduino-tutorial/​ 
 + 
 + 
 +Resurse ​software: 
 +  ​https://​gist.github.com/​mikeputnam/​2820675 
 +  * https://​www.engineersgarage.com/​how-to-create-custom-characters-on-lcd-using-arduino-part-5-49/​ 
 + 
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
 +
  
pm/prj2025/avaduva/ana_bianca.savin.1748024238.txt.gz · Last modified: 2025/05/23 21:17 by ana_bianca.savin
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0