Obsah:

Hľadanie mín: 5 krokov (s obrázkami)
Hľadanie mín: 5 krokov (s obrázkami)

Video: Hľadanie mín: 5 krokov (s obrázkami)

Video: Hľadanie mín: 5 krokov (s obrázkami)
Video: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, November
Anonim
Hľadač mín
Hľadač mín

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

Výroba hry
Výroba hry
Výroba hry
Výroba 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: