Joc 2048

Nume: Roman Gabriel-Marian

Grupa: 333CBb

Introducere

Utilizare

Jocul respecta tiparul clasic al celebrului joc de 2048: pe un grid de 4×4, utilizatorul trebuie sa miste tile-urile cu scopul de a le uni impreuna. Odata ce se ajunge la scorul de 2048, jocul se considera castigat. In cazul in care tot gridul este plin si nu se mai poate face niciun merge, jocul se considera pierdut.

Scop

Scopul jocului este unul destul de simplu, valabil, de altfel, pentru orice alt joc: distractia. Facand parte din categoria jocurilor de puzzle, jocul testeaza atat gandirea logica cat si un anumit nivel al strategiei - swipe-ul inconstient al tile-urilor nu va reusi niciodata sa castige jocul.

Inspiratia

Motivul pentru care am ales sa implementez acest joc in cadrul proiectului este unul destul de simplu: il joc si eu destul de mult in perioade de timp mort (metrou, pauze), fiind un pass-time destul de addictive.

Utilitate

Utilitatea jocului este una destul de evidenta: petrecerea de timp placut, relaxat, intr-un mediu care sa nu ceara prea mult efort de la utilizator insa nici prea putin astfel incat sa devina plictisitor.

Descriere generală

Pentru miscarea/merge-ul tile-urilor, utilizatorul va avea la dispozitie 4 butoane, fiecare simbolizand una dintre directiile posibile de deplasare (sus, jos, stanga, dreapta). Afisajul efectiv al jocului se va face pe un ecran de tip LCD. De asemenea, pe parcursul jocului utilizatorul va fi “acompaniat” de un buzzer multi-ton, folosit pentru a ajuta in interactiunea cu acesta. Daca jocul este pierdut sau daca utilizatorul doreste sa porneasca de la inceput, ii va fi pus la dispozitie un buton de reset.

Hardware Design

Aici puneţi tot ce ţine de hardware design:

Lista de piese

  • Arduino Uno R3
  • ECRAN LCD 1.8”
  • Breadboard
  • Buzzer
  • 5 Butoane
  • Rezistente 1Ω
  • Fire de legatura

schema_electrica_roman.jpg

Software Design

  • Mediu de dezvoltare: Arduino ODE
  • S-au folosit interuperi pentru butoane, protocolul SPI pentru a comunica cu LCD si PWM pentru buzzer.
  • Se foloseste un modul principal (proiect.ino) prin care se deschide proiectul si un altul (2048.c) in care am implementat logica jocului 2048, alaturi de headerul corespunzator (2048.h).

Rezultate Obţinute

Concluzii

Proiectul functioneaza complet, cu toate functionalitatile planuite initial - ba chiar am mai avut timp sa mai adaug si inca una extra in legatura cu buzzerul: de fiecare data cand jucatorul reuseste sa ajunga pentru prima data la un tile de 128, 256, 512 sau 1024, jocul il va anunta atat grafic cat si printr-o melodie a buzzerului.

Download

Pentru cod: good_code.zip

Bibliografie/Resurse

Export to PDF

pm/prj2023/drtranca/joc_2048.txt · Last modified: 2023/05/30 17:25 by gabriel.roman1107
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