Obsah:
Video: Hľadanie mín: 5 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:01
Pre náš konečný projekt CPE 133 sme sa s Chaseom rozhodli vytvoriť hru „Minesweeper“, ktorá využíva tlačidlo a prepínanie vstupu z dosky Basys-3, ako aj kód VHDL. Lepším názvom hry by mohla byť ruská ruleta, chceli by sme však mať názov vhodnejší pre rodinu. Hra obsahuje používateľa, ktorý stlačením stredného tlačidla na doske Basys náhodne priradí jeden zo 16 prepínačov k aktivácii bombou. Dvaja hráči potom striedajú vo vyklopení spínačov, jeden po druhom, kým jeden z hráčov neprepne vypínač s „bombou“. Keď sa to stane, sedemsegmentový displej upozorní hráčov, že daný hráč práve prehral hru.
Krok 1: Prehľad
Projekt využil mnoho modulov VHDL, ktoré sme použili v priebehu tohto štvrťroka. V spojení s hodinovou hranou bol použitý štvorbitový čítač na simuláciu náhodného štvorbitového čísla na aktiváciu jedného z prepínačov. Stavový diagram bol tiež použitý na výstup rôznych slov na sedemsegmentový displej, od „PLAY“, keď sú hráči uprostred hry, po „LOSE“, keď jeden z hráčov prepol aktívny prepínač.
Krok 2: Materiály
- Vývojová rada Basys3 od spoločnosti Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Tento súbor nám bol poskytnutý na Polylearn a jeho autorom je Bryan Mealy)
- 4 -bitové počítadlo vyrobené z žabiek T
- FSM
Krok 3: Vytvorenie hry
Prvým krokom k vytvoreniu tejto hry bolo nakreslenie schémy zapojenia so všetkými komponentmi, ktoré budeme používať. Vstupmi pre tento systém boli tlačidlo 1, 16 prepínačov a hodiny. Výstupmi boli sedemsegmentový displej a anódy. Po nakreslení schémy zapojenia sme pre Vivado spísali jednotlivé zdrojové súbory pre každý komponent a spojili ich pomocou máp portov pod hlavným zdrojovým súborom.
Celý základ hry sa točí okolo náhodného priradenia jedného zo 16 prepínačov k aktivácii pomocou bomby a k tomu, aby hráči nevedeli, ktorý spínač je aktívny, kým tento aktívny prepínač nezapne. Skúsili sme online generátory náhodných a pseudonáhodných čísel, ale nakoniec sme sa rozhodli, že použitie 4-bitového počítadla a priradenie zodpovedajúceho prepínača k aktivácii je dostatočne náhodné na to, čo sme hľadali. Dokázali sme znova použiť náš 4-bitový čítač, ktorý sme vytvorili v predchádzajúcom projekte, aby sme mohli pracovať pre toto priradenie. Počítadlo sme použili na vytvorenie náhodného čísla medzi 0-15; potom v komponente main1 sme priradili desatinný ekvivalent náhodného čísla jeho zodpovedajúcemu prepínaču na doske. Ako je vidieť na schéme, výstup X („aktívna bomba“) z komponentu main1 a prepínače, ktoré hráči zapnú, prejdú na FSM1. Stavový stroj vydáva jednobitovú hodnotu Z, ktorá je potom prečítaná BC_DEC1. Stroj konečných stavov, ktorý sme použili, má dva rôzne stavy: v stave A sedemsegmentový displej zobrazuje „PLAY“a stroj zostáva v tomto stave, kým nerozpozná, že aktivovaný spínač je preklopený. Akonáhle sa to stane, FSM prejde do stavu B, kde na sedemsegmentovom displeji zobrazí „LOSE“a zostane v tomto stave, kým nie je všetkých 16 prepínačov prepnutých na „0“. Keď je táto podmienka splnená, FSM opäť prejde do stavu A a čaká na hráčov, aby začali ďalšiu hru. Moorov diagram, ktorý pomôže porozumieť tejto FSM, je uvedený vyššie.
Krok 4: Budúce úpravy
Niekoľko úprav, nad ktorými sme v hre uvažovali, zahŕňa pridanie ďalších bômb do poľa (možno zvýšenie z jednej na tri), pridanie počítadla skóre a viac kôl. Nakoniec sme sa proti týmto vylepšeniam rozhodli, pretože sme zistili, že hranie dlhšej a rozšírenejšej hry bolo zvyčajne napätejšie a nakoniec zábavnejšie ako hra, ktorá sa spravidla skončila po troch alebo štyroch prepnutiach spínačov.
Krok 5: Záver
S konečným výsledkom tohto projektu sme boli veľmi spokojní; Nielen preto, že konečná verzia hry bola zábavná, ale aj preto, že tvorba a programovanie projektu vyžadovali, aby sme využili väčšinu, ak nie všetko, čo sme sa v tomto štvrťroku naučili. Použili sme žabky, počítadlá, FSM, hodiny, vstupy používateľov z dosky a výstup na sedemsegmentový displej.
Dozvedeli sme sa tiež, ako by niektoré chyby syntaxe mohli program úplne zlomiť (aj keď by boli v iných programovacích jazykoch, ako je Python alebo Java, považované za v poriadku), a že až po viacerých simuláciách a viacerých iteráciách kódu, ktoré sa načítajú a testujú na serveri doska, konečne budete môcť odstrániť všetky chyby z vášho kódu.
Odporúča:
[15 min] Weasleyho hodiny / Kto je doma Indikátor - podľa TR -064 (beta): 4 kroky (s obrázkami)
[15min] Weasley Clock / Who Is Home Indicator-Založené na TR-064 (beta): AKTUALIZÁCIA: Pozri krok 3. Dlhý príbeh (TL; DR nižšie): Pred nejakým časom som napísal do počítača malý bash skript, ktorý by prehľadajte v sieti registrované zariadenia a porovnajte ich názvy hostiteľov so zoznamom s priradenými názvami. Zakaždým, keď sa zariadenie prihlási-
Gadget Cashe Post pre hľadanie pokladu: 12 krokov
Gadget Cashe Post for Treasure Hunts: Greetings Treasure Hunters! Ďalším zo série nástrojov, ktoré používam na vytváranie honov za pokladmi, je toto gadget keš vyrobený z PVC trubice. Čo je to kešovanie gadgetov? Slovo pochádza od našich priateľov vo svete geoinformácií, aby sme opísali miesto, kde sa môžete skryť
Svetelný dom 5 min. USB: 7 krokov
5 min. USB stolný svetelný dom: V tomto návode vám ukážem, ako vytvoriť zábavný USB stolný svetelný dom. prosím komentuj
10 min. Blikajúci LED režim Star Trek Phaser: 7 krokov
10 min. Star Trek Phaser Flashing LED Mod: Myslel som na svojho priateľa Andyho, keď som modloval Playmates Classic Star Trek Phaser. Bolo to prekvapivo rýchle a jednoduché. Chcel som niečo, čo sa ukázalo o niečo lepšie a nebolo také nebezpečné ako laserový phaserový režim Blu-Ray (nie že by B
Solar Spinner - Magbot (200 ot / min bez motora): 6 krokov
Solar Spinner - Magbot (200 otáčok za minútu bez motora): Cool Solar Spinner od spoločnosti JunkTotal Spend: 0,75 USD to je pravda, 75 centov! všetko ostatné bolo získané zo starého elektronického odpadu. Táto ozdoba poháňaná slnečnou energiou sa na priamom slnku točí až 200 otáčok za minútu a bola vyrobená asi za 5 hodín. 2 rotačky na začiatku mesiaca