Table of Contents

Connect4

Autor: Stefan Cristian Popa

Introducere

Proiectul constă în implementarea popularului joc Connect4, în care 2 jucători încearcă să formeze o linie de 4 jetoane consecutive pe o tablă de joc.

Descriere generală

Afișarea jocului se face pe un ecran LCD, iar interacțiunea cu jocul se realizează cu ajutorul a 3 butoane, unul pentru a pune un jeton pe coloana curentă si două pentru a muta coloana selectată la stânga sau la dreapta. Există și un buton ce resetează întregul joc. La început trebuie selectate numărul de jocuri necesare pentru victorie: unul singur, 2/3 sau 3/5, iar câștigătorul are la final un ecran care îl felicită. După un anumit timp, jucătorului curent îi este pus automat un jeton pe coloana curentă și este rândul celuilalt jucător. Scorul se ține în format binar cu ajutorul unor LED-uri.

Schema bloc:

Hardware Design

Proiectul va folosi următoarele componente:

Schema electrica:

Software Design

Pentru comunicarea cu ecranul am folosit bibliotecile TFT.h si SPI.h, iar pentru comunicarea între Arduino am folosit Wire.h.

Jocul se poate afla în una din 3 stări:


Arduino Slave se ocupă de ținutul scorului și al timer-ului de 10 secunde pentru timeout. El anunță master-ul atunci când a trecut timpul sau dacă jucătorul care a câștigat ultima rundă a câștigat și meciul. Scorul este ținut cu ajutorul a 2 LED-uri în format binar, iar atunci când un jucător câștigă meciul, LED-urile sale pâlpâie.

Biblioteca TFT.h expune un obiect TFT ce conține metodele necesare folosirii ecranului: scriere text, desenare dreptunghiuri si cercuri. Aceste funcții se apelează doar atunci când se produc schimbări în starea jocului, codul neefectuând astfel instrucțiuni inutile.

Demo Joc

Rezultate Obținute

Concluzii

Download

Pagina în format PDF
Arhiva: connect4.zip


Bibliografie/Resurse

Link pagină: Connect4
Demo youtube: https://youtu.be/MX2fN1sgkDs
Funcții Arduino: https://www.arduino.cc/reference/en/
https://randomnerdtutorials.com/guide-to-1-8-tft-display-with-arduino/
https://ardushop.ro/ro/home/865-modul-lcd-spi-128x160.html?search_query=Modul+LCD+SPI+128x160&results=392
https://github.com/lcdwiki/LCDWIKI_SPI
Software schema electrică: https://www.autodesk.com/
Schema bloc: https://creately.com/