Tartalomjegyzék:

Arduino csatahajó játék: 3 lépés
Arduino csatahajó játék: 3 lépés

Videó: Arduino csatahajó játék: 3 lépés

Videó: Arduino csatahajó játék: 3 lépés
Videó: 🎮Игры на светодиодном кубе [Arduino GameDev] 2024, November
Anonim
Arduino csatahajó játék
Arduino csatahajó játék

Emlékszem, gyerekkoromban játszottam a Csatahajó játék papír és ceruza verziójával. Valójában az 1. világháború óta létezik. Nekem is volt egy „elektronikus” változatom a hatvanas évek elején „Sonar Sub Hunt” néven, amely fényeket és hangokat, valamint rejtett aknákat tartalmazott. A mai videojáték -szabványok szerint a Battleship elég unalmas, de úgy gondoltam, hogy csinálok egyet, csak azért, hogy lássam, az unokák mit gondolnak erről. Végül is néha a retro is menő lehet.

Ennek a projektnek vannak olyan részei, amelyek máshol is hasznosak lennének, még akkor is, ha nem kíváncsi a Csatahajó játék elkészítésére. Egyszerű 4 bites 1602 LCD interfésszel rendelkezik, amely tartalmaz egy rutinot egy adott karakter helyének beállításához. Van egy interfész a 4x4 kapcsoló mátrix dekódolására is. Ez a két felület különálló fájlként érhető el, így könnyen szállítható. A játéknak különféle hanghatási rutinjai és egyszerű, egy tranzisztoros audió erősítő áramköre is van.

1. lépés: Hardver

Hardver
Hardver
Hardver
Hardver

Az itt bemutatott vázlat egyetlen játékosra vonatkozik, így két egységet kell készíteni. Az egységek 3 vezetékes interfészen keresztül kommunikálnak, amely tartalmazza az UART TX és RX vonalakat és egy földelő vezetéket. Úgy döntöttem, hogy egy szabványos 1/8 hüvelykes sztereó fejhallgató -csatlakozót és egy szabványos kábelt használok, mindkét végén dugókkal. Az egyik doboz RX-je a másik doboz TX-jéhez megy, és fordítva. Ezt úgy teheti meg, hogy a doboz belsejében lévő fejhallgató -csatlakozóhoz forrasztott vezetékeket felcseréli, vagy az áramköri lapon felcseréli, amikor felépíti.

A klasszikus játék mátrixként készült, de úgy döntöttem, hogy egy egyszerű megvalósítást végzek, 1602 LCD -t használva a kijelzőn. Az első sor a játékos hajóhelyeit és az ellenfél lövéseit mutatja. A második sor a játékos lövéseit és az ellenfél hajóin elért ütéseket mutatja. Ez 16 lehetséges helyet biztosít a hajóknak. A hajók számát a szoftver határozza meg, és önkényesen 5 -öt választottam.

A 16 hajóhely jól illeszkedik a kapcsolási követelményekhez, mert lehetővé teszi a 4x4 mátrixot. Vannak 4x4 mátrixos kapcsolópárnák, de úgy döntöttem, hogy az egyes kapcsolókat egyetlen sorban használom, hogy megfeleljenek a lineáris kijelzőnek. A kapcsolókat azonban 4x4 -es mátrixként bekötöttem, így csak nyolc Arduino csap szükséges. Tekintse meg a kapcsolók kapcsolási rajzát és a kapcsolási rajzot a megfelelő csatlakoztatáshoz.

Az LCD kijelző 4 bites interfészhez van csatlakoztatva. Hozzáadtam egy külső LED -et is a D13 érintkezőhöz, jelezve, hogy melyik játékosnak kell fényképeznie. Kezdetben a játékosok döntik el, ki készíti el az első lövést, majd a szoftver automatikusan vezérli a játék előre -hátra irányát.

Egyszerű hanghatásokat akartam hozzáadni a lövéshez, a robbanásokhoz, a játék kész állapotához és a győzteshez/veszteshez. Próbáltam egy egyszerű piezo hangjelzőt használni, de végül egy kis hangszórót kaptam. A hangszóró által igényelt áram meghaladja azt, amit az Arduino képes kezelni, ezért hozzáadtak egy egyszerű tranzisztoros erősítőt. A hang még mindig nem túl jó, de jobb, mint a hangjelzőnél. A hangszóróm 4 ohmos, de ha van egy 8 ohmos, cserélje le az ellenállást a vázlatban 39 ohmról 33 ohmra. Ha piezo hangjelzőt használ, akkor azt közvetlenül az Arduino csapból kell meghajtania úgy, hogy a zümmögő másik oldala földhöz van kötve.

Tartozik hozzá egy külső reset kapcsoló is, amely közvetlenül a föld és az Arduino „reset” csapja közé van kötve. Ez lehetőséget ad a játék újraindítására.

2. lépés: Szoftver

A szoftver rendelkezik az LCD interfészhez tartozó include fájllal, és létrehoztam egy include fájlt is a 4x4 kapcsoló mátrix szkenneléshez. Az inicializálás felszólítja a játékost, hogy válassza ki a hajói helyét, majd „kész” állapotba kerül. Amikor mindkét játékos készen áll, egyikük elindítja a játékot egy kapcsoló megnyomásával.

A lövés helyét az UART -on keresztül továbbítják a másik játékosnak, és a megfelelő eredményt visszaküldik a lövést leadó játékosnak. Amint azt korábban említettük, az első felvétel elkészítése után a szoftver vezérli, hogy ki készíti a következő felvételt. A lövés továbbítása előtt ellenőrzik az előző felvételek helyét. Ha ezt a helyet már használták, akkor a felvétel nem kerül továbbításra. A „My_Shot” LED határozza meg, kinek a köre van. Ezenkívül lövéshang keletkezik az érvényes kiválasztáshoz, és robbanás hang, ha egy hajót eltalálnak. A hanghatások az interneten talált példákból származnak, a játéknak megfelelő módosításokkal.

Miután az ellenfél hajóit eltalálták, egy üzenet jelenik meg minden LCD -n - egyet nyertesként, egyet vesztesként. Az üzenet azt is meghatározza, hogy a játék a reset gomb megnyomásával újraindítható. Külön hanghatások is vannak a győztes és a vesztes számára.

3. lépés: Képernyőképek

Képernyőképek
Képernyőképek
Képernyőképek
Képernyőképek
Képernyőképek
Képernyőképek
Képernyőképek
Képernyőképek

Íme néhány képernyőkép a játékból. Ennyi a bejegyzéshez. Nézze meg a többi utasításomat és a webhelyemet is: www.boomerrules.wordpress.com

Ajánlott: