Sisukord:
- Samm: hankige kõik osad
- Samm: 2,8 -tolline puutetundlik värviline ekraan Arduino jaoks
- 3. samm: projekti koostamine ja selle testimine
- Samm: mängualgoritm
- Samm: projekti kood
- 6. samm: lõplikud mõtted ja täiustused
Video: Arduino Touch Tic Tac Toe mäng: 6 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Kallid sõbrad, tere tulemast järjekordsesse Arduino õpetusse! Selles üksikasjalikus õpetuses ehitame Arduino Tic Tac Toe mängu. Nagu näete, kasutame puuteekraani ja mängime arvuti vastu. Lihtne mäng nagu Tic Tac Toe on suurepärane sissejuhatus mängude programmeerimisse ja tehisintellekti. Kuigi me ei kasuta selles mängus tehisintellekti algoritme, mõistame, miks on tehisintellekti algoritme keerulisemates mängudes vaja.
Arduino jaoks mängude arendamine pole lihtne ja nõuab palju aega. Kuid me saame Arduino jaoks luua mõned lihtsad mängud, sest see on lõbus ja võimaldab meil uurida mõnda täpsemat programmeerimisteemat, näiteks tehisintellekti. See on suurepärane õppimiskogemus ja lõpuks on teil lastele tore mäng!
Nüüd ehitame selle projekti üles.
Samm: hankige kõik osad
Selle projekti loomiseks vajalikud osad on järgmised:
Arduino Uno ▶
2,8 -tolline puutetundlik ekraan ▶
Projekti maksumus on väga madal. See on ainult 15 dollarit
Enne selle projekti loomist vaadake palun puuteekraani kohta koostatud videot. Lisasin selle sellesse juhendisse. See aitab teil koodist aru saada ja puuteekraani kalibreerida.
Samm: 2,8 -tolline puutetundlik värviline ekraan Arduino jaoks
Avastasin selle puutetundliku ekraani saidilt banggood.com ja otsustasin selle osta, et proovida seda mõnes oma projektis kasutada. Nagu näete, on ekraan odav, maksab see umbes 11 dollarit.
Hankige see siit ▶
Ekraani eraldusvõime on 320x240 pikslit ja see on varjestus, mis muudab ühenduse Arduinoga äärmiselt lihtsaks. Nagu näete, kasutab ekraan peaaegu kõiki Arduino Uno digitaalseid ja analoogpistikuid. Selle kilbi kasutamisel jääb meie projektide jaoks ainult 2 digitaalset tihvti ja 1 analoognõel. Õnneks töötab ekraan hästi ka Arduino Mega puhul, nii et kui vajame rohkem nööpnõelu, saame Arduino Uno asemel kasutada Arduino Megat. Kahjuks ei tööta see ekraan Arduino Due ega Wemos D1 ESP8266 plaadiga. Kilbi teine eelis on see, et see pakub micro SD pesa, mida on väga lihtne kasutada.
3. samm: projekti koostamine ja selle testimine
Pärast ekraani ühendamist Arduino Unoga saame koodi laadida ja oleme mängimiseks valmis.
Algul vajutame nuppu „Alusta mängu“ja mäng algab. Kõigepealt mängib Arduino. Seejärel saame oma käiku mängida lihtsalt ekraani puudutades. Seejärel mängib Arduino oma käigu ja nii edasi. Mängija, kellel õnnestub paigutada kolm oma märki horisontaalsele, vertikaalsele või diagonaalsele reale, võidab mängu. Kui mäng on lõppenud, ilmub ekraanile Game Over. Seejärel võime mängu uuesti alustamiseks vajutada uuesti esitamise nuppu.
Arduino on selles mängus väga hea. See võidab enamiku mänge või kui olete väga hea mängija, lõpeb mäng viigiga. Kavatsesin selle algoritmi tahtlikult mõne vea tegemiseks, et anda inimmängijale võimalus võita. Lisades mängu koodile veel kaks rida, saame muuta Arduino mängu kaotamise võimatuks. Kuid kuidas saab 2 -dollarine kiip, Arduino protsessor, inimese aju võita? Kas meie arendatud programm on targem kui inimese aju?
Samm: mängualgoritm
Sellele küsimusele vastamiseks vaatame algoritmi, mille olen rakendanud.
Arvuti mängib alati esimesena. Ainuüksi see otsus muudab mängu Arduino jaoks palju lihtsamaks. Esimene käik on alati nurk. Arduino teine käik on ka ülejäänud nurgast juhuslik nurk, hoolimata mängija käigust. Sellest hetkest alates kontrollib Arduino kõigepealt, kas mängija saab järgmisel käigul võita, ja blokeerib selle käigu. Kui mängija ei saa ühe käiguga võita, mängib ta nurgalööki, kui see on saadaval, või juhuslikku ülejäänud käigust. See on kõik, see lihtne algoritm võib inimmängijat iga kord võita või halvimal juhul toob mäng kaasa viigi. See pole parim tic tac toe mängu algoritm, kuid üks lihtsamaid.
Seda algoritmi saab Arduinos hõlpsasti rakendada, sest Tic Tac Toe mäng on väga lihtne ning me saame seda hõlpsalt analüüsida ja lahendada. Kui kujundame mängupuu, võime avastada mõned võidustrateegiad ja neid hõlpsalt koodis rakendada või lasta protsessoril reaalajas mängupuu välja arvutada ja valida parima käigu. Muidugi on selles mängus kasutatav algoritm väga lihtne, sest mäng on väga lihtne. Kui proovime male jaoks välja töötada võitva algoritmi, isegi kui kasutame kiireimat arvutit, ei suuda me mängupuud tuhande aasta jooksul arvutada! Selliste mängude jaoks vajame teist lähenemist, vajame tehisintellekti algoritme ja muidugi tohutut töötlemisvõimsust. Sellest lähemalt tulevases videos.
Samm: projekti kood
Vaatame kiiresti projekti koodi. Koodi koostamiseks vajame kolme raamatukogu.
- Adafruit TFTLCD:
- Adafruit GFX:
- Puuteekraan:
Nagu näete, nõuab isegi selline lihtne mäng rohkem kui 600 koodirida. Kood on keeruline, nii et ma ei ürita seda lühikese õpetusega selgitada. Näitan teile siiski Arduino käikude algoritmi rakendamist.
Algul mängime kahte juhuslikku nurka.
<int firstMoves = {0, 2, 6, 8}; // kasutab neid positsioone kõigepealt (loendur = 0; loendur <4; loendur ++) // Loe esimesed mängitud käigud {if (board [firstMoves [counter]!! = 0) // Esimest käiku mängib keegi {movePlayed ++; }} do {if (liigub <= 2) {int randomMove = juhuslik (4); int c = firstMoves [randomMove]; if (laud [c] == 0) {viivitus (1000); laud [c] = 2; Serial.print (firstMoves [randomMove]); Serial.println (); drawCpuMove (firstMoves [randomMove]); b = 1; }}
Järgmisena kontrollime igas voorus, kas mängija saab järgmisel käigul võita.
int checkOponent ()
{if (board [0] == 1 && board [1] == 1 && board [2] == 0) return 2; muidu kui (board [0] == 1 && board [1] == 0 && board [2] == 1) return 1; muidu kui (board [1] == 1 && board [2] == 1 && board [0] == 0) return 0; muidu kui (juhatus [3] == 1 && juhatus [4] == 1 && laud [5] == 0) tagastab 5; muidu kui (laud [4] == 1 && juhatus [5] == 1 && laud [3] == 0) tagasta 3; muidu kui (juhatus [3] == 1 && juhatus [4] == 0 && laud [5] == 1) tagasta 4; muidu kui (board [1] == 0 && board [4] == 1 && board [7] == 1) return 1; muidu tagasta 100; }
Kui jah, blokeerime selle käigu enamasti. Me ei blokeeri kõiki käike, et anda inimmängijale võimalus võita. Kas leiate, millised käigud pole blokeeritud? Pärast käigu blokeerimist mängime järelejäänud nurka või juhuslikku käiku. Saate koodi uurida ja hõlpsalt oma parima algoritmi rakendada. Nagu alati, leiate selle juhendi kaudu lisatud projekti koodi.
MÄRKUS. Kuna Banggood pakub sama ekraani kahe erineva draiveriga, kui ülaltoodud kood ei tööta, muutke initDisplay funktsioon järgmiseks:
void initDisplay ()
{tft.reset (); tft.binin (0x9341); tft.setRotation (3); }
6. samm: lõplikud mõtted ja täiustused
Nagu näete, saame isegi Arduino Unoga luua lihtsate mängude jaoks ületamatu algoritmi. See projekt on suurepärane, sest seda on lihtne ehitada ja samal ajal suurepärane sissejuhatus tehisintellekti ja mängude programmeerimisse. Püüan tulevikus ehitada tehisintellektiga rohkem arenenud projekte, kasutades võimsamat Raspberry Pi, nii et olge lainel! Tahaksin kuulda teie arvamust selle projekti kohta.
Palun postitage oma kommentaarid allpool ja ärge unustage, et teile meeldivad juhised meeldivad. Tänan!
Soovitan:
Python Tic Tac Toe mäng: 4 sammu
Python Tic Tac Toe mäng: python tic tac toe mäng see mäng on tehtud pythonis mis on arvutikeel i olen kasutanud pythoni redaktorit nimega: pycharm saab kasutada ka tavalist pythoni koodiredaktorit
Elektrooniline Tic-Tac-Toe mäng puidust kastis: 5 sammu
Elektrooniline Tic-Tac-Toe mäng puidust kastis: Tere! Tutvustan naljakat Tic-Tac-Toe mängu uues väljaandes. Otsisin veebist sarnast projekti, kuid idee on siin ainulaadne. LOODAN :) Nii et alustame kohe
Microbit Tic Tac Toe mäng: 4 sammu (piltidega)
Microbit Tic Tac Toe Game: Selle projekti jaoks lõime koos töökaaslasega - @descartez ja vinge tic tac toe mängu, kasutades mikroobide raadiofunktsioone. Kui te pole mikroobidest varem kuulnud, on see suurepärane mikrokontroller, mis on mõeldud lastele programmeerimise õpetamiseks. Nad
3D4x mäng: 3D 4x4x4 Tic-Tac-Toe: 5 sammu (piltidega)
3D4x mäng: 3D 4x4x4 Tic-Tac-Toe: kas olete väsinud sama, vana, igava, 2-mõõtmelise tic-tac-toe mängimisest? Noh, meil on teile lahendus! Tic-tac-toe 3-mõõtmelisena !!! Kahe mängija jaoks saate selles 4x4x4 kuubikus 4 LED -i järjest (igas suunas) ja võidate! Sa saad hakkama. Sa mängid
Interaktiivne Tic-Tac Toe mäng, mida juhitakse Arduino abil: 6 sammu
Interaktiivne Tic-Tac Toe mäng, mida juhitakse Arduinoga: Projekti Physical Tic-Tac-Toe eesmärk on viia tuntud mäng füüsilisse valdkonda. Algselt mängivad mängu kaks mängijat paberilehel - pannes kordamööda X ja O sümbolid. Meie idee oli uurida mängijate käitumist