Tartalomjegyzék:
- 1. lépés: Szerezze be az összes alkatrészt
- 2. lépés: A 2,8 hüvelykes érintőképernyős kijelző az Arduino számára
- 3. lépés: A projekt felépítése és tesztelése
- 4. lépés: A játék algoritmusa
- 5. lépés: A projekt kódja
- 6. lépés: Végső gondolatok és fejlesztések
Videó: Arduino Touch Tic Tac Toe játék: 6 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Kedves barátaink, üdvözöljük egy újabb Arduino oktatóanyagban! Ebben a részletes bemutatóban egy Arduino Tic Tac Toe játékot fogunk felépíteni. Mint látható, érintőképernyőt használunk, és a számítógép ellen játszunk. Egy egyszerű játék, mint a Tic Tac Toe, remek bevezetés a játékprogramozásba és a mesterséges intelligenciába. Annak ellenére, hogy ebben a játékban nem fogunk mesterséges intelligencia algoritmusokat használni, megértjük, miért van szükség mesterséges intelligencia algoritmusokra az összetettebb játékoknál.
A játékok fejlesztése az Arduino számára nem könnyű, és sok időt igényel. De építhetünk néhány egyszerű játékot az Arduino számára, mert szórakoztató, és lehetővé teszi számunkra, hogy felfedezzünk néhány fejlettebb programozási témát, például a mesterséges intelligenciát. Ez egy nagyszerű tanulási élmény, és a végén lesz egy jó játék a gyerekeknek!
Most építsük fel ezt a projektet.
1. lépés: Szerezze be az összes alkatrészt
A projekt építéséhez szükséges alkatrészek a következők:
Egy Arduino Uno ▶
2,8 hüvelykes érintőképernyő ▶
A projekt költsége nagyon alacsony. Csak 15 dollár
Mielőtt megpróbálná megépíteni ezt a projektet, nézze meg az érintőképernyőről készített videót. Csatoltam ehhez az oktatóanyaghoz. Segít megérteni a kódot és kalibrálni az érintőképernyőt.
2. lépés: A 2,8 hüvelykes érintőképernyős kijelző az Arduino számára
Ezt az érintőképernyőt a banggood.com webhelyen fedeztem fel, és úgy döntöttem, hogy megvásárolom, hogy megpróbáljam használni néhány projektemben. Mint látható, a kijelző olcsó, körülbelül 11 dollárba kerül.
Szerezd meg itt ▶
A kijelző 320x240 képpontos felbontást kínál, és pajzsként érkezik, ami rendkívül megkönnyíti az Arduino -val való kapcsolatot. Mint látható, a kijelző az Arduino Uno szinte összes digitális és analóg érintkezőjét használja. Ennek az árnyékolásnak a használatakor csak 2 db digitális és 1 db analóg csap marad a projektjeinkhez. Szerencsére a kijelző jól működik az Arduino Mega esetében is, így amikor több tűre van szükségünk, használhatjuk az Arduino Mega -t az Arduino Uno helyett. Sajnos ez a kijelző nem működik az Arduino Due vagy a Wemos D1 ESP8266 táblával. A pajzs másik előnye, hogy nagyon könnyen használható micro SD foglalatot kínál.
3. lépés: A projekt felépítése és tesztelése
Miután csatlakoztatta a képernyőt az Arduino Uno -hoz, betölthetjük a kódot, és készen állunk a játékra.
Először megnyomjuk a „Játék indítása” gombot, és a játék elindul. Először az Arduino játszik. Ezt követően egyszerűen játszhatjuk a lépést a képernyő megérintésével. Ezután az Arduino eljátssza a lépését és így tovább. Az a játékos nyeri a játékot, akinek sikerül három jelét vízszintes, függőleges vagy átlós sorba helyeznie. A játék befejeztével megjelenik a Game Over képernyő. Ezután megnyomhatjuk a lejátszás újbóli gombot a játék újraindításához.
Az Arduino nagyon jó ebben a játékban. A legtöbb játékot megnyeri, vagy ha nagyon jó játékos vagy, a játék döntetlennel zárul. Szándékosan úgy terveztem ezt az algoritmust, hogy néhány hibát elkövetjen annak érdekében, hogy az emberi játékosnak esélye legyen a győzelemre. Ha további két sort ad hozzá a játék kódjához, lehetetlenné tehetjük az Arduino elvesztését. De hogyan tud egy 2 dolláros chip, az Arduino CPU legyőzni az emberi agyat? Okosabb -e az általunk kifejlesztett program, mint az emberi agy?
4. lépés: A játék algoritmusa
A kérdés megválaszolásához nézzük az általam megvalósított algoritmust.
A számítógép mindig először játszik le. Ez a döntés önmagában sokkal könnyebbé teszi a játékot az Arduino számára. Az első lépés mindig sarok. Az Arduino második lépése szintén véletlenszerű szöglet a megmaradthoz képest anélkül, hogy törődne a játékos lépéseivel. Ettől kezdve az Arduino először ellenőrzi, hogy a játékos nyerhet -e a következő lépésben, és blokkolja ezt a lépést. Ha a játékos egyetlen mozdulattal sem tud nyerni, akkor sarokmozdulatot játszik, ha rendelkezésre áll, vagy véletlenszerűt a maradékból. Ennyi, ez az egyszerű algoritmus minden alkalommal legyőzheti az emberi játékost, vagy a legrosszabb esetben a játék döntetlennel jár. Ez nem a legjobb tic tac toe játék algoritmus, de az egyik legegyszerűbb.
Ez az algoritmus könnyen megvalósítható az Arduino -ban, mert a Tic Tac Toe játék nagyon egyszerű, és könnyen elemezhetjük és megoldhatjuk. Ha megtervezzük a játékfát, felfedezhetünk néhány nyerő stratégiát, és könnyen megvalósíthatjuk őket kódban, vagy hagyhatjuk, hogy a CPU valós időben kiszámítsa a játékfát, és önmagában válassza ki a legjobb lépést. Természetesen az algoritmus, amelyet ebben a játékban használunk, nagyon egyszerű, mert a játék nagyon egyszerű. Ha megpróbálunk nyerő algoritmust tervezni a sakkhoz, akkor is, ha a leggyorsabb számítógépet használjuk, ezer év alatt nem tudjuk kiszámítani a játékfát! Az ilyen játékokhoz más megközelítésre van szükségünk, szükségünk van néhány mesterséges intelligencia algoritmusra és természetesen hatalmas feldolgozási teljesítményre. Erről bővebben egy későbbi videóban.
5. lépés: A projekt kódja
Nézzük gyorsan a projekt kódját. Három könyvtárra van szükségünk a kód fordításához.
- Adafruit TFTLCD:
- Adafruit GFX:
- Érintőképernyő:
Mint látható, még egy ilyen egyszerű játékhoz is több mint 600 sornyi kódra van szükség. A kód bonyolult, ezért nem próbálom megmagyarázni egy rövid bemutatóban. Mutatom azonban az algoritmus megvalósítását az Arduino mozdulatokhoz.
Először két véletlenszerű szögletet játszunk.
<int firstMoves = {0, 2, 6, 8}; // először ezeket a pozíciókat használja (számláló = 0; számláló <4; számláló ++) // Az első lejátszott mozdulatok számolása {if (board [firstMoves [számláló]!! = 0) // Az első lépést valaki játssza {movePlayed ++; }} do {if (mozog <= 2) {int randomMove = random (4); int c = firstMoves [randomMove]; if (tábla [c] == 0) {delay (1000); tábla [c] = 2; Serial.print (firstMoves [randomMove]); Sorozat.println (); drawCpuMove (firstMoves [randomMove]); b = 1; }}
Ezután minden körben ellenőrizzük, hogy a játékos nyerhet -e a következő lépésben.
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; egyébként if (tábla [3] == 1 && tábla [4] == 1 && tábla [5] == 0) visszatér 5; else if (tábla [4] == 1 && tábla [5] == 1 && tábla [3] == 0) visszatér 3; egyébként if (tábla [3] == 1 && tábla [4] == 0 && tábla [5] == 1) visszatér 4; else if (board [1] == 0 && board [4] == 1 && board [7] == 1) return 1; egyébként vissza 100; }
Ha igen, akkor ezt a lépést legtöbbször blokkoljuk. Nem blokkolunk minden lépést annak érdekében, hogy az emberi játékosnak esélye legyen a győzelemre. Megtalálja, hogy mely mozdulatok nincsenek blokkolva? A lépés blokkolása után egy hátralévő szögletet vagy egy véletlenszerű lépést játszunk. Tanulmányozhatja a kódot, és könnyen megvalósíthatja saját verhetetlen algoritmusát. Mint mindig, ezen az oktatóanyagon találja a projekt kódját.
MEGJEGYZÉS: Mivel a Banggood ugyanazt a kijelzőt kínálja két különböző megjelenítő illesztőprogrammal, ha a fenti kód nem működik, módosítsa az initDisplay funkciót a következőre:
void initDisplay ()
{tft.reset (); tft.begin (0x9341); tft.setRotation (3); }
6. lépés: Végső gondolatok és fejlesztések
Mint látható, még egy Arduino Uno -val is verhetetlen algoritmust tudunk felépíteni az egyszerű játékokhoz. Ez a projekt nagyszerű, mert könnyen felépíthető, ugyanakkor nagyszerű bevezetés a mesterséges intelligenciába és a játékprogramozásba. A jövőben megpróbálok néhány fejlettebb projektet építeni mesterséges intelligenciával az erősebb Raspberry Pi segítségével, így maradjon velünk! Szeretném hallani a véleményét erről a projektről.
Kérjük, tegye meg észrevételeit az alábbiakban, és ne felejtse el tetszeni az utasításokat, ha érdekesnek találja. Kösz!
Ajánlott:
Python Tic Tac Toe játék: 4 lépés
Python Tic Tac Toe játék: python tic tac toe játék Ez a játék pythonban készült, amely számítógépes nyelv
Elektronikus Tic-Tac-Toe játék fa dobozban: 5 lépés
Elektronikus Tic-Tac-Toe játék egy fa dobozban: Hello Bevezetem a vicces Tic-Tac-Toe játékot egy új kiadásban. Kerestem az interneten hasonló projektet, de az ötlet egyedülálló. REMÉLEM :) Szóval kezdjük most
Microbit Tic Tac Toe játék: 4 lépés (képekkel)
Microbit Tic Tac Toe Game: Ehhez a projekthez munkatársam - @descartez és én készítettünk egy fantasztikus tic tac toe játékot a mikrobites rádió funkcióinak felhasználásával. Ha még nem hallott a mikrobitekről, akkor ezek egy fantasztikus mikrokontroller, amelyet a gyerekek programozására tanítottak. Ők
3D4x játék: 3D 4x4x4 Tic-Tac-Toe: 5 lépés (képekkel)
3D4x Játék: 3D 4x4x4 Tic-Tac-Toe: Unod már, hogy ugyanazt a régi, unalmas, 2 dimenziós tic-tac-toe-t játszod ?? Nos, mi vagyunk a megoldás az Ön számára! Tic-tac-toe 3 dimenzióban !!! 2 játékos számára ebben a 4x4x4 kockában szerezzen be 4 LED -et egymás után (bármely irányba), és nyer! Megcsinálod. Játszol
Interaktív Tic-Tac Toe játék, amelyet az Arduino vezérel: 6 lépés
Interaktív Tic-Tac Toe játék Arduino-val vezérelve: A Physical Tic-Tac-Toe projekt célja, hogy egy jól ismert játékot áthelyezzünk a fizikai területre. Eredetileg a játékot két játékos játszik egy papírlapon - az „X” és az „O” szimbólumok felváltásával. Az elképzelésünk az volt, hogy megvizsgáljuk a játékosok viselkedését