This shows you the differences between two versions of the page.
pm:prj2025:avaduva:ana_bianca.savin [2025/05/23 21:27] ana_bianca.savin [Software Design] |
pm:prj2025:avaduva:ana_bianca.savin [2025/05/23 23:03] (current) ana_bianca.savin [Bibliografie/Resurse] |
||
---|---|---|---|
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 Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | Totuşi să duc până la capăt proiectul a fost satisfăcător, mai 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> | ||
+ | |||