Table of Contents

Tic-Tac-Toe on LEDs

Introducere

Proiectul constă în implementarea unuia dintre cele mai cunoscute jocuri ale copilăriei, și anume: X și 0. Deseori, ne putem confrunta cu momente de plictiseală și lipsă de motivație, de aceea am ales să realizez un joc simplu și distractiv, potrivit pentru a te relaxa în timpul liber.

Ideea de bază este cea cunoscută de către toată lumea, existența a 2 jucători, ce vor fi reprezentați prin LED-uri de 2 culori diferite - roșu și verde, ce își realizează mutările alternativ pe cele 9 spații disponibile. Contrar jocului clasic, în cadrul proiectului gameplay-ul se va desfășura împotriva plăcuței Arduino. Scopul jocului este ca jucătorul să marcheze 3 LED-uri de aceeași culoare fie pe linie, coloană sau diagonală, reușind astfel să învingă plăcuța.

Consider că proiectul este util, deoarece constituie un mod distractiv de petrecere a timpului liber, în special în momentele în care suntem singuri, nefiind nevoie de alți jucători disponibili pentru a participa la joc.

Descriere generală

În realizarea implementării, “tabla de joc” va fi simulată prin existența a 18 LED-uri, câte 1 LED roșu și unul verde pentru fiecare din cele 9 căsuțe. Culoarea roșie va reprezenta mutările jucătorului, iar cea verde pe ale computer-ului. Pentru deplasarea pe o anumită căsuță, jucatorul are la dispoziție 5 butoane, constituind mutările: stânga, dreapta, sus, jos, si butonul de OK, ce marchează poziția finală aleasă.

Jucătorul va realiza o mutare, apoi plăcuța își va alege mutarea în următoarea ordine: prima dată va încerca să selecteze cea mai buna poziție pentru a câștiga, apoi va căuta o poziție pentru a pune în dificultate adversarul, iar în final, dacă nu a reușit să facă o mișcare, va selecta o poziție random. Procesul se repetă până când unul dintre playeri câștigă, moment în care se afișează pe ecranul LCD câștigătorul și scorul curent și se aprinde și un LED cu culoarea respectivă. De asemenea, dacă jucătorul a câștigat sau a fost învins, vor porni melodii sugestive în funcție de rezultat.

Schema bloc:

Hardware Design

Lista de piese:

Schema electrică butoane + buzzer:

Schema electrică LED-uri:

Schema electrică ecran LCD:

Software Design

Mediu de dezvoltare: Arduino IDE

Librării şi surse 3rd-party:

Funcția setup():

Câteva dintre funcțiile prezente în codul sursă:

Funcția loop():

Funcția arduinosTurn():

Funcția checkGame():

Mai există de asemenea și alte funcții, al căror nume este destul de sugestiv pentru comportamentul lor: initialise(), checkPossibilities(), checkBlockers(), randomPlay(), playPoss(), endGame(), endSongs().

Rezultate Obţinute

Rezultatele au fost cele dorite, întrucât am reușit să duc la capăt toate funcționalitățile pe care mi le-am propus. Am obținut astfel un joc de X și 0 player-Arduino, la finalul căruia se pot obține 3 scenarii: a câștigat jucătorul, a câștigat Arduino sau a fost remiză. După fiecare rezultat, se va porni o melodie de fundal și un joc de lumini pe LED-urile din combinația câștigătoare, sau un joc de lumini cu toate cele 18 LED-uri în cazul remizei. De asemenea, pe ecranul LCD se va afișa și scorul curent.

Link video demo: https://youtu.be/4XEJhvZ9xkQ

Concluzii

Deși mi s-a părut complicat la început, neștiind cu ce să încep mai întâi în implementarea proiectului, pe parcurs mi-a făcut mare plăcere să lucrez la el, cu siguranță mi-aș dori să mai experimentez cu astfel de proiecte pe viitor. Mi s-a părut foarte interesant și am învățat să pun în practică noțiuni teoretice.

Download

Jurnal

Bibliografie/Resurse

Export to PDF