This is an old revision of the document!


Wordle

Introducere

Proiectul este o reprezentare a jocului wordle. Scopul lui e posibilitatea de a juca wordle de mai multe ori decat limita impusa pe site-ul oficial (1/zi) si intr-un mediu extern si amuzant. Este un joc antrenant asemanartor unui puzzle de cuvinte care imbunatateste vocabularul englez. De asemenea, pentru mine reprezinta o provocare in gestionarea memoriei si optimizarea cautarii in baza de date folosind exclusiv placuta arduino.

Descriere generală

Atentie! Inainte de a incerca sa cititi descrierea, este util sa intelegeti regulile jocului linkat mai sus.

Afisajul jocului il reprezinta un grid de 5×6 patratele in care vor fi introduse litere care vor forma cuvinte in engleza de 5 litere. Utilizatorul va folosi telecomnda pentru a interactiona cu placuta arduino prin intermediul receptorului IR. Din teleocmanda se vor introduce litere in grid folosind acelasi sablon ca screirea mesajelor pe telefoanele cu tastaura(Ex. apasarea de doua ori a tastei 1 va rezulta in litera B).

Cardul SD retine in mai multe fisiere text toate cuvintele de 5 litere din limba engleza. Dupa introducerea a 5 litere se va apasa o tasta de enter de pe telcomanda, iar cuvantul introdus va fi cautat in fisiere. Daca nu exista, se va afisa un mesaj de eroare pe ecran, altfel, litere vor primi culorile corespunzatoare bazate pe regulile jocului si se va trece la un nou rand.

Jocul se termina cand cuvantul ales la intamplare din baza de date a fost ghicit.

Hardware Design

Lista piese:

- Arduino UNO

- BREADBOARD

- MicroSD card adapter

- Ecran LCD 1'8 SPI

- Telecomanda IR

- Receptor IR

Software Design

Mediu de dezvolatare: Arduino IDE.

Biblioteci:

* ##<Adafruit_GFX.h> |

* <Adafruit_ST7735.h> | → Biblioteci pentru ecran LCD

* <Adafruit_ST7789.h> |

* <SPI.h> → Biblioteca pentru SPI

* <SD.h> → Biblioteca pentru SD reader

* <IRremote.hpp> → Biblioteca pentru telecomanda si receptor IR

In acest algoritm, la fiecare apasare a butonului de enter ( aproximativ 5-6 ori per joc ), este facuta o cautare printre toate cuvintele de 5 litere din dictionarul englez ( 12947 de cuvinte) pentru a se verifica daca cuvantul introdus exista. Problema reala in implementarea proiectului este timpul pe care utilzatorul trebuie sa il astepte pentru a se face cautarea ( minimum 1 secunda , avg. 1.53 s). Solutia la aceasta problema este impartirea dictionarului de cuvinte in mai multe fisiere, iar la introducerea cuvantului cautat curent sa se aleaga fisierul in care se poate afla cuvantul. Numele fisierelor sunt de forma x.txt unde x este oricare litera din alfabetul englez. Scurtarea zonei de cautare a cuvantului aduce timpul asteptat la 0.04 s.

Algoritmul implementat intializeaza toate piesele din componenta proiectului si se asteapta o tasta apasata de la telecomanda IR. In functie de butonul apasat se apeleaza o functie asociata. Butoanele responsabile cu scrierea literelor apeleaza `typeLetter()` care sterge litera deja existenta in casuta prezenta si inlocuieste cu litera curenta. Celelalte butoane sunt responsabile cu parcurgerea in patratele si cautarea unui cuvant in fisierele de pe cardul SD.

Rezultate Obţinute

In urma realizarii proiectului, am obtinut un joc asememanator wordle, afisat pe un ecran LCD 1'8, care poate fi jucat prin telecomanda IR.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2022/apredescu/wordle.1653493844.txt.gz · Last modified: 2022/05/25 18:50 by mihail.maracine0605
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