Differences

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

Link to this comparison view

pm:prj2024:mdinica:gabriela.petrache [2024/05/04 13:44]
gabriela.petrache
pm:prj2024:mdinica:gabriela.petrache [2024/05/26 21:59] (current)
gabriela.petrache [Download]
Line 3: Line 3:
 ===== Introducere ===== ===== Introducere =====
  
-<note tip> +Proiectul implementează jocul 2048, un joc de puzzle cunoscut. Jocul se desfășoară ​pe o tablă ​de dimensiune 4x4, pe care se află piese cu valori între 2 ș2048.\\ 
-Prezentarea ​pe scurt a proiectului vostru: +La fiecare mutare, jucătorul poate alege să mute toate piesele ​de pe tablă într-una din cele patru direcții: sus, jos, stânga sau dreapta, cu ajutorul unui joystick. Dacă două piese cu aceeașvaloare se ciocnesc, ele se combină într-o singură piesă cu valoarea dublă. \\ 
-  * ce face +Scopul jocului este de a obține o piesă cu valoarea 2048, iar jocul se termină atunci când nu mai există mutări posibile sau când jucătorul a obținut piesa cu valoarea 2048.
-  * care este scopul lui +
-  * care a fost ideea de la care pornit +
-  ​* ​de ce credeţi că este util pentru alţii şpentru voi +
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
 +
 +Jocul se va juca cu ajutorul unui joystick, care va fi conectat la placa de dezvoltare. Există butoane pentru resetarea jocului și pentru oprirea/​pornirea muzicii de fundal, care iese din buzzer. Jocul va fi afișat pe un display LCD de 1.3 inch. \\
 +\\
 +{{ :​pm:​prj2024:​mdinica:​diagrama.png?​600 |}}
 +===== Hardware Design =====
  
 <note tip> <note tip>
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.+Listă de piese: 
 +  * Modul microcontroler universal Arduino Uno R3 
 +  * Afișaj grafic 128x160px 
 +  * Modul Joystick 
 +  * Modul cu buton 
 +  * Buzzer pasiv 
  
-Exemplu de schemă bloc: http://​www.robs-projects.com/​mp3proj/​newplayer.html 
-</​note>​ 
  
-===== Hardware Design ===== 
  
-<note tip> 
-Aici puneţi tot ce ţine de hardware design: 
-  * listă de piese 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
 </​note>​ </​note>​
 +**Schematica proiectului**
 +
 +{{:​pm:​prj2024:​mdinica:​2048_sch.png?​700|}}
  
 +{{:​pm:​prj2024:​mdinica:​2048_hww.png?​500|}}
 ===== Software Design ===== ===== Software Design =====
  
Line 33: Line 35:
 <note tip> <note tip>
 Descrierea codului aplicaţiei (firmware): Descrierea codului aplicaţiei (firmware):
-  * mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR) +  * mediu de dezvoltare: platform.io 
-  * librării şi surse 3rd-party ​(e.g. Procyon AVRlib) +  * librării şi surse 3rd-party: Bibliotecile Adafruit_GFX,​ Adafruit_ST7735
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate+
 </​note>​ </​note>​
  
 +** Descrierea functiilor implementate **
 +  * **setup()**:​ Funcție specială în Arduino care este apelată o singură dată la pornirea plăcii pentru a inițializa ecranul și matricea de joc.
 +
 +  * **loop()**: Funcție specială în Arduino care este apelată în mod repetat după ce setup() se termină, este folosită pentru a gestiona logica jocului și a actualiza ecranul.
 +
 +  * **initializeGrid()**:​ Funcție care inițializează matricea de joc.
 +
 +  * **addRandomTile()**:​ Funcție care adaugă o nouă "​plăcuță"​ într-o poziție aleatoare pe tabla de joc. O nouă plăcuță cu valoarea 2 sau 4 este adăugată într-o poziție aleatoare după fiecare mutare, cu probabilitate de 90%, respectiv 10%.
 +
 +  * **drawGrid()**:​ Funcție care desenează grila de joc pe ecranul TFT.
 +
 +  * **drawTile(int x, int y, int value)**: Funcție care desenează o "​plăcuță"​ cu o anumită valoare într-o anumită poziție pe grila de joc.
 +
 +  * **moveLeft()/​moveRight()/​moveUp()/​moveDown()**:​ Funcții care mută toate "​plăcuțele"​ de pe grila de joc la direcția specificată,​ conform regulilor jocului.
 +  * **bool isGameOver()**:​ Funcție care verifică dacă s-a terminat jocul, adică dacă nu mai sunt mutări posibile.
 +  * **void drawGameOverScreen()**:​ Funcție care desenează ecranul de game over și face buzzer-ul să scoată un sunet.
 + 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+[[https://​youtu.be/​jBrJPpIRGsY|Videoclip Demo]] 
 + 
 +[[https://​github.com/​gabrielapetrache/​Jocul-2048/​tree/​main | Repository Github]]
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
 +În concluzie, acest proiect a fost o modalitate excelentă de a învăța și de a aplica cunoștințele despre programare, hardware și interacțiunea utilizatorului într-un mediu practic și distractiv.
 ===== Download ===== ===== Download =====
  
 <note warning> <note warning>
-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ă ;-). +{{:pm:prj2024:mdinica:2048_game.zip|}}
- +
-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>​ </​note>​
  
Line 58: Line 75:
  
 <note tip> <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 ===== +    * - **4 mai** - introducere + componente 
- +  ​* ​  - **16 mai** - hardware design 
-<​note>​ +  ​**26 mai** - finalizare proiect
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+
 </​note>​ </​note>​
- 
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
  
pm/prj2024/mdinica/gabriela.petrache.1714819459.txt.gz · Last modified: 2024/05/04 13:44 by gabriela.petrache
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