Table of Contents

Alexandra-Oana MACOVEI (78708) - Ultimate Tic-Tac-Toe

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Jocul clasic de X și 0 poate fi prea banal uneori, așadar acest proiect presupune o implementare a variantei avansate de X și 0, care vine cu un set nou de reguli și cu noi strategii din partea jucătorilor.

Tabla jocului se împarte în 3×3 blocuri principale, iar fiecare mai conține încă 3×3 căsuțe locale. Jocul se termină când unul dintre jucători reușește să marcheze 3 căsuțe principale adiacente pe orizontală, verticală sau diagonală. O căsuță principală este marcată în momentul în care 3 locale sunt marcate după aceeași regulă.

Jocul este unul strategic și vine cu provocări noi pentru jucători, fiind și un bun prilej pentru momentele de relaxare între două teme.

Toate regulile jocului se regăsesc aici: https://en.wikipedia.org/wiki/Ultimate_tic-tac-toe

Descriere generală

Schema bloc

Placuța vine însoțită de un ecran LCD și de 5 butoane.

LCD - pentru afișarea jocului;
Tastatură - tastatură matriceală 4×4, numerele de la 1 la 9 se folosesc pentru a da coordonatele în care va scrie jucătorul.

Hardware Design

Listă de piese:
* Placa de bază
* Componente de bază
* Display LCD
* Breadboard
* Tastatură
* Fire mama-mama
* Fire tata-tata
* Convertor de niveluri logice bidirecțional pe 8 biți.

Schemă electrică

Software Design

Mediu de dezvoltare: Sublime și BootloaderHID. Biblioteci: ILI9341

Descriere:

Implementarea începe cu partea grafică: am desenat un grid de 9×9, grupat în blocuri de 3×3 și am realizat o funcție care să-mi încadreze întotdeauna într-un chenar căsuța în care mă aflu.

Implementarea începe cu partea grafică: am desenat un grid de 9×9, grupat în blocuri de 3×3. Întotdeauna va apărea jucătorul al cărui rând este și cadranul în care are posibilitatea de a completa cu X sau cu 0. În momentul în care un cadran este câștigător, toate completările din acesta se vor colora în funcție de câștigătorul parțial.

Pentru a alege căsuța în care completez, aleg coordonatele acesteia, alegând linia și coloana din cadranul valid.

Funcții importante:
getWinner - va verifica fiecare linie, coloană, diagonală
printLocal, printGlobal - vor desena cadranele mici, respectiv pe cele mari
print_elem, print_cel - desenez X sau 0
printCurrentPlayer - afișez în dreapta jucătorul curent și cadranul în care poate completa

Rezultate Obţinute

Concluzii

Proiectul a fost unul interesant, deoarece a testat atat cunostintele de hardware, cat si pe cele de software, care împreună au dus la realizarea unui proiect palpabil. Am întâmpinat probleme de dificultate în alimentarea corectă a LCD-ului, din cauza unor decizii luate în necunoștință de cauză la realizarea plăcuței de bază. Pentru a corecta problema, am folosit ulterior un convertor de niveluri pe 8 biți și un tranzistor. O altă problemă a fost găsirea bibliotecii compatibile cu tipul LCD-ului, deoarece se găsea doar Arduino.

După rezolvarea problemelor, implementarea software s-a desfășurat mai ușor, iar jocul este unul funcțional. ^_^

Download

Ultimate Tic Tac Toe - cod sursă

Jurnal

1. - alegerea proiectului
2. - realizare milestone 1
3. - realizare schema electrică
4. - am cumparat plăcuța de test, LCD, butoanele și firele
5. - realizarea placutei de baza
6. - mi-am dat seama că nu va merge LCD-ul ⇒ am cumpărat convertorul de niveluri pe 8 biți
7. - implementare software
8. - documentatie finala

Bibliografie/Resurse