Obsah:
- Krok 1: Získajte všetky diely
- Krok 2: 2,8 palcový dotykový farebný displej pre Arduino
- Krok 3: Budovanie projektu a testovanie
- Krok 4: Herný algoritmus
- Krok 5: Kód projektu
- Krok 6: Záverečné myšlienky a vylepšenia
Video: Hra Arduino Touch Tic Tac Toe: 6 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Milí priatelia, vitajte pri ďalšom návode na Arduino! V tomto podrobnom návode postavíme hru Arduino Tic Tac Toe. Ako vidíte, používame dotykový displej a hráme proti počítaču. Jednoduchá hra, ako je Tic Tac Toe, je skvelým úvodom do programovania hier a umelej inteligencie. Aj keď v tejto hre nebudeme používať žiadne algoritmy umelej inteligencie, pochopíme, prečo sú algoritmy umelej inteligencie požadované v zložitejších hrách.
Vývoj hier pre Arduino nie je jednoduchý a vyžaduje si veľa času. Môžeme však pre Arduino vytvoriť niekoľko jednoduchých hier, pretože sú zábavné a umožní nám preskúmať pokročilejšie témy z oblasti programovania, ako je umelá inteligencia. Je to úžasný zážitok z učenia a na konci budete mať peknú hru pre deti!
Teraz postavme tento projekt.
Krok 1: Získajte všetky diely
Časti potrebné na výstavbu tohto projektu sú tieto:
Arduino Uno ▶
2,8 palcový dotykový displej ▶
Náklady na projekt sú veľmi nízke. Stojí iba 15 dolárov
Predtým, ako sa pokúsite postaviť tento projekt, pozrite si video, ktoré som pripravil o dotykovom displeji. Prikladám to v tomto návode. Pomôže vám to porozumieť kódu a kalibrovať dotykový displej.
Krok 2: 2,8 palcový dotykový farebný displej pre Arduino
Tento dotykový displej som objavil na banggood.com a rozhodol som sa ho kúpiť, aby som ho skúsil použiť v niektorých svojich projektoch. Ako vidíte, displej je lacný a stojí okolo 11 dolárov.
Získajte ho tu ▶
Displej ponúka rozlíšenie 320 x 240 pixelov a je dodávaný ako štít, ktorý mimoriadne uľahčuje spojenie s Arduinom. Ako vidíte, displej používa takmer všetky digitálne a analógové piny Arduino Uno. Pri použití tohto štítu nám pre naše projekty zostanú iba 2 digitálne piny a 1 analógový kolík. Našťastie displej funguje dobre aj s Arduino Mega, takže keď potrebujeme viac pinov, môžeme namiesto Arduino Uno použiť Arduino Mega. Tento displej bohužiaľ nefunguje s doskou Arduino Due alebo Wemos D1 ESP8266. Ďalšou výhodou štítu je, že ponúka slot micro SD, ktorý sa veľmi ľahko používa.
Krok 3: Budovanie projektu a testovanie
Po pripojení obrazovky k Arduino Uno môžeme načítať kód a sme pripravení hrať.
Najprv stlačíme tlačidlo „Spustiť hru“a hra sa spustí. Arduino hrá ako prvé. Potom môžeme svoj pohyb hrať jednoduchým dotykom obrazovky. Arduino potom zahrá svoj ťah a podobne. Hráč, ktorý uspeje v umiestnení troch svojich značiek do horizontálneho, vertikálneho alebo diagonálneho radu, vyhráva. Keď sa hra skončí, zobrazí sa obrazovka Game Over. Potom môžeme hru znova spustiť stlačením tlačidla Prehrať znova.
Arduino je v tejto hre veľmi dobré. Vyhrá väčšinu hier, alebo ak ste veľmi dobrý hráč, hra sa skončí remízou. Tento algoritmus som úmyselne navrhol tak, aby robil niekoľko chýb, aby mal ľudský hráč šancu vyhrať. Pridaním ďalších dvoch riadkov do kódu hry dokážeme znemožniť Arduino stratu hry. Ako však môže 2 $ čip, procesor Arduino, poraziť ľudský mozog? Je program, ktorý sme vyvinuli, múdrejší ako ľudský mozog?
Krok 4: Herný algoritmus
Na zodpovedanie tejto otázky sa pozrime na algoritmus, ktorý som implementoval.
Počítač vždy hrá ako prvý. Už len toto rozhodnutie veľmi uľahčuje hre Arduino vyhrať. Prvý krok je vždy roh. Druhý ťah pre Arduino je tiež náhodný roh od zvyšku bez toho, aby sa vôbec staral o pohyb hráča. Od tohto bodu Arduino najskôr skontroluje, či hráč môže vyhrať v nasledujúcom ťahu a či blokuje tento ťah. Ak hráč nemôže vyhrať jediným ťahom, bude hrať rohový ťah, ak je k dispozícii, alebo náhodný zo zostávajúceho. To je všetko, tento jednoduchý algoritmus môže poraziť ľudského hráča zakaždým, alebo v najhoršom prípade hra skončí remízou. Toto nie je najlepší tic tac toe algoritmus hry, ale jeden z najjednoduchších.
Tento algoritmus je možné v Arduine ľahko implementovať, pretože hra Tic Tac Toe je veľmi jednoduchá a môžeme ju ľahko analyzovať a vyriešiť. Ak navrhneme herný strom, môžeme objaviť niektoré víťazné stratégie a ľahko ich implementovať v kóde alebo môžeme nechať CPU vypočítať strom hry v reálnom čase a vybrať si najlepší ťah sám. Algoritmus, ktorý v tejto hre používame, je samozrejme veľmi jednoduchý, pretože hra je veľmi jednoduchá. Ak sa pokúsime navrhnúť víťazný algoritmus pre šach, aj keď použijeme najrýchlejší počítač, nemôžeme vypočítať strom hry za tisíc rokov! V prípade hier, ako je táto, potrebujeme iný prístup, potrebujeme niekoľko algoritmov umelej inteligencie a samozrejme obrovský výpočtový výkon. Viac o tom v budúcom videu.
Krok 5: Kód projektu
Pozrime sa rýchlo na kód projektu. Na zostavenie kódu potrebujeme tri knižnice.
- Adafruit TFTLCD:
- Adafruit GFX:
- Dotyková obrazovka:
Ako vidíte, aj taká jednoduchá hra vyžaduje viac ako 600 riadkov kódu. Kód je zložitý, takže sa ho nepokúsim vysvetliť v krátkom návode. Ukážem vám však implementáciu algoritmu pre pohyby Arduina.
Najprv zahráme dva náhodné rohy.
<int firstMoves = {0, 2, 6, 8}; // použije tieto pozície ako prvé (počítadlo = 0; počítadlo <4; počítadlo ++) // počet prvých odohratých ťahov {if (doska [prvý pohyb [počítadlo]! = 0) // prvý ťah niekto zahrá {movePlayed ++; }} robiť {if (ťahy <= 2) {int randomMove = random (4); int c = firstMoves [randomMove]; if (board [c] == 0) {delay (1000); doska [c] = 2; Serial.print (firstMoves [randomMove]); Serial.println (); drawCpuMove (firstMoves [randomMove]); b = 1; }}
Ďalej v každom kole kontrolujeme, či hráč môže vyhrať v nasledujúcom ťahu.
int checkOpponent ()
{if (board [0] == 1 && board [1] == 1 && board [2] == 0) return 2; else if (board [0] == 1 && board [1] == 0 && board [2] == 1) return 1; else if (board [1] == 1 && board [2] == 1 && board [0] == 0) return 0; else if (board [3] == 1 && board [4] == 1 && board [5] == 0) return 5; else if (board [4] == 1 && board [5] == 1 && board [3] == 0) return 3; else if (board [3] == 1 && board [4] == 0 && board [5] == 1) return 4; else if (board [1] == 0 && board [4] == 1 && board [7] == 1) return 1; inak vráťte 100; }
Ak áno, väčšinou tento pohyb zablokujeme. Neblokujeme všetky ťahy, aby sme dali ľudskému hráčovi šancu vyhrať. Môžete zistiť, ktoré pohyby nie sú zablokované? Po zablokovaní ťahu zahráme zostávajúci roh, alebo náhodný ťah. Môžete si preštudovať kód a ľahko implementovať svoj vlastný bezkonkurenčný algoritmus. Ako vždy, v tomto návode nájdete kód projektu.
POZNÁMKA: Keďže Banggood ponúka rovnaký displej s dvoma rôznymi ovládačmi displeja, ak vyššie uvedený kód nefunguje, zmeňte funkciu initDisplay na nasledujúcu:
void initDisplay ()
{tft.reset (); tft.begin (0x9341); tft.setRotation (3); }
Krok 6: Záverečné myšlienky a vylepšenia
Ako vidíte, dokonca aj s Arduino Uno dokážeme vytvoriť jednoduchý algoritmus pre jednoduché hry. Tento projekt je skvelý, pretože je ľahké ho postaviť, a zároveň je to skvelý úvod do umelej inteligencie a programovania hier. V budúcnosti sa pokúsim vybudovať pokročilejšie projekty s umelou inteligenciou pomocou výkonnejšieho Raspberry Pi, takže zostaňte naladení! Rád by som počul váš názor na tento projekt.
Uverejnite svoje komentáre nižšie a nezabudnite, že sa vám páči návod, ak vás to bude zaujímať. Vďaka!
Odporúča:
DIY hra Arduino Tic Toc Toe: 6 krokov (s obrázkami)
DIY Arduino Tic Toc Toe Game: Hra Tic Tac Toe je klasická hra pre dvoch hráčov. Je zábavné, keď ho hráte so svojimi deťmi, rodinou a priateľmi. Tu som ukázal, ako vytvoriť hru Tic Tac Toe pomocou Arduino Uno, tlačidiel a LED diód Pixel. Toto Arduino založené na 4 x 4 Tic Tac Toe
Elektronická hra Tic-Tac-Toe v drevenom boxe: 5 krokov
Elektronická hra Tic-Tac-Toe v drevenom boxe: Dobrý deň, predstavujem zábavnú hru Tic-Tac-Toe v novom vydaní. Hľadal som na internete podobný projekt, ale myšlienka je tu jedinečná. Dufam, že :) Začnime teda teraz
Hra Microbit Tic Tac Toe: 4 kroky (s obrázkami)
Hra Microbit Tic Tac Toe: V tomto projekte sme s mojím spolupracovníkom - @descartez a vytvorili úžasnú hru tic tac toe využívajúcu rádiovú funkciu mikrobitov. Ak ste o mikrobitoch ešte nepočuli, sú to úžasný mikrokontroléry navrhnuté tak, aby naučili deti programovať. Oni
Hra 3D4x: 3D 4x4x4 Tic-Tac-Toe: 5 krokov (s obrázkami)
Hra 3D4x: 3D 4x4x4 Tic-Tac-Toe: Už vás nebaví hrať rovnaké, staré, nudné, 2-dimenzionálne tic-tac-toe ?? Máme pre vás riešenie! Tic-tac-toe v 3-rozmeroch !!! Pre 2 hráčov v tejto kocke 4x4x4 získate 4 LED v rade (v ľubovoľnom smere) a vyhrávate! Spravíš to. Ty pla
Interaktívna hra Tic-Tac Toe ovládaná pomocou Arduina: 6 krokov
Interaktívna hra Tic-Tac Toe ovládaná pomocou Arduina: Cieľom projektu Physical Tic-Tac-Toe je presunúť známu hru do fyzickej oblasti. Pôvodne hru hrajú dvaja hráči na papieri - striedaním symbolov „X“a „O“. Našim cieľom bolo preskúmať správanie hráčov