Differences

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

Link to this comparison view

pm:prj2024:ccontasel:andreea.alexandru02 [2024/05/26 23:34]
andreea.alexandru02 [Rezultate Obţinute]
pm:prj2024:ccontasel:andreea.alexandru02 [2024/05/27 14:09] (current)
andreea.alexandru02 [Software Design]
Line 20: Line 20:
 == Descriere sumară mod de funcționare == == Descriere sumară mod de funcționare ==
 <note tip> <note tip>
-Jocul implementat „Pong ​Revolition” funcționează după următorul mecanism de bază: jucătorii controlează fiecare o paletă pe tabla de joc și trebuie să lovească pucul pentru a-l trimite către adversar, scopul fiind marcarea punctelor prin trecerea pucului pe cealaltă parte a tablei de joc fără ca adversarul să-l returneze. Pe măsură ce jocul progresează,​ power-up-uri aleatorii apar pe tabla de joc. Acestea oferă avantaje sau dezavantaje temporare, modificând dinamica jocului. Pentru a captura un power-up jucătorul trebuie să își coordoneze mișcările astfel încât pucul sa intre în contact cu simbolul acestuia, activându-se automat. Mișcările vor fi ghidate prin utilizarea unui joystick care permite mișcări sus/jos, stânga/​dreapta pe un anumit perimetru.\\+Jocul implementat „Pong ​Revolution” funcționează după următorul mecanism de bază: jucătorii controlează fiecare o paletă pe tabla de joc și trebuie să lovească pucul pentru a-l trimite către adversar, scopul fiind marcarea punctelor prin trecerea pucului pe cealaltă parte a tablei de joc fără ca adversarul să-l returneze. Pe măsură ce jocul progresează,​ power-up-uri aleatorii apar pe tabla de joc. Acestea oferă avantaje sau dezavantaje temporare, modificând dinamica jocului. Pentru a captura un power-up jucătorul trebuie să își coordoneze mișcările astfel încât pucul sa intre în contact cu simbolul acestuia, activându-se automat. Mișcările vor fi ghidate prin utilizarea unui joystick care permite mișcări sus/jos, stânga/​dreapta pe un anumit perimetru.\\
 Jocul se va încheia fie când un jucător atinge un anumit număr de puncte, fie când timer-ul expiră.\\ Jocul se va încheia fie când un jucător atinge un anumit număr de puncte, fie când timer-ul expiră.\\
 De asemenea, jocul va interacționa în mod activ cu jucătorii prin lumini, sunete de victorie/​înfrângere,​ intervenții sonore redate de pe un card SD. De asemenea, jocul va interacționa în mod activ cu jucătorii prin lumini, sunete de victorie/​înfrângere,​ intervenții sonore redate de pe un card SD.
Line 125: Line 125:
          * LED control: Funcții pentru activarea și dezactivarea LED-ului în diferite stări ale jocului (la startul jocului, la colectarea unui pickup verde, respectiv roșu).\\          * LED control: Funcții pentru activarea și dezactivarea LED-ului în diferite stări ale jocului (la startul jocului, la colectarea unui pickup verde, respectiv roșu).\\
 </​note>​ </​note>​
 +
 +
 +<note tip>
 +**Concepte Software folosite:​**\\
 +**-> ADC (Analog-to-Digital Converter)**:​\\
 +Citirea joystick-urilor:​ Valorile analogice de la joystick-uri sunt citite folosind pinii ADC ai Arduino (PLAYER1_X, PLAYER1_Y, PLAYER2_X, PLAYER2_Y). Aceste valori sunt convertite în semnale digitale pentru a controla mișcarea paletelor.\\
 +
 +**-> SPI (Serial Peripheral Interface)**:​\\
 +Controlul display-ului TFT: Display-ul TFT este controlat prin protocolul SPI folosind librăriile Adafruit_GFX și Adafruit_ST7735. Pinii TFT_CS, TFT_DC, și TFT_RST sunt folosiți pentru comunicarea SPI cu display-ul.\\
 +
 +**-> GPIO (General Purpose Input/​Output)**:​\\
 +Controlul LED-urilor: LED-urile sunt controlate folosind pini GPIO. De exemplu, pinul LED_PIN, LED_GREEN_PIN și LED_RED_PIN sunt definiți și utilizați pentru a indica diferite stări ale jocului.\\
 +
 +**-> Timere:**\\
 +Gestionarea pickup-urilor:​ Timer-ele sunt utilizate pentru a gestiona apariția și dispariția pickup-urilor pe ecran (PICKUP_APPEAR_INTERVAL,​ PICKUP_TIMEDOUT). Funcția millis() este folosită pentru a măsura timpul scurs și a declanșa evenimente la intervale regulate.\\
 +
 +**-> PWM (Pulse Width Modulation):​**\\
 +Controlul Buzzer-ului:​ Funcția tone() folosită pentru controlul buzzer-ului utilizează PWM pentru a genera sunetele necesare în timpul jocului.
 +</​note>​
 +
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 137: Line 157:
 -> Documentare și Modularitate:​ Codul a fost bine documentat, iar funcțiile implementate au fost structurate modular, facilitând astfel înțelegerea și posibilele îmbunătățiri viitoare ale proiectului.\\ -> Documentare și Modularitate:​ Codul a fost bine documentat, iar funcțiile implementate au fost structurate modular, facilitând astfel înțelegerea și posibilele îmbunătățiri viitoare ale proiectului.\\
  
-În concluzie, proiectul ​nostru ​a atins obiectivele propuse, oferind o experiență de joc atractivă.\\ \\+În concluzie, proiectul a atins obiectivele propuse, oferind o experiență de joc atractivă.\\ \\
  
 **Demo** -> {{:​pm:​prj2024:​ccontasel:​pong_revolution_demo.zip|}} **Demo** -> {{:​pm:​prj2024:​ccontasel:​pong_revolution_demo.zip|}}
pm/prj2024/ccontasel/andreea.alexandru02.1716755699.txt.gz · Last modified: 2024/05/26 23:34 by andreea.alexandru02
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