This is an old revision of the document!


Snake Game

Nume: Nita Laurentiu-Mihai, Grupa: 332CA

Introducere

Scopul proiectului este de a reinterpreta jocul snake pe un LCD avand posibilitatea de a schimba nivelul de dificultate, modificand astfel viteza de deplasare a sarpelui si harta. Ideea principala de la care am plecat este de a avea la indemana un mod prin care te poti delecta.

Descriere generală

Jocul va fi reprezentat pe un display, sunetele vor fi redate printr-un buzzer, iar controlul caracterului va fi realizat prin folosirea unui joystick. Scorul va fi afisat dupa ce se detecteaza o coliziune. De asemenea, jucatorul va putea schimba dificultatea, care este initial setata pe modul “Easy” si reprezentata prin culoarea verde a LED-ului, folosind un buton. La apasarea acestui buton viteza de deplasare a sarpelui va creste, harta se va schimba, iar culoarea LED-ului se va modifica pentru a defini dificultatea curenta. Butonul va cicla prin urmatoarele moduri:

  • Easy (LED verde);
  • Medium (LED galben);
  • Hard (LED rosu).

Schema Bloc:

Hardware Design

Listă de piese:

  • Arduino UNO (ATmega328P)
  • Breadboard
  • LCD
  • LED RGB
  • Buton
  • Joystick
  • Buzzer
  • Fire de legature
  • Rezistente

Schema electrica:


hardware_inside_ln.jpg

final_ln.jpg

Software Design

Librariile necesare pentru proiect sunt:

  • SPI.h
  • TFT.h

Pentru a interactiona cu LCD-ul am folosit libraria TFT.h. Cum ecranul are o dimensiune de 128×160, am decis ca obiectele din joc sa aiba o marime de 5×5, astfel jocul este implementat ca fiind o matrice de 25 de linii si 32 de coloane.

Functii implementate:

  • void pin_ISR(): Intrerupere pentru apasarea butonului care schimba dificultatea jocului
  • void rgbColor(int redLightValue, int greenLightValue, int blueLightValue): Schimba culoarea LED-ului RGB
  • void setup(): Sunt setati pinii si se initializeaza LED-ul, starea jocului, LCD-ul
  • void loop(): Se verifica starea jocului
  • void menu(): Jocul se afla in starea gameMenu si se afiseaza un meniu al jocului pe ecran
  • void game(): Jocul se afla in starea game si sunt realizati urmatorii pasi
    • Se deseneaza harta corespunzatoare dificultatii

Rezultate Obţinute

Concluzii

Download

Jurnal

21 Aprilie 2022: Alegere proiect & creare wiki. Adaugare introducere, descriere generala, lista de componente
8 Mai 2022: Adaugare schema bloc

Bibliografie/Resurse

pm/prj2022/avaduva/snakegame.1654091993.txt.gz · Last modified: 2022/06/01 16:59 by laurentiu.nita
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