Differences

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

Link to this comparison view

pm:prj2021:apredescu:snake [2021/06/03 14:37]
gloria.popa [Rezultate obținute]
pm:prj2021:apredescu:snake [2021/06/03 15:30] (current)
gloria.popa
Line 4: Line 4:
 ===== Introducere ===== ===== Introducere =====
  
-  * Proiectul ​consta in implementarea unui joc de Snake putin imbunatatit ​pe un display LCD. +  * Proiectul ​constă în implementarea unui joc de Snake puțin îmbunătățit ​pe un display LCD. 
-  * Permite ​jucatorului sa interactioneze ​cu elementele din joc prin intermediul unor butoane. +  * Permite ​jucătorului să interacționeze ​cu elementele din joc prin intermediul unor butoane. 
-  * Jocul consider ​ca ar fi util pentru ​ca este un mod bun de relaxare.+  * Jocul consider ​că ar fi util pentru ​că este un mod bun de relaxare.
  
 ===== Descriere generală ===== ===== Descriere generală =====
  
 {{ :​pm:​prj2021:​apredescu:​popa_gloria1.png?​400 |}} {{ :​pm:​prj2021:​apredescu:​popa_gloria1.png?​400 |}}
-  * Jocul va rula pe un display LCD, iar controlul se va realiza prin 4 butoane (sus/jos/stanga/​dreapta). +  * Jocul va rula pe un display LCD, iar controlul se va realiza prin 4 butoane (sus/jos/stânga/​dreapta). 
-  * Viteza ​sarpelui ​este reglabila ​printr-un ​potentiometru+  * Viteza ​șarpelui ​este reglabilă ​printr-un ​potențiometru
-  * Sistem de sunet la colectarea ​mancarii si game over printr-un buzzer.+  * Sistem de sunet la colectarea ​mâncării și game over printr-un buzzer.
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 33: Line 33:
   - Mediu de dezvoltare:   - Mediu de dezvoltare:
     - Arduino IDE     - Arduino IDE
-    - Fritzing → schema ​electrica+    - Fritzing → schema ​electrică
   - Librării utilizate:   - Librării utilizate:
     - **stdio.h** si **stdlib.h** → biblioteci standard     - **stdio.h** si **stdlib.h** → biblioteci standard
-    - **string.h** → pentru lucrul pe sirurile ​de caractere +    - **string.h** → pentru lucrul pe șirurile ​de caractere 
-    - **SPI.h** → pentru a permite comunicarea cu LCD-ul SPI, placuta ​Arduino fiind pe post de master+    - **SPI.h** → pentru a permite comunicarea cu LCD-ul SPI, plăcuța ​Arduino fiind pe post de master
     - **TFT.h** → pentru a simplifica procesul de desenat pe ecran     - **TFT.h** → pentru a simplifica procesul de desenat pe ecran
   - Fișiere sursă:   - Fișiere sursă:
Line 44: Line 44:
 === Logica jocului === === Logica jocului ===
  
-In primul ​rand, am desenat ecranul de start in care jucatorul ​este indemnat sa apese pe un buton pentru a incepe ​jocul. ​In urma acestei ​actiuni ​este redat fundalul ​si este plasata ​prima bucata ​de mancare ​pe harta. De asemenea, este afisat sarpele ​la o pozitie prestabilita ​(acesta ​incepe sa se miste intr-o directie determinata ​de care dintre butoane a fost apasat).+În primul ​rând, am desenat ecranul de start în care jucătorul ​este îndemnat să apese pe un buton pentru a începe ​jocul. ​În urma acestei ​acțiuni ​este redat fundalul ​și este plasată ​prima bucată ​de mâncare ​pe harta. De asemenea, este afișat șarpele ​la o poziție prestabilită ​(acesta ​începe să se miște într-o direcție determinată ​de care dintre butoane a fost apăsat).
  
-Jocul se petrece ​intr-un loop infinit, fiind resetat ​in momentul ​in care sarpele ​se loveste ​fie de un perete, fie de propriul ​sau corp. In acel moment apare ecranul de game over si buzzer-ul scoate un sunet specific.+Jocul se petrece ​într-un loop infinit, fiind resetat ​în momentul ​în care șarpele ​se lovește ​fie de un perete, fie de propriul ​său corp. În acel moment apare ecranul de game over și buzzer-ul scoate un sunet specific.
  
-Logica jocului se bazeaza in principiu pe implementarea unei liste simplu ​inlantuitein care un nod reprezinta ​un patrat ​care alcatuieste sarpele. La fiecare ​iteratie, stabilesc care este noua pozitie ​a capului ​in functie ​de ce input este primit de la butoane. Practic, este nevoie doar sa desenez capul si sa sterg coada (ultimul nod din lista), restul ​sarpelui ramanand in pozitia precedentaAsa se pastreaza ​dimensiunea sa constanta, iar in cazul in care creste ​punctajul nu se mai sterge ​ultimul bloc, incrementandu-se astfel ​aceasta ​dimensiune.+Logica jocului se bazează în principiu pe implementarea unei liste simplu ​înlănțuiteîn care un nod reprezintă ​un pătrat ​care alcătuiește șarpele. La fiecare ​iterație, stabilesc care este noua poziție ​a capului ​în funcție ​de ce input este primit de la butoane. Practic, este nevoie doar să desenez capul și să șterg ​coada (ultimul nod din lista), restul ​șarpelui rămânând în poziția precedentăAșa se păstrează ​dimensiunea sa constantă, iar în cazul în care crește ​punctajul nu se mai șterge ​ultimul bloc, incrementându-se astfel ​această ​dimensiune.
  
-Punctele se acumuleaza ​pe masura ​ce sarpele colecteaza mancarea spawnata ​aleator pe harta, la o pozitie diferita ​de a sa. Fiecare punct obtinut ​este semnalat de catre buzzer printr-un ​bipait ​scurt.+Punctele se acumulează ​pe măsură ​ce șarpele colectează mâncarea spawnată ​aleator pe harta, la o poziție diferită ​de a sa. Fiecare punct obținut ​este semnalat de către ​buzzer printr-un ​bipăit ​scurt.
  
-Viteza ​sarpelui ​poate fi variata ​de catre player cu ajutorul unui potentiometru, aspect care ofera dinamica ​mai buna jocului.+Viteza ​șarpelui ​poate fi variată ​de către ​player cu ajutorul unui potențiometru, aspect care oferă ​dinamică ​mai bună jocului.
  
  
Line 58: Line 58:
  
 {{:​pm:​prj2021:​apredescu:​gloria_hardware1.png?​320 |}} {{:​pm:​prj2021:​apredescu:​gloria_hardware1.png?​320 |}}
-{{:​pm:​prj2021:​apredescu:​gloria_hardware2.png?​320 |}} +{{:​pm:​prj2021:​apredescu:​gloria_hardware2.png?​320 |}}\\
 {{:​pm:​prj2021:​apredescu:​gloria_hardware4.png?​320 |}} {{:​pm:​prj2021:​apredescu:​gloria_hardware4.png?​320 |}}
 {{:​pm:​prj2021:​apredescu:​gloria_hardware5.png?​320 |}}  {{:​pm:​prj2021:​apredescu:​gloria_hardware5.png?​320 |}} 
-{{:​pm:​prj2021:​apredescu:​gloria_hardware6.png?​300|}}+{{:​pm:​prj2021:​apredescu:​gloria_hardware6.png?​320 |}} 
 +{{:​pm:​prj2021:​apredescu:​gloria_hardware7.png?​320 ​|}}
  
 === Demo === === Demo ===
 +
 +[[https://​drive.google.com/​file/​d/​1ntT1oRqcfP05LMMt7KTXZiZ0p_mXRs-t/​view?​usp=sharing]]
  
 ===== Concluzii ===== ===== Concluzii =====
-  * Am reusit sa finalizez implementarea ​propusaatat partea de software ​cat si cea de hardware, cea din urma ajutandu-ma sa inteleg ​mai bine anumite concepte care stau la baza electronicii. +  * Am reușit să finalizez implementarea ​propusăatât partea de software ​cât și cea de hardware, cea din urmă ajutându-mă să înțeleg ​mai bine anumite concepte care stau la bazele ​electronicii. 
-  * In mod clar proiectul ar putea fi imbunatatitin sensul ​in care este destul de dificil pentru un jucator ​nou sa se acomodeze cu inghesuiala ​de pe breadboard. O mai buna organizare a componentelor ​in prealabil ar fi fost de ajutor ​in acest sens. +  * În mod clar proiectul ar putea fi îmbunătățitîn sensul ​în care este destul de dificil pentru un jucător ​nou să se acomodeze cu înghesuiala ​de pe breadboard. O mai bună organizare a componentelor ​în prealabil ar fi fost de ajutor ​în acest sens. 
-  * Per total, a fost o experienta ​foarte ​placuta sa am ocazia de a implementa unul din jocurile ​copilariei in aceasta maniera.+  * Per total, a fost o experiență ​foarte ​plăcută să am ocazia de a implementa unul din jocurile ​copilăriei în această manieră. 
 ===== Download ===== ===== Download =====
 +
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF proiect</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF proiect</​a></​html>​
 +{{:​pm:​prj2021:​apredescu:​ard_snake.zip|}}
  
 ===== Jurnal ===== ===== Jurnal =====
 +
 +  * alegerea proiectului
 +  * crearea paginii de wiki
 +  * cumpărarea pieselor
 +  * realizarea hardware-ului
 +  * realizarea software-ului
 +  * schemă electrică
 +  * completarea documentației
 +  * filmuleț demo
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2021/apredescu/snake.1622720276.txt.gz · Last modified: 2021/06/03 14:37 by gloria.popa
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