Cuprins:

Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe: 5 pași (cu imagini)
Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe: 5 pași (cu imagini)

Video: Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe: 5 pași (cu imagini)

Video: Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe: 5 pași (cu imagini)
Video: Qubic: Artificial Intelligence for 3D Tic-Tac-Toe - Beat the AI 2024, Iulie
Anonim
Image
Image
Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe
Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe
Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe
Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe
Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe
Joc 3D4x: 3D 4x4x4 Tic-Tac-Toe

Te-ai săturat să joci același tic-tac-toe 2-dimensional vechi, plictisitor ?? Ei bine, avem soluția pentru tine! Tic-tac-toe în 3 dimensiuni !!! Pentru 2 jucători, în acest cub 4x4x4, primești 4 LED-uri la rând (în orice direcție) și câștigi! Tu reușești. Tu îl joci.

Pasul 1: Strângeți componente și instrumente

Adunați componente și instrumente
Adunați componente și instrumente

Cea mai esențială componentă a acestui 3D Tic-Tac-Toe este LED-ul. Am ales PL9823 care are deja un controler integrat în interior. Are patru pini (Data-in, Voltage-Supply, Ground, Data-Out) și vă permite să adresați și să controlați cu ușurință culoarea LED-ului. Structura rețelei poate fi construită în multe moduri diferite, dar pentru noi aceasta a fost cea mai ieftină, cea mai robustă și cea mai estetică opțiune.

Lista componentelor:

  • Arduino (am folosit Uno)
  • LED-uri PL9823 (cel puțin 64)
  • Bastoane de frigarui din lemn (24cm lungime)
  • Cablare (am folosit interiorul unui cablu Ethernet vechi)
  • Butoane (stare momentană)
  • 7 rezistoare (220Ohm)
  • Plăci de calcul (1 pentru butoane și redare, 1 pentru conexiuni ușoare de panou la Arduino)
  • Placă din polistiren spumant (~ 2x30x30cm pentru realizarea panourilor)
  • Bloc de polistiren spumant (~ 7x25x25cm ca bază pentru întreaga rețea)

Lista de instrumente:

  • Ciocan de lipit
  • Cutie de lipit
  • Lipici
  • Straightedge cu rigla
  • Cleşte
  • Decapanti de sârmă
  • Freze de sârmă
  • Foarfece
  • Marker
  • Pix
  • Pensetă

Pasul 2: Faceți grila

Image
Image
Faceți grila
Faceți grila
Faceți grila
Faceți grila

Realizăm 4 panouri de LED-uri 4x4 individual.

  • 00: Obțineți polistiren pentru a face aspectul panoului. Desenați modelul. În acest caz, am folosit o distanță de 6 cm între LED-uri cu 2 cm la capete.
  • 01: Introduceți știfturile cu LED-uri în polistiren. Important! Asigurați-vă că introduceți toate LED-urile cu aceeași orientare. În cazul nostru, am ales pinul de ieșire pentru a fi spre stânga.
  • 02: Plasați acum bastoanele de frigăru de tijă de lemn pe ambele părți ale LED-urilor în rânduri, asigurându-vă că toate punctele sunt orientate în aceeași direcție. Lipiți stick-ul pe părțile laterale ale becurilor cu LED-uri și lăsați-l să se usuce.
  • 03: Faceți același lucru pentru coloanele de bețe de frigăru din tijă de lemn de pe ambele părți ale LED-urilor, asigurându-vă că toate punctele sunt orientate în aceeași direcție. Lipiți și lăsați să se usuce.
  • 04: Îndepărtați ușor slăbind LED-urile din jur. Ridicați panoul afară și răsturnați. Lipiți partea din spate, astfel încât să fie mai sigură.
  • 05: După ce totul este uscat, îndoiți știfturile pentru a ușura lipirea și pentru a evita trecerea liniilor electrice. Folosim o pensetă și îndoim știftul de aproape de bază.
  • 06: Acum pregătește firele. Am folosit un cablu Ethernet vechi care are în interior 4 fire cu perechi răsucite. Îndepărtați izolația având grijă să nu tăiați firele mici. Apoi desfaceți, alegeți culorile pentru a corespunde diferitelor linii și tăiați la lungimea potrivită între LED-uri. Apoi îndepărtați puțin izolația de pe capete. Am ales ground = verde, Vdc = albastru, date in / out = alb.
  • 07: lipit! Există o mulțime de conexiuni (64x4), deci aveți grijă să lipiți corect.
  • 08: Scoateți panoul și așezați-l pe baza de spumă!

Pasul 3: Faceți joystick-ul

Faceți joystick-ul
Faceți joystick-ul
Faceți joystick-ul
Faceți joystick-ul

Am folosit un panou pentru a face joystick-ul pentru navigarea în grilă și efectuarea selecției. Am plasat jumperi, rezistențe și butoane pentru a forma circuitul (vezi diagrama) care definește controlerul de direcție (6 butoane, 1 pentru fiecare direcție) și butonul de selecție (intră în mișcarea jucătorului). 5V și pământul sunt conectate la porturile relative de pe Arduino. Pentru pinii de intrare analogici și digitali am ales porturile Arduino A5 și respectiv 2.

Butonul de selecție are o schemă de bază cu rezistorul anti-bunching. Comanda de direcție se bazează pe o scară de rezistență care funcționează ca circuit divizor de tensiune: tensiunea la intrarea analogică depinde de butonul apăsat și este interpretată de Arduino ca o direcție de comandă.

Pasul 4: Scrieți codul

Scrieți Codul
Scrieți Codul

Am încărcat codul nostru pentru al utiliza:) Mai întâi, faceți conexiunile electrice la Arduino. Am pus o mini placă de prindere lângă Arduino pentru a ușura un pic. Am conectat Arduino „GND” și „5V” la 2 linii ale panoului unde am conectat apoi pământul respectiv și Vdc de la fiecare panou. Pentru Data-In și Data-Out am ales 4 pini Arduino diferiți, 13, 10, 7 și 4 pentru fiecare dintre panouri. LED-urile PL9823 pot fi adresate individual în ordinea numerică a LED-urilor în serie. De exemplu, dacă doriți să porniți primul LED pe o anumită culoare, LED-ul de adresă [0]. Pentru al 16-lea LED, adresa LED [15]. Acum sunteți gata să codificați și să vă jucați cu luminile frumoase! Mai jos este o explicație generală a codului jocului 3D tic-tac-toe.

Codul jocului 3D4x

Utilizăm biblioteca fastled.h care ne permite să gestionăm LED-urile micro-controlate.

Cubul este memorat virtual în matricea numerică 3D „TTTMap”, unde fiecare element poate fi în 1 din 5 stări în funcție de lumina corespunzătoare este deținută de: 0 = fără jucător, 1 = jucător 1, 2 = jucător 2, 3 = jucătorul 1 într-o combinație câștigătoare și 3 = jucătorul 2 într-o combinație câștigătoare. Pentru a mapa elementele cubului virtual din TTTMap la LED-urile reale, se utilizează matricele întregi LEDMap0, LEDMap1, LEDMap2, LEDMap3.

Funcția „setup” inițializează porturile Arduino conectate la panou, inițializează toate LED-urile la „negru” și inițializează elementele matricei TTTMap la 0.

Funcția „buclă” rulează funcțiile „ReadButtonInput ()”, „SendLED ()” și, în cazul în care un jucător câștigă, funcția „VictoryAnimation ()”. Prima funcție citește intrarea analogică a comenzii de direcție și intrarea digitală a butonului de selecție. Variabilele booleene „ButtonPush” și „SelectPush” sunt utilizate pentru a evita repetarea mișcării la viteza buclei când butonul este ținut. Funcția „SendLED ()” reîmprospătează stările LED-urilor prin trimiterea semnalului de control serial conform datelor din TTTMap. O funcție fundamentală este „CheckVictory ()”, care este apelată de „ReadButtonInput ()” de fiecare dată când este apăsat butonul de selectare. Această funcție verifică dacă punctul selectat din spațiu face o combinație câștigătoare cu știfturile din jur. În cazul unei combinații câștigătoare, punctele din TTTMap sunt semnate cu numărul 3 sau 4, în funcție de jucătorul care câștigă, și rulează palpitantul „VictoryAnimation ()”!

Pentru a reda din nou, trebuie doar să apăsați butonul de resetare de pe Arduino:)

Pasul 5: Joacă-te cu prietenii tăi

Joacă-te cu prietenii tăi!
Joacă-te cu prietenii tăi!
Joacă-te cu prietenii tăi!
Joacă-te cu prietenii tăi!
Joacă-te cu prietenii tăi!
Joacă-te cu prietenii tăi!

Nu este nevoie de nicio explicație aici … DISCĂTĂȚI-VĂ!

Recomandat: