INHOUDSOPGAWE:
Video: Kompeterende VS -tydsberekening vir 2 spelers: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Jy sal nodig hê:
1. Digilent Basys 3, FPGA Board (of enige ander FPGA,)
2. 'n Relatief opgedateerde weergawe van Vivado, of 'n ander VHDL -omgewing
3. 'n Rekenaar wat die genoemde program kan uitvoer.
Stap 1: Die spel self
Hoe die FSM met die modules in wisselwerking tree.
Hoe om te speel
Om te begin, druk u op die middelste knoppie. Dit sal veroorsaak dat "99", wat die gesondheid van speler twee verteenwoordig, op die sewe segment vertoon word. Dan sal die LED's opeenvolgend van regs na links brand. Dit vorm 'n kragbalk. Sodra die kragbalk vol is, word dit teruggestel. Die doel van speler een is om hul skakelaar te draai wanneer die balk so hoog as moontlik is. Hoe meer LED's brand, hoe meer skade veroorsaak speler aan speler twee. Nadat speler een hul skakelaar gedraai het, word die skade wat afgetrek word, afgetrek van speler twee se gesondheid. Dan skakel dit oor na speler se beurt. Die getal wat weergegee word, verteenwoordig die gesondheid van die speler en die kragbalk word van links na regs vol. Sodra speler twee sy skuif gemaak het, word die skade afgetrek en is dit weer aan die beurt van speler een. Dit word herhaal totdat een speler 0 gesondheid bereik. Video van hierdie funksie is aangeheg.
Stap 2: FSM
Hierdie speletjie is in wese 'n groot eindtoestandmasjien, wat 'n ingewikkelde logika gebeur op grond van die toestand waarin die FSM is.
Staat 1: Spyskaart Die eerste toestand is die spyskaart, wat een van die eenvoudiger toestande is. Dit bevat die sewe segment -skerm wat die woord "PLAY" vertoon, en die knoppie wat die spel laat begin. Die knoppie, BTN, lei ons na die volgende toestand, wat die speler se beurt is.
Staat 2: speler een se beurt
Die beurt van speler een aktiveer 'n sein wat veroorsaak dat die sewe segment -vertoning speler twee se gesondheid vertoon. 'N Ander sein word aangeskakel om 'n skofregister te aktiveer wat ingevoer is uit 'n ander module wat ons geskep het (Pone.vhd). Hierdie skofregister laat die LED's brand soos 'n toenemende kragmeter in ander speletjies, en dit word dan teruggestel na 0 wanneer dit die maksimum aantal LED's bereik wat aangesteek kan word. Dit word bygewerk oor die stygende rand van die klok, verkry vanaf barclock.vhd, wat gewysig is uit 'n geleende laboratoriumlêer. Ons het die speler se balk begin van regs en vul tot links, want die speler se skakelaar is ook aan die linkerkant (vir intuïtiewe gebruikerservaring). Sodra die skakelaar omgedraai is, gaan die toestand oor na die speler se aftrekking, en die hoeveelheid LED's wat aktief is, word in 'n sein gestoor.
Staat 3: speler een aftrek Die sein met die hoeveelheid LED's aktief bepaal die hoeveelheid gesondheid wat afgetrek word. Dit word gedoen deur 'n ander skofregister (deductor1.vhd) te hê wat die LED's in plaas van verhoog, verlaag. Dit neem af op die stygende rand van een van die klok -div -modules wat ons geleen en aangepas het (downcounterclock.vhd). Net soos een LED uit is, word een gesondheidspunt afgetrek van die totale gesondheid van speler twee. As speler twee tydens hierdie proses 0 gesondheid bereik, stop ons en gaan onmiddellik oor na die "Game over" toestand. Andersins, as die LED -vektor '0000000000000000' bereik, gaan ons oor na speler twee se beurt.
Staat 4: Speler Twee se beurt Speler twee se beurt is presies soos speler se beurt, behalwe dat die skofregister daarvoor (Ptwo.bhd) van links na regs gaan, en die skakelaar aan die regterkant van die bord is. 'N Sein word geaktiveer om die gesondheidsvertoning van speler 1 te vertoon. As skakelaar 2 eers aktief is, gaan dit oor na speler twee se aftrekbeurt.
Fase 5: Aftrek van speler twee Net soos speler twee se beurt, speel speler twee aftrek baie soos speler een aftrek. Die belangrikste verskil is dat die skofregister wat die afskakeling van die LED beheer, in die teenoorgestelde rigting gaan, wat maklik is om aan te pas as u die aftrekking van die speler behoorlik laat werk.
Stadium 6: Game Over As enige speler op enige stadium nul gesondheid bereik, skakel die spel oor na hierdie toestand. Niks spoggerige uitstallings nie. As op BTN een gedruk word, word die gesondheid na 99 teruggestel, en die toestand gaan terug na die spyskaart en begin die spel effektief weer.
Stap 3: Modules
Black Box Diagram vir spel
Afklok (gebaseer op clk_div.vhd module deur Bryan Mealy):
Dit is die klok wat die tydsberekening van die aftrekkers hanteer. Die konstante met die naam max_count is 3x meer as die max_count -konstante van barclock. Dit sal die aftrekkers 3x stadiger maak as die snelheid van die staaf.
Barclock - (gebaseer op clk_div.vhd module deur Bryan Mealy):
Hierdie klok hanteer die tydsberekening van die kragmeters, wat ons vinnig toegeneem het om die spel moeilik te maak. Hierdie tydsberekening kan na u smaak aangepas word, die snelheid verhoog deur die konstante max_count 'n groter getal te maak of dit te verminder deur max_count 'n kleiner getal te maak. Sseg_dec - (Geskryf deur Bryan Mealy): Hierdie module neem 'n 8 bis getal as invoer, wat dit dekodeer, die getal omskakel na sy desimale ekwivalent, en dan uitsette na die sewe segment vertoning. Om hierdie lêer te laat werk, moet u seker maak dat u beperkings by ons s'n pas.
Pone:
Dit is 'n skofregister wat stukkies na links skuif, en 'n warm bietjie byvoeg om te laat lyk asof die kragmeter toeneem. As al die stukkies warm is, word alle stukkies teruggestel op '0' en begin die siklus weer.
Twee:
Dit is 'n omgekeerde weergawe van die P1 -module.
Aftrekker 1:
Dit is 'n kombinasie van 'n skofregister en 'n aftrekker. Die skofregister gaan in die teenoorgestelde rigting van P1 se skofregister, wat 'n aftrekking aandui. Dit trek ook 1 af van die gesondheid van speler 2 vir elke kloksiklus, dus met die kombinasie van hierdie twee funksies sal dit lyk asof die teenstander se gesondheid met 1 afneem vir elke led van die gesondheidsbalk wat afneem.
Deductor2: Dit is 'n omgekeerde weergawe van die Deductor1 -module.
PlayDecoder (geleen en stellig gewysig van ekchen35649 sy 133 instruksies): Dit word in die spyskaartstatus gebruik om die woord "SPEEL" op die sewe segmentdekodeerder te vertoon.
Stap 4: Toets
Hierdie speletjie is oorspronklik geïnspireer deur een van die minigames van Kirby. Dit is 'n eenvoudige spel vir twee spelers wat op 'n Basys 3 Board of enige FPGA gespeel kan word.
Stap 1: Vereiste materiaal
U benodig: Digilent Basys 3, FPGA Board (of enige ander) 'n Relatief opgedateerde weergawe van Vivado, of 'n ander vhdl -omgewing 'n Rekenaar wat die genoemde program kan uitvoer A brein
Stap 2: Die spel self
Hoe om te speel
Om te begin, druk u op die middelste knoppie. Dit sal veroorsaak dat '99', wat die gesondheid van speler twee verteenwoordig, op die sewe segment -skerm vertoon word. Dan sal die LED's opeenvolgend van regs na links brand. Dit vorm 'n kragbalk. Sodra die kragbalk vol is, word dit teruggestel. Die doel van speler een is om hul skakelaar te draai wanneer die balk so hoog as moontlik is. Hoe meer LED's brand, hoe meer skade veroorsaak speler aan speler twee. Nadat speler een hul skakelaar gedraai het, word die skade wat afgetrek word, afgetrek van speler twee se gesondheid. Dan gaan dit oor na die beurt van speler twee. Die getal wat weergegee word, verteenwoordig die gesondheid van die speler en die kragbalk word van links na regs vol. Sodra speler twee sy skuif gemaak het, word die skade afgetrek en is dit weer aan die beurt van speler een. Dit word herhaal totdat een speler 0 gesondheid bereik. Video van hierdie funksie is aangeheg.
Om die speletjie te speel, laai dit op 'n basiese bord en druk die middelste knoppie. Probeer om die skakelaar met soveel LED's aktief as moontlik te draai, en wag dan en kyk hoe die bord die punte van u teenstander se gesondheid aftrek. Gee dit dan aan u vriend, en
Stap 3: FSM
Hierdie speletjie is in wese 'n groot eindtoestandmasjien, wat 'n ingewikkelde logika gebeur op grond van die toestand waarin die FSM is.
(Staatsdiagram)
Staat 1: Spyskaart
Die eerste toestand is die spyskaart, een van die eenvoudiger state. Dit bevat die sewe segment -skerm wat die woord "PLAY" vertoon, en die knoppie wat die spel laat begin. Die knoppie, BTN, lei ons na die volgende toestand, wat die speler se beurt is.
Staat 2: speler een se beurt
Die beurt van speler een aktiveer 'n sein wat veroorsaak dat die sewe segment -vertoning speler twee se gesondheid vertoon. 'N Ander sein word aangeskakel om 'n skofregister te aktiveer wat ingevoer is uit 'n ander module wat ons geskep het (Pone.vhd). Hierdie skofregister laat die LED's brand soos 'n toenemende kragmeter in ander speletjies, en dit word dan teruggestel na 0 wanneer dit die maksimum aantal LED's bereik wat aangesteek kan word. Dit word bygewerk oor die stygende rand van die klok verkry vanaf barclock.vhd, wat gewysig is uit 'n geleende laboratoriumlêer. Ons het die speler se balk begin van regs en vul tot links, want die speler se skakelaar is ook aan die linkerkant (vir intuïtiewe gebruikerservaring). Sodra die skakelaar omgedraai is, gaan die toestand oor na die speler se aftrekking, en die hoeveelheid LED's wat aktief is, word in 'n sein gestoor.
Staat 3: speler een aftrek
Die sein met die hoeveelheid aktiewe LED's bepaal die hoeveelheid gesondheid wat afgetrek word. Dit word gedoen deur 'n ander skofregister (deductor1.vhd) te hê wat die LED's in plaas van verhoog, verlaag. Dit neem af op die stygende rand van een van die klok -div -modules wat ons geleen en aangepas het (downcounterclock.vhd). Net soos een LED uit is, word een gesondheidspunt afgetrek van die totale gesondheid van speler twee. As speler twee tydens hierdie proses 0 gesondheid bereik, stop ons en gaan onmiddellik oor na die "Game over" toestand. Andersins, as die LED -vektor '0000000000000000' bereik, gaan ons oor na speler twee se beurt.
Staat 4: speler twee se beurt
Speler twee se beurt is presies soos speler se beurt, behalwe dat die skofregister daarvoor (Ptwo.bhd) van links na regs gaan, en die skakelaar aan die regterkant van die bord is. 'N Sein word geaktiveer om die gesondheidsvertoning van speler 1 te vertoon. As skakelaar 2 eers aktief is, gaan dit oor na speler twee se aftrekbeurt.
Fase 5: speler twee -aftrekking
Net soos speler twee se beurt, speel speler twee aftrek baie soos speler een aftrek. Die belangrikste verskil is dat die skofregister wat die afskakeling van die LED beheer, in die teenoorgestelde rigting gaan, wat maklik is om aan te pas as u die aftrekking van die speler behoorlik laat werk.
Fase 6: Speletjie verby As een van die spelers op enige stadium nul gesondheid bereik, skakel die spel oor na hierdie toestand. Niks spoggerige uitstallings nie. As op BTN een gedruk word, word die gesondheid herstel na 99, en die toestand gaan terug na die spyskaart en begin die spel effektief weer.
Swart boks
Stap 4: Modules
Afklok (gebaseer op clk_div.vhd module deur Bryan Mealy):
Dit is die klok wat die tydsberekening van die aftrekkers hanteer. Die konstante met die naam max_count is 3x meer as die max_count -konstante van barclock. Dit sal die aftrekkers 3x stadiger maak as die snelheid van die staaf.
Barclock - (gebaseer op die clk_div.vhd -module deur Bryan Mealy): hierdie klok hanteer die tydsberekening van die kragmeters, wat ons vinnig gemaak het om die spel moeiliker te maak. Hierdie tydsberekening kan na u smaak aangepas word, die snelheid verhoog deur die konstante max_count 'n groter getal te maak of dit te verminder deur max_count 'n kleiner getal te maak. Sseg_dec - (Geskryf deur Bryan Mealy): Hierdie module neem 'n 8 bis getal as invoer, wat dit dekodeer, die getal omskakel na sy desimale ekwivalent, en dan uitsette na die sewe segment vertoning. Om hierdie lêer te laat werk, moet u seker maak dat u beperkings by ons s'n pas.
Pone: Dit is 'n skofregister wat stukkies na links skuif, en 'n warm bietjie byvoeg om te laat lyk asof die kragmeter toeneem. As al die stukkies warm is, word alle stukkies teruggestel op '0' en begin die siklus weer.
Ptwo: Dit is 'n omgekeerde weergawe van die P1 -module.
Deductor1: Dit is 'n kombinasie van 'n skofregister en 'n aftrekker. Die skofregister gaan in die teenoorgestelde rigting van P1 se skofregister, wat 'n aftrekking aandui. Dit trek ook 1 af van die gesondheid van speler 2 vir elke kloksiklus, dus met die kombinasie van hierdie twee funksies sal dit lyk asof die teenstander se gesondheid met 1 afneem vir elke led van die gesondheidsbalk wat afneem.
Deductor2: Dit is 'n omgekeerde weergawe van die Deductor1 -module.
PlayDecoder (geleen en effens gewysig van ekchen35649 sy 133 instruksies):
Dit word in die spyskaart gebruik om die woord "SPEEL" op die sewe segment dekodeerder te vertoon.
Om te doen: foto's, video
Aanbeveel:
Stand-up retro-arcade vir twee spelers deur Micro Center: 20 stappe
Stand-up retro-arcade vir twee spelers deur Micro Center: Jou plaaslike Micro Center bevat nou alles wat jy nodig het om jou eie Raspberry Pi-gebaseerde Retro Arcade-kabinet te maak. Die kits is heeltemal aanpasbaar, insluitend die kas, Framboos Pi, knoppies, joysticks, klank- en video -bykomstighede, en meer. Dit
Tap Tap Rainbow - 'n vinnige reaksie -speletjie vir twee spelers: 4 stappe (met foto's)
Tap Tap Rainbow - 'n 2 -speler vinnige reaksiespel: 2 weke gelede het my dogter 'n geniale idee gehad om 'n vinnige reaksiespel met reënboogkleure te maak (sy is 'n reënboogkenner: D). Ek was dadelik mal oor die idee en ons het begin dink hoe ons 'n regte speletjie kan maak. Jy het 'n reënboog in
Enkele LED -strookspeletjies vir twee spelers met telbord: 10 stappe
Twee -speler LED -strokiespeletjies met tellingbord: Eerstens bid die god vir al die mense regoor die wêreld, God kan slegs in hierdie tyd help en vrede gee. Almal van ons is gesluit en het nêrens om heen te gaan nie. Ek het nie meer werk nie, so begin om python aanlyn te bestudeer en kan nie dink nie
Sokkel-arcade-kabinet vir 4 spelers vir MAME: 32 stappe (met foto's)
4-speler voetstuk arcade kabinet vir MAME: Dit sal jou wys hoe ek my 4 speler MAME voetstuk kabinet gebou het. Daar is baie dinge wat u na u smaak wil aanpas. Ek sal jou wys hoe ek myne gemaak het; jy kan dit gerus na jou smaak aanpas. Dit bevat 'n standaardvenster
Hoe om 'n DIY Bartop -arcade vir twee spelers te maak met aangepaste markies, met 'n Pandora -boks: 17 stappe (met foto's)
Hoe om 'n DIY Bartop -arcade vir twee spelers te maak met aangepaste markiesmuntstukke, met behulp van 'n Pandora -boks: dit is 'n stap -vir -stap handleiding oor hoe om 'n boonste arcade -masjien vir twee spelers te bou met persoonlike muntstukke wat in die markie ingebou is. Die muntstukke sal so gemaak word dat dit slegs munte aanvaar wat die grootte van 'n kwartier of groter is. Hierdie arcade word aangedryf