Table of Contents

Guess the word/number - Vasilovici Maria

Introducere

  • Vasilovici Maria
  • 332CD
  • Indrumator: Razvan Virtan

Proiectul implementat consta in doua minigame-uri similare, in care utilizatorul trebuie sa ghiceasca fie un numar de 4 cifre, fie un cuvant in limba engleza format din 5 litere.

Primul joc este inspirat din Mastermind (board game), acela folosind culori in loc de cifre. Pentru a ghici numarul generat random, jucatorul poate incerca in mod repetat sa introduca 4 cifre. La fiecare incercare, i se va indica pe display cate dintre cifrele alese sunt in numarul pe care trebuie sa il ghiceasca, si cate dintre acestea sunt si pe pozitia corecta. Numerele generate sunt cuprinse intre 1000 si 9999, avand toate cifrele distincte.

Jocul cu litere se bazeaza pe Wordle, utilizatorul avand doar 6 incercari sa descopere cuvantul. Nu pot fi introduse 5 litere oarecare, luandu-se in considerare doar cuvintele valide in limba engleza. Spre deosebire de primul joc, aici se va stii exact care dintre litere sunt pe pozitia corecta sau nu, cu ajutorul LED-urilor pozitionate deasupra acestora (verde = corect, galben = litera exista in cuvant dar pe alta pozitie, LED stins = litera nu exista in cuvant).

Ambele jocuri au efecte sonore, care se pot dezactiva prin apasarea tastei 3 in scena de start.

Descriere generală

Ca input, jucatorul se va folosi de cele 12 butoane (cifre de la 0 la 9, avand asociate si cate 3-4 litere fiecare, in stilul telefoanelor cu butoane, si inca doua butoane: Delete si Enter). Initial, acesta va alege unul dintre cele doua jocuri, apasand pe 1 sau 2. Cuvintele de 5 litere sunt stocate in fisiere pe MicroSD.

Schema bloc

Hardware Design

Listă de piese:

Registrele de deplasare (shift registers) au fost folosite deoarece aveam nevoie de mai multi pini I/O decat sunt pe Arduino. Astfel, am folosit doua registre de tip SIPO (serial-in parallel-out) si acum pot controla cele 5 LED-uri RGB (care ar avea nevoie in total de 15 pini) cu doar 3 pini de output din Arduino.

Schema circuit

Pini Arduino folositi:

Software Design

Mediu de dezvoltare: Arduino IDE

Biblioteci folosite
Principalele functii implementate
Functionalitati din laboratoare

Codul si alte fisiere utilizate: https://github.com/MariaVasilovici/Proiect-PM.git

Rezultate Obţinute

Demo video: https://youtu.be/RpgC-c8_2aM

Explicatii pentru video

La primul joc, am introdus numarul 2869 si mi s-a afisat 2 0, semnificand faptul ca doua dintre aceste cifre sunt in numarul pe care trebuie sa-l ghicesc, dar niciuna nu este pe pozitia corecta. Cu scopul de a nu face videoclipul prea lung, m-am uitat in Serial Monitor care afiseaza direct numarul generat pentru ghicit si am introdus 8725.

Pentru al doilea joc, primul cuvant pe care l-am scris a fost BREAD. Luminile care s-au aprins semnificau faptul ca R este pe pozitia corecta (a doua litera din cuvant), iar E si D exista in cuvant dar nu pe acele pozitii. Apoi am introdus JGPWD pentru a arata ca sunt luate in considerare doar cuvintele existente in limba engleza, nu oarecare 5 litere. Am trisat din nou si m-am uitat sa vad care era cuvantul pe care trebuia de fapt sa il ghicesc si l-am scris pe acesta.

Concluzii

Implementarea proiectului a fost interesanta, una dintre temele mele preferate, chiar daca de obicei prefer partea de sofware. Cele doua minigame-uri pe care le-am facut sunt inspirate din jocuri reale care imi plac si am petrecut destul de mult timp jucandu-le. Sunt mandra ca am reusit sa le construiesc eu “de la zero” si sa invat informatii utile pe parcursul acestei realizari. Ca bonus, pot modifica foarte usor diverse aspecte ale jocurilor, de exemplu sa adaug cuvinte custom pentru ghicit sau sa fie numere de mai multe cifre, nu doar 4. Initial eram intimidata de ideea ca sunt nevoita sa fac un proiect hardware, dar nu a fost chiar asa de dificil precum imi imaginam.^_^