Differences

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

Link to this comparison view

pm:prj2022:ionuto:cyclone_game [2022/05/27 23:33]
cezar_dan.mandruta [Software Design]
pm:prj2022:ionuto:cyclone_game [2022/05/28 00:04] (current)
cezar_dan.mandruta [Download]
Line 35: Line 35:
 Proiectul functioneaza ca un automat finit de stari, lucru care se poate observa usor din functia **loop()**. Daca mai tineti minte de la PL (sau LFA mai recent), jocul are un comportament diferit in functie de starea in care se afla. Proiectul functioneaza ca un automat finit de stari, lucru care se poate observa usor din functia **loop()**. Daca mai tineti minte de la PL (sau LFA mai recent), jocul are un comportament diferit in functie de starea in care se afla.
  
-* **start_game()**+  ​* **start_game()**
  
 Cand jocul este la inceput, acesta asteapta ca utilizatorul sa apese butonul pentru a incepe primul nivel. Atata timp cat utilizatorul nu apasa butonul, atat pe inelul de LED-uri cat si pe stick se afiseaza un joc de lumini de tip rainbow swipe (se misca luminile in culorile curcubeului). Cand jocul este la inceput, acesta asteapta ca utilizatorul sa apese butonul pentru a incepe primul nivel. Atata timp cat utilizatorul nu apasa butonul, atat pe inelul de LED-uri cat si pe stick se afiseaza un joc de lumini de tip rainbow swipe (se misca luminile in culorile curcubeului).
  
-* **play_round()**+  ​* **play_round()**
  
 Functia aceasta este apelata mereu cand jocul este in desfasurare. In functie de nivelul la care se afla jucatorul, viteza luminii rosii si marimea target-ului variaza (in functie de variabila globala **game_state**). Am folosit vectori de date pentru a permite folosirea unei singure functii de **play_round()**,​ in loc de una pentru fiecare nivel. Functia aceasta este apelata mereu cand jocul este in desfasurare. In functie de nivelul la care se afla jucatorul, viteza luminii rosii si marimea target-ului variaza (in functie de variabila globala **game_state**). Am folosit vectori de date pentru a permite folosirea unei singure functii de **play_round()**,​ in loc de una pentru fiecare nivel.
  
-* **move_light()**+  ​* **move_light()**
  
 Functia aceasta este apelata din functia **play_round** si realizeaza miscarea luminii rosii cu un pas pe cerc. Functia aceasta este apelata din functia **play_round** si realizeaza miscarea luminii rosii cu un pas pe cerc.
  
-* **pulse_three_times()**+  ​* **pulse_three_times()**
  
 Atunci cand jucatorul nimereste sau rateaza tinta, un joc de lumini ce consta in 3 pulsuri de lumina va fi afisat pe inel si un sunet va fi produs de catre buzzer. Daca jucatorul nimereste, lumina va fi verde, iar tonul sunetului va fi unul acut. Daca jucatorul rateaza, lumina va fi rosie, iar tonul va fi unul grav. La fel ca si mai inainte, in loc sa fac 2 functii am scris doar una, iar tonul dat de buzzer si lumina culorilor de pe inel sunt primite ca si parametrii. Atunci cand jucatorul nimereste sau rateaza tinta, un joc de lumini ce consta in 3 pulsuri de lumina va fi afisat pe inel si un sunet va fi produs de catre buzzer. Daca jucatorul nimereste, lumina va fi verde, iar tonul sunetului va fi unul acut. Daca jucatorul rateaza, lumina va fi rosie, iar tonul va fi unul grav. La fel ca si mai inainte, in loc sa fac 2 functii am scris doar una, iar tonul dat de buzzer si lumina culorilor de pe inel sunt primite ca si parametrii.
  
-* **win()** si **lose()**+  ​* **win()** si **lose()**
  
 Simuleaza starea in care jucatorul nimereste/​rateaza tinta. Apeleaza **pulse_three_times()** cu parametrii corespunzatori. Simuleaza starea in care jucatorul nimereste/​rateaza tinta. Apeleaza **pulse_three_times()** cu parametrii corespunzatori.
  
  
-* **win_all()**+  ​* **win_all()**
  
 Cand jucatorul termina toate nivelele se apeleaza aceasta functie. Cand jucatorul termina toate nivelele se apeleaza aceasta functie.
  
 +  * **BUTON**
  
-===== Rezultate Obţinute =====+De fiecare data cand jocul asteapta input de la utilizator, led-ul butonului clipeste. Acest efect l-am obtinut folosind o intrerupere cu timer pentru LED.
  
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
-</​note>​ 
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +Desi stiam ca imi place sa lucrez cu Arduino avand experienta dinainte, nu m-am asteptat sa fie asa addictive proiectul. Am preferat sa lucrez la el puternic in loc sa fac alte teme (la SO si ASC m(). Si jocul in sine e super fun, chiar m-as juca ca sa treaca timpul si sa nu ma simt asa de prost cand procrastinez.
 +
 +{{ :​pm:​prj2022:​ionuto:​done_box.png?​600 |}}
 ===== Download ===== ===== Download =====
  
-<note warning>​ +{{:pm:prj2022:ionuto:mandruta_cezar-dan_334cb.zip|}}
-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**. +
-</​note>​ +
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +N-am tinut jurnal sincer si de acum nu are rost sa fabulez pe aici. Am cautat piesele pe Amazon, apoi intr-zi de munca puternica am terminat partea de hardware. S-au mai rupt si piesele de cateva ori, stie laborantul ca am mers sa lipesc de 3 ori. Proiectul era gata de vreo 2 saptamani dar de abia azi, 27.05.2022, i-am facut si o cutie cocheta dupa cum se poate observa din poza de mai sus.
-Puteți avea și secțiune ​de jurnal în care să poată urmări asistentul ​de proiect progresul proiectului. +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
- +[[https://​www.hackster.io/​mircemk/​diy-arduino-cyclone-game-with-ws2812b-led-ring-738c58]] 
-<​note>​ +[[https://​fastled.io/​docs/​3.1/​index.html]]
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+
-</note>+
  
 <​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/prj2022/ionuto/cyclone_game.1653683583.txt.gz · Last modified: 2022/05/27 23:33 by cezar_dan.mandruta
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