Obsah:
Video: Konkurenční hra pro 2 hráče VS: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Budete potřebovat:
1. Digilent Basys 3, FPGA Board (nebo jakýkoli jiný FPGA,)
2. Relativně aktuální verze Vivado nebo jiného prostředí VHDL
3. Počítač, na kterém je možné spustit zmíněný program.
Krok 1: Samotná hra
Jak FSM interaguje s moduly.
Jak hrát
Chcete -li začít, stiskněte prostřední tlačítko. To způsobí, že se na sedmisegmentovém displeji zobrazí „99“, což představuje zdraví hráče dva. Poté se LED diody rozsvítí postupně zprava doleva. To tvoří power bar. Jakmile je napájecí lišta plná, resetuje se. Cílem hráče je přepnout spínač, pokud je laťka co nejvyšší. Čím více LED diod svítí, tím větší poškození hráč udělá hráči dva. Poté, co hráč jeden přepne přepínač, způsobené poškození se odečte ze zdraví hráče dva. Poté se přepne na tah hráče dva. Nyní zobrazené číslo představuje zdraví hráče a napájecí lišta se plní zleva doprava. Jakmile hráč dva udělá svůj tah, poškození se odečte a je opět na tahu hráče. To se opakuje, dokud jeden hráč nedosáhne 0 zdraví. Video z tohoto fungování je přiloženo.
Krok 2: FSM
Tato hra je v podstatě jedním velkým strojem konečných stavů, který se skládá ze složité logiky na základě stavu, ve kterém je FSM.
Stav 1: Nabídka První stav je obrazovka nabídky, což je jeden z jednodušších stavů. Obsahuje sedmisegmentový displej zobrazující slovo „PLAY“a tlačítko, které způsobuje spuštění hry. Tlačítko BTN nás vede do dalšího stavu, který je na řadě.
Stav 2: Na tahu hráče
Na tahu hráče aktivuje signál, který způsobí, že sedmisegmentový displej zobrazí zdraví hráče dva. Zapne se další signál, aby se aktivoval posuvný registr importovaný z jiného modulu, který jsme vytvořili (Pone.vhd). Tento posuvný registr rozsvítí LED diodu stejně jako v ostatních hrách rostoucí ukazatel výkonu a poté se resetuje na 0, když dosáhne maximálního počtu LED, které lze rozsvítit. Aktualizuje se na náběžné hraně hodin získaných ze souboru barclock.vhd, který je upraven z vypůjčeného laboratorního souboru. Měli jsme lištu hráče na začátku zprava a vyplnění doleva, protože přepínač hráče je také vlevo (pro intuitivní uživatelské prostředí). Jakmile je přepínač otočen, stav přejde k odečtení jednoho hráče a množství aktivních LED se uloží do signálu.
Stav 3: Odpočet hráče Jeden signál s počtem aktivních LED určuje množství zdraví, které se odečte. To se provádí tak, že máte jiný posuvný registr (deductor1.vhd), který LED diody spíše než inkrementuje, ale naopak snižuje. To klesá na stoupající hraně jednoho z modulů hodinového divu, které jsme si vypůjčili a upravili (downcounterclock.vhd). Právě když je jedna LED vypnutá, je z celkového zdraví hráče dva odečten jeden bod zdraví. Pokud během tohoto procesu hráč dva dosáhne 0 zdraví, zastavíme se a okamžitě přejdeme do stavu „Game over“. Jinak, jakmile LED dioda dosáhne „000000000000000000“, přejdeme na řadu dva.
Stát 4: Na tahu hráče dva je tah hráče dva přesně na řadě, kromě toho, že posuvný registr pro něj (Ptwo.bhd) jde zleva doprava a přepínač je na pravé straně desky. Aktivuje se signál pro zobrazení zdraví hráče 1. Jakmile je přepínač 2 aktivní, přejde se do odpočítávacího kola hráče dva.
Fáze 5: Odpočet hráče dva Stejně jako na řadě hráče dva, odpočet hráče dva funguje hodně jako odpočet hráče jeden. Hlavní rozdíl je v tom, že posuvný registr, který ovládá vypínání LED diod, jde opačným směrem, což je snadná úprava, jakmile má odpočet hráče správně fungovat.
Fáze 6: Konec hry Pokud některý z hráčů v kterémkoli bodě dosáhne nulového zdraví, hra se přepne do tohoto stavu. Nic efektního se nezobrazuje. Pokud je stisknuto BTN, stav se resetuje na 99 a stav se vrátí do nabídky, čímž hra skutečně začíná.
Krok 3: Moduly
Black Box Diagram pro hru
Dolní počítadlo hodin (na základě modulu clk_div.vhd od Bryana Mealyho):
Toto jsou hodiny, které zpracovávají načasování deduktorů. Konstanta pojmenovaná max_count je 3krát větší než konstanta max_count barclock. Díky tomu budou deduktory 3x pomalejší než rychlost tyče.
Barclock - (na základě modulu clk_div.vhd od Bryana Mealyho):
Tyto hodiny zvládají načasování měřičů výkonu, které jsme rychle přidali, aby byla hra obtížnější. Toto načasování lze upravit podle vašich představ, zvýšit rychlost tím, že z konstantního max_count vytvoříte větší číslo, nebo jej snížíte tak, že z max_count vytvoříte menší číslo. Sseg_dec - (Napsal Bryan Mealy): Tento modul bere jako vstup 8bitové číslo, které dekóduje, převede číslo na jeho desítkový ekvivalent a poté vyvede na sedmisegmentový displej. Aby tento soubor fungoval, musíte se ujistit, že se vaše omezení shodují s našimi.
Pone:
Toto je posuvný registr, který posouvá bity doleva a přidává jeden horký bit, aby to vypadalo, že se měřič výkonu zvyšuje. Když jsou všechny bity horké, všechny bity se resetují na „0“a cyklus začíná znovu.
Ptwo:
Toto je převrácená verze modulu P1.
Deduktor1:
Jedná se o kombinaci posuvného registru a odečítače. Posuvný registr jde opačným směrem než posuvný registr P1, což naznačuje odpočet. To také odečte 1 od zdraví hráče 2 pro každý hodinový cyklus, takže s kombinací těchto dvou funkcí to bude vypadat, že zdraví protivníka klesá o 1 pro každou LED diody zdraví, která klesá.
Deductor2: Toto je převrácená verze modulu Deductor1.
PlayDecoder (vypůjčený a slagihtly upravený z ekchen35649 jeho 133 instrukovatelných): Toto se používá ve stavu nabídky k zobrazení slova „PLAY“na sedmisegmentovém dekodéru.
Krok 4: Test
Tato hra byla původně inspirována jednou z miniher od Kirbyho. Je to jednoduchá hra pro dva hráče, kterou lze hrát na desce Basys 3 nebo na libovolném FPGA.
Krok 1: Požadované materiály
Budete potřebovat: Digilent Basys 3, FPGA Board (nebo jakýkoli jiný) Relativně aktuální verzi Vivado nebo nějaké jiné prostředí vhdl Počítač, na kterém lze spustit zmíněný program Mozek
Krok 2: Samotná hra
Jak hrát
Chcete -li začít, stiskněte prostřední tlačítko. To způsobí, že se na sedmisegmentovém displeji zobrazí „99“, představující zdraví hráče dva. Poté se LED diody rozsvítí postupně zprava doleva. To tvoří power bar. Jakmile je napájecí lišta plná, resetuje se. Cílem hráče je přepnout spínač, pokud je laťka co nejvyšší. Čím více LED diod svítí, tím větší poškození hráč udělá hráči dva. Poté, co hráč jeden přepne přepínač, způsobené poškození se odečte ze zdraví hráče dva. Poté se přepne na tah hráče dva. Nyní zobrazené číslo představuje zdraví hráče a napájecí lišta se plní zleva doprava. Jakmile hráč dva udělá svůj tah, poškození se odečte a je opět na tahu hráče. To se opakuje, dokud jeden hráč nedosáhne 0 zdraví. Video z tohoto fungování je přiloženo.
Chcete -li hru hrát, nahrajte ji na základní desku a stiskněte prostřední tlačítko. Zkuste přepnout přepínač s co největším počtem aktivních LED diod a poté počkejte a sledujte, jak deska odečte tyto body ze zdraví vašeho protivníka. Poté jej předejte svému příteli a
Krok 3: FSM
Tato hra je v podstatě jedním velkým strojem konečných stavů, který se skládá ze složité logiky na základě stavu, ve kterém je FSM.
(Stavový diagram)
Stav 1: Nabídka
Prvním stavem je obrazovka nabídky, což je jeden z jednodušších stavů. Obsahuje sedmisegmentový displej zobrazující slovo „PLAY“a tlačítko, které způsobuje spuštění hry. Tlačítko BTN nás vede do dalšího stavu, který je na řadě.
Stav 2: Na tahu hráče
Na tahu hráče aktivuje signál, který způsobí, že sedmisegmentový displej zobrazí zdraví hráče dva. Zapne se další signál, aby se aktivoval posuvný registr importovaný z jiného modulu, který jsme vytvořili (Pone.vhd). Tento posuvný registr rozsvítí LED diodu stejně jako v ostatních hrách rostoucí indikátor výkonu a poté se resetuje na 0, když dosáhne maximálního počtu LED, které lze rozsvítit. Aktualizuje se na náběžné hraně hodin získaných ze souboru barclock.vhd, který je upraven z vypůjčeného laboratorního souboru. Měli jsme lištu hráče na začátku zprava a vyplnění doleva, protože přepínač hráče je také vlevo (pro intuitivní uživatelské prostředí). Jakmile je přepínač otočen, stav přejde k odečtení jednoho hráče a množství aktivních LED se uloží do signálu.
Stát 3: Odpočet hráče jedna
Signál s množstvím aktivních LED určuje množství zdraví, které se odečte. To se provádí tak, že máte jiný posuvný registr (deductor1.vhd), který LED diody spíše než inkrementuje, ale naopak snižuje. To se snižuje na náběžné hraně jednoho z modulů hodinového divu, které jsme si vypůjčili a upravili (downcounterclock.vhd). Právě když je jedna LED vypnutá, je jeden bod zdraví odečten z celkového zdraví hráče dva. Pokud během tohoto procesu hráč dva dosáhne 0 zdraví, zastavíme se a okamžitě přejdeme do stavu „Game over“. Jinak, jakmile LED dioda dosáhne „000000000000000000“, přejdeme na řadu dva.
Stav 4: Na tahu hráče dva
Tah hráče dva je přesně jako tah hráče, kromě toho, že posuvný registr (Ptwo.bhd) jde zleva doprava a přepínač je na pravé straně desky. Aktivuje se signál pro zobrazení zdraví hráče 1. Jakmile je přepínač 2 aktivní, přejde se do odpočítávacího kola hráče dva.
Fáze 5: Odpočet hráče dva
Stejně jako tah hráče dva, odpočet hráče dva funguje hodně jako odpočet hráče jeden. Hlavní rozdíl je v tom, že posuvný registr, který ovládá vypínání LED diod, jde opačným směrem, což je snadná modifikace, kterou provedete, až bude odpočet hráče správně fungovat.
Fáze 6: Konec hry Pokud některý z hráčů v kterémkoli bodě dosáhne nulového zdraví, hra se přepne do tohoto stavu. Nic efektního se nezobrazuje. Pokud stisknete BTN, stav se resetuje na 99 a stav se vrátí zpět do nabídky, čímž hra skutečně začíná.
Černá skříňka
Krok 4: Moduly
Dolní počítadlo hodin (na základě modulu clk_div.vhd od Bryana Mealyho):
Toto jsou hodiny, které zpracovávají načasování deduktorů. Konstanta pojmenovaná max_count je 3krát větší než konstanta max_count barclock. Díky tomu budou deduktory 3x pomalejší než rychlost tyče.
Barclock - (na základě modulu clk_div.vhd od Bryana Mealyho): Tyto hodiny zpracovávají načasování měřičů výkonu, které jsme rychle zvýšili, abychom hře přidali na obtížnosti. Toto načasování lze upravit podle vašich představ, zvýšit rychlost tím, že z konstantního max_count vytvoříte větší číslo, nebo jej snížíte tak, že z max_count vytvoříte menší číslo. Sseg_dec - (Napsal Bryan Mealy): Tento modul bere jako vstup 8bitové číslo, které dekóduje, převede číslo na jeho desítkový ekvivalent a poté vyvede na sedmisegmentový displej. Aby tento soubor fungoval, musíte se ujistit, že se vaše omezení shodují s našimi.
Pone: Toto je posuvný registr, který posouvá bity doleva a přidává jeden horký bit, aby to vypadalo, že se ukazatel výkonu zvyšuje. Když jsou všechny bity horké, všechny bity se resetují na „0“a cyklus začíná znovu.
Ptwo: Toto je převrácená verze modulu P1.
Deductor1: Jedná se o kombinaci posuvného registru a odečítače. Posuvný registr jde opačným směrem než posuvný registr P1, což naznačuje odpočet. To také odečte 1 od zdraví hráče 2 pro každý hodinový cyklus, takže s kombinací těchto dvou funkcí to bude vypadat, že zdraví protivníka klesá o 1 pro každou LED diody zdraví, která klesá.
Deductor2: Toto je převrácená verze modulu Deductor1.
PlayDecoder (vypůjčeno a mírně upraveno z ekchen35649 jeho 133 instrukčních):
Toto se používá ve stavu nabídky k zobrazení slova „PLAY“na sedmisegmentovém dekodéru.
Úkol: obrázky, video
Doporučuje:
Tap Tap Rainbow - hra pro 2 hráče s rychlou reakcí: 4 kroky (s obrázky)
Tap Tap Rainbow - hra pro 2 hráče s rychlou reakcí: Před 2 týdny měla moje dcera geniální nápad udělat rychlou reakční hru s duhovými barvami (je to odbornice na duhu: D). Ten nápad se mi okamžitě líbil a začali jsme přemýšlet, jak bychom z něj mohli udělat skutečnou hru. Máte duhu v
Aruduino LED hra Rychlé klikání Hra pro dva hráče: 8 kroků
Aruduino LED Game Rychlé klikání Hra pro dva hráče: Tento projekt je inspirován @HassonAlkeim. Pokud jste ochotni se podrobně podívat, zde je odkaz, který můžete zkontrolovat https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Tato hra je vylepšenou verzí hry Alkeim's. Jedná se o
Hra 8x16 LED Matrix Pong (2 pádla na verzi hráče): 3 kroky
8x16 LED Matrix Pong Game (2 pádla na verzi hráče): Inspirovalo mě mnoho variací klasické hry Pong implementované na Arduinu využívající matici 8x8 LED. V tomto pokynu vám ukážu, jak vytvořit moji oblíbenou verzi Pong, která má dvě pádla - útočníka a brankáře - na hráče
Arkádová skříň pro 4 hráče s podstavcem pro MAME: 32 kroků (s obrázky)
Arkádová skříň pro 4 hráče s podstavcem pro MAME: To vám ukáže, jak jsem sestrojil svou skříňku pro 4 hráče MAME. Existuje mnoho věcí, které byste si mohli chtít upravit podle svých představ. Ukážu vám, jak jsem vyrobil ten svůj, můžete si jej klidně upravit podle svých představ. Je zde standardní okno
Arkádová hra MAME pro jednoho hráče: 7 kroků
Single Player Arcade MAME Box: Dnes budeme stavět mini-MAME konzoli pomocí Raspberry Pi. Jedná se o konzoli pro jednoho hráče, ale vzhledem k tomu, že jsou porty USB na pí přístupné, je snadné připojit jinou konzolu nebo joystick USB a provést nějakou akci pro více hráčů, pokud nálada