Përmbajtje:

Arduino Battleship Lojë: 3 hapa
Arduino Battleship Lojë: 3 hapa

Video: Arduino Battleship Lojë: 3 hapa

Video: Arduino Battleship Lojë: 3 hapa
Video: линкор «Ленин»: претендент на звание «Игра года» - World of Warships 2024, Nëntor
Anonim
Lojë Arduino Battleship
Lojë Arduino Battleship

Mbaj mend që kam luajtur një version letre dhe lapsi të lojës Battleship si fëmijë. Në fakt, ka qenë rreth e rrotull që nga Lufta e Parë Botërore. Unë gjithashtu kisha një variant "elektronik" në fillim të viteve 1960 të quajtur "Sonar Sub Hunt" që kishte drita dhe tinguj dhe mina të fshehura. Sipas standardeve të sotme të lojërave video Battleship është mjaft e mërzitshme, por mendova se do ta bëja gjithsesi vetëm për të parë se çfarë menduan nipërit për këtë. Në fund të fundit, ndonjëherë retro mund të jetë e lezetshme.

Ka pjesë të këtij projekti që do të ishin të dobishme diku tjetër edhe nëse nuk jeni të interesuar të bëni lojën Battleship. Ka një ndërfaqe të thjeshtë 4-bit 1602 LCD që përfshin një rutinë për vendosjen e një vendndodhjeje të veçantë të karakterit. Ekziston gjithashtu një ndërfaqe për deshifrimin e një matricë kalimi 4x4. Këto dy ndërfaqe janë të disponueshme si skedarë të veçantë përfshirjeje, kështu që ato janë lehtësisht të transportueshme. Loja gjithashtu ka rutina të ndryshme të efektit të tingullit dhe një qark të thjeshtë amplifikues audio me një tranzistor.

Hapi 1: Pajisje kompjuterike

Hardware
Hardware
Hardware
Hardware

Skema e paraqitur këtu është për një lojtar të vetëm, kështu që do të duheshin bërë dy njësi. Njësitë komunikojnë duke përdorur një ndërfaqe me 3 tela që përfshin linjat UART TX dhe RX dhe një tel tokëzues. Zgjodha të përdor një prizë stereo kufje standarde 1/8 inç dhe një kabllo standarde me priza mashkullore në të dy skajet. RX nga një kuti shkon në TX të kutisë tjetër dhe anasjelltas. Ju mund ta bëni këtë duke ndërruar telat e ngjitur në prizën e kufjeve brenda kutisë ose duke i ndërruar ato në tabelën e qarkut kur e ndërtoni.

Loja klasike u paraqit si një matricë, por vendosa të bëj një zbatim të thjeshtë duke përdorur një LCD 1602 për ekranin. Linja e parë tregon vendndodhjet e anijeve të lojtarit dhe goditjet e kundërshtarit. Linja e dytë tregon goditjet e lojtarit dhe çdo goditje në anijet e kundërshtarit. Kjo siguron 16 vende të mundshme për anijet. Numri i anijeve është vendosur në softuer dhe unë zgjodha arbitrarisht 5.

16 vendet e anijeve përshtaten mirë me kërkesat e ndërruesit sepse lejon një matricë 4x4. Ekzistojnë pads ndërprerës të matricës 4x4, por unë zgjodha të përdor çelsat individualë në një rresht të vetëm që të përputhen me ekranin linear. Sidoqoftë, unë i lidhja çelsat si një matricë 4x4 në mënyrë që të nevojiten vetëm tetë kunja Arduino. Referojuni diagramit të instalimeve elektrike të ndërprerësit dhe skemës për lidhjet e duhura.

Ekrani LCD është i lidhur për një ndërfaqe 4-bit. Unë gjithashtu shtova një LED të jashtëm në pin D13 për të treguar se cili lojtar duhet të marrë një goditje. Fillimisht, lojtarët vendosin se kush do të bëjë goditjen e parë dhe më pas softueri automatikisht kontrollon mbrapa dhe me radhë të lojës.

Doja të shtoja efekte të thjeshta zanore për goditjen, shpërthimet, lojën gati dhe fituesin/humbësin. Unë u përpoqa të përdor një zile të thjeshtë piezo, por përfundova me një altoparlant të vogël. Rryma e kërkuar nga altoparlanti tejkalon atë që Arduino mund të trajtojë kështu që u shtua një përforcues i thjeshtë transistor. Tingulli ende nuk është i shkëlqyeshëm, por është më mirë sesa me zile. Altoparlanti im është 4 Ohm, por nëse keni një 8-Ohm atëherë ndryshoni rezistencën në skemë nga 39 Ohm në 33 Ohm. Nëse përdorni një zile piezo ju duhet të jeni në gjendje ta drejtoni atë direkt nga kunja Arduino me anën tjetër të ziles që lidhet me tokën.

Një çelës i rivendosjes së jashtme është gjithashtu i përfshirë dhe është i lidhur direkt midis tokës dhe pinit "reset" në Arduino. Kjo siguron mjetet për rifillimin e lojës.

Hapi 2: Softueri

Softueri ka skedarin e përfshirë për ndërfaqen time LCD dhe unë gjithashtu krijova një skedar përfshirës për skanimin e matricës së kalimit 4x4. Fillimi nxit lojtarin të zgjedhë vendet për anijet e tij dhe pastaj shkon në një gjendje "Gati". Kur të dy lojtarët janë gati njëri prej tyre fillon lojën duke shtypur një çelës.

Vendndodhja e goditjes transmetohet përmes UART te lojtari tjetër dhe rezultati i duhur i transmetohet përsëri lojtarit që ka qëlluar. Siç u përmend më herët, sapo të bëhet shkrepja e parë, softueri kontrollon se kush do të bëjë goditjen tjetër. Para se të transmetohet një e shtënë, ajo kontrollohet kundrejt vendndodhjeve të shkrepjeve të mëparshme. Nëse ai vend është përdorur tashmë, atëherë goditja nuk do të transmetohet. LED "My_Shot" përcakton se kujt i vjen radha. Ekziston gjithashtu një tingull i shtënë i krijuar për një përzgjedhje të vlefshme dhe një tingull shpërthimi nëse goditet një anije. Efektet zanore rrjedhin nga shembujt e gjetur në internet me modifikime që i përshtaten lojës.

Pasi anijet e një kundërshtari të jenë goditur të gjitha, një mesazh shfaqet në çdo LCD - një si fitues dhe një si humbës. Mesazhi gjithashtu specifikon që loja mund të riniset duke shtypur butonin e rivendosjes. Ekzistojnë gjithashtu efekte të veçanta zanore për fituesin dhe humbësin.

Hapi 3: Pamjet e ekranit

Pamjet e ekranit
Pamjet e ekranit
Pamjet e ekranit
Pamjet e ekranit
Pamjet e ekranit
Pamjet e ekranit
Pamjet e ekranit
Pamjet e ekranit

Këtu janë disa fotografi të ekranit nga loja. Kjo është ajo për këtë postim. Shikoni udhëzimet e mia të tjera dhe gjithashtu faqen time në internet: www.boomerrules.wordpress.com

Recommended: