Vlad-Ionuţ DĂINEANU (78368) - FLOW

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul consta in implementarea jocului FLOW(watch), un joc mobile destul de popular, care presupune unirea tuturor cercurilor de aceeasi culoare prin intermediul unui traseu, astfel incat sa nu intersecteze alte trasee de culori diferite.

Este un joc de logica si de atentie, cu utilitate pur recreationala.

Am ales acest proiect pentru consolidarea cunostintelor acumulate la laborator legate de utilizarea unui LCD grafic.

Descriere generală

Plansa de joc va fi reprezentata de o matrice patratica in care vor exista mai multe perechi de patratele de aceeasi culoare. Nu vor exista doua sau mai multe perechi de aceeasi culoare. Scopul jucatorului este de a uni patratelele din fiecare pereche prin intermediul unui traseu astfel incat sa nu existe doua trasee care se suprapun, iar intreaga plansa sa fie acoperita de trasee.

  • La inceperea jocului, jucatorului ii va fi prezentat un meniu din care va putea alege nivelul pe care doreste sa il joace. Pentru a selecta un nivel, playerul va trebui sa apese butonul OK.
  • Pentru a naviga intr-un nivel, jucatorul va avea nevoie de 4 butoane: UP/DOWN/LEFT/RIGHT.
  • Pentru a selecta perechea al carei traseu doreste sa il completeze, jucatorul va naviga pana la unul din cele doua patratele de aceeasi culoare si va apasa butonul OK. Apoi, cand va naviga pe plansa prin alte celule libere acestea vor capata culoarea patratelelor.
  • Daca a ajuns la celalalt cerc al perechii traseul va fi finalizat automat si va fi mentinut pe parcursul jocului.
  • Pentru stergerea unui traseu gresit, playerul trebuie sa selecteze o celula de pe parcursul acestuia si sa apese butonul OK.
  • Nu va fi permisa navigarea pe un traseu deja format in timp ce este selectat alt traseu.
  • In timp ce se afla in interiorul unui nivel playerul va putea apasa butonul MENU pentru a accesa optiuni precum: resetarea nivelului(implica stergerea tuturor traseelor deja formate), revenirea la meniul de selectare a nivelului, trecerea la nivelul urmator, revenirea la nivelul anterior.
  • Atunci cand jucatorul completeaza un nivel, buzzerul va reda un jingle pentru a-l atentiona pe acesta.

Hardware Design

Lista de piese:

  • 6 butoane(MENU, OK, LEFT, UP, DOWN, RIGHT)
  • buzzer
  • LCD grafic controlat prin ST7735R (Adafruit 1.8inch TFT)
  • componentele de baza

Schema electrica:

In urma unui eveniment nefericit (am uitat sa apelez in main() functia de initializare a butoanelor pe care mi-o facusem) am reusit sa ard cativa din pinii portului D si ca urmare am transferat butoanele pe port C.

Software Design

Pentru a controla LCD-ul am folosit biblioteca din laboratorul 5.

Rezultate Obţinute

Am dus implementarea jocului la bun sfarsit, ramanand eventual sa mai fac un meniu principal. Acesta nu este insa absolut necesar deoarece, dupa cum se poate observa si din poze, se poate naviga intre nivele folosind optiunile previous si next.

Concluzii

In urma acestui proiect am avut ocazia de a aplica cunostintele dobandite pe parcursul laboratoarelor.

Download

daineanu_vlad.zip

  • Documentația în format PDF
pm/prj2018/imatesica/flow.txt · Last modified: 2021/04/14 17:07 (external edit)
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