Sisällysluettelo:
Video: Kahden pelaajan kilpailukykyinen ajoituspeli: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tarvitset:
1. Digilent Basys 3, FPGA -kortti (tai mikä tahansa muu FPGA,)
2. Suhteellisen ajan tasalla oleva versio Vivadosta tai jostain muusta VHDL -ympäristöstä
3. Tietokone, jolla voidaan suorittaa mainittu ohjelma.
Vaihe 1: Peli itse
Miten Mikronesia on vuorovaikutuksessa moduulien kanssa.
Kuinka pelata
Aloita painamalla keskipainiketta. Tämä aiheuttaa”99”, joka edustaa pelaajan toisen terveyttä, seitsemän segmentin näytössä. Sitten LEDit syttyvät peräkkäin oikealta vasemmalle. Tämä muodostaa tehopalkin. Kun virtapalkki on täynnä, se nollautuu. Pelaajan ensimmäisenä tavoitteena on kääntää kytkintä, kun palkki on mahdollisimman korkealla. Mitä enemmän LED -valoja palaa, sitä enemmän pelaaja vahingoittaa kahta pelaajaa. Kun pelaaja yksi kääntää kytkintä, jaettu vahinko vähennetään pelaajan toisen terveydestä. Sitten se siirtyy pelaajan toisen vuorolle. Nyt näytetty numero edustaa pelaajan terveyttä, ja virtapalkki täyttyy vasemmalta oikealle. Kun pelaaja kaksi tekee siirtonsa, vahinko vähennetään ja palataan pelaajan vuorolle. Tämä toistuu, kunnes yksi pelaaja saavuttaa 0 terveyden. Video toiminnasta on liitteenä.
Vaihe 2: FSM
Tämä peli on pohjimmiltaan yksi suuri äärellinen tilakone, jossa tapahtuu monimutkaista logiikkaa sen tilan perusteella, jossa Mikronesia on.
Tila 1: Valikko Ensimmäinen tila on valikkoruutu, joka on yksi yksinkertaisimmista tiloista. Se sisältää seitsemän segmentin näytön, jossa näkyy sana "PLAY", ja painikkeen, joka saa pelin käynnistymään. Painike, BTN, johtaa meidät seuraavaan tilaan, joka on pelaajan vuoro.
Tila 2: Pelaajan ensimmäisen vuoro
Pelaajan ensimmäisen vuoro aktivoi signaalin, joka saa seitsemän segmentin näytön näyttämään pelaajan toisen terveyden. Toinen signaali käynnistyy aktivoidaksesi toisesta luomastamme moduulista (Pone.vhd) tuodun siirtorekisterin. Tämä siirtorekisteri saa LED -valot syttymään kuten kasvava tehomittari muissa peleissä, ja se nollautuu sitten 0: een, kun se saavuttaa suurimman mahdollisen syttyvien LED -valojen määrän. Se päivittyy kellon nousevalle reunalle, joka on saatu osoitteesta barclock.vhd, joka on muokattu lainatusta laboratoriotiedostosta. Pelaajamme palkki alkoi oikealta ja täyttyi vasemmalle, koska pelaajan kytkin on myös vasemmalla (intuitiivisen käyttökokemuksen vuoksi). Kun kytkin on käännetty, tila siirtyy pelaajan yhden vähennyksen kohdalle ja aktiivisten merkkivalojen määrä tallennetaan signaaliin.
Tila 3: Pelaajan yhden vähennys Signaali, jossa on aktiivinen LED -määrä, määrää vähennettävän terveyden määrän. Tämä tehdään tekemällä toinen siirtorekisteri (dedctor1.vhd), joka pikemminkin kuin lisää LED -valoja, pienentää niitä. Tämä pienenee yhden lainaamamme ja muokkaamamme kellon div -moduulin nousevalla reunalla (downcounterclock.vhd). Heti kun yksi LED sammuu, yksi terveyspiste vähennetään pelaajan toisen kokonaisterveydestä. Jos tämän prosessin aikana pelaaja kaksi saavuttaa 0 terveyden, pysähdymme ja siirrymme välittömästi "Game over" -tilaan. Muuten, kun LED -vektori saavuttaa arvon "0000000000000000", siirrymme pelaajan toisen vuorolle.
Tila 4: Pelaajan toisen vuoro Pelaajan toisen vuoro on täsmälleen kuin pelaajan ensimmäisen vuoro, paitsi että sen vuororekisteri (Ptwo.bhd) kulkee vasemmalta oikealle ja kytkin on laudan oikealla puolella. Signaali aktivoituu, jotta pelaaja 1: n terveysnäyttö tulee näkyviin. Kun kytkin 2 on aktiivinen, tämä siirtyy pelaajan toisen vähennyskierrokseen.
Vaihe 5: Pelaaja Kaksi Vähennys Aivan kuten Pelaajan toisen vuoro, Pelaaja Kaksi Vähennys toimii Paljon Pelaajan Vähennyksen tavoin. Suurin ero on se, että LED -valon sammumista ohjaava siirtorekisteri menee vastakkaiseen suuntaan, mikä on helppo muokata, kun pelaajan vähennys toimii oikein.
Vaihe 6: Peli päättynyt Jos jossakin vaiheessa jommankumman pelaajan terveys on nolla, peli siirtyy tähän tilaan. Ei mitään hienoja näyttöjä. Jos BTN -näppäintä painetaan, kunto palautetaan 99: ksi ja tila palaa valikkoon ja aloittaa pelin tehokkaasti alusta.
Vaihe 3: Moduulit
Black Box -kaavio pelille
Downcounterclock (perustuu Bryan Mealyn clk_div.vhd -moduuliin):
Tämä on kello, joka hoitaa vähennysten ajoituksen. Vakio nimeltä max_count on 3x enemmän kuin barclockin max_count -vakio. Tämä tekee vähennykset 3 kertaa hitaammaksi kuin tangon nopeus.
Barclock - (perustuu Bryan Mealyn clk_div.vhd -moduuliin):
Tämä kello käsittelee tehomittarien ajoitusta, jota lisäsimme nopeasti vaikeuttaaksemme peliä. Tätä ajoitusta voidaan säätää mieleiseksesi lisäämällä nopeutta lisäämällä vakio max_count suuremmaksi tai pienentämällä sitä pienentämällä max_count. Sseg_dec - (Kirjoittanut Bryan Mealy): Tämä moduuli ottaa syötteeksi 8 -bittisen numeron, jonka se dekoodaa, muuntaa numeron desimaalilukuksi ja tulostaa sitten seitsemän segmentin näyttöön. Jotta tämä tiedosto toimisi, sinun on varmistettava, että rajoituksesi vastaavat meidän.
Pone:
Tämä on siirtorekisteri, joka siirtää bittejä vasemmalle lisäämällä yhden kuuman bitin, jotta se näyttää tehomittarin kasvavan. Kun kaikki bitit ovat kuumia, kaikki bitit palautuvat arvoon "0" ja sykli alkaa alusta.
Ptwo:
Tämä on käännetty versio P1 -moduulista.
Vähennys1:
Tämä on yhdistelmä vuororekisteristä ja vähennyslaskimesta. Vuororekisteri menee päinvastaiseen suuntaan kuin P1: n siirtorekisteri, mikä osoittaa vähennyksen. Tämä vähentää myös yhden pelaajan 2 terveydestä jokaista kellojaksoa kohden, joten näiden kahden toiminnon yhdistelmällä näyttää siltä, että vastustajan terveys heikkenee yhdellä jokaisella terveyspylvään ledillä.
Vähennys2: Tämä on käännetty versio Deductor1 -moduulista.
PlayDecoder (lainattu ja muutettu hitaasti ekchen35649: stä hänen 133 ohjeesta): Tätä käytetään valikkotilassa näyttämään sana “PLAY” seitsemän segmentin dekooderissa.
Vaihe 4: Testaa
Tämä peli on alun perin innoittanut yksi Kirbyn minipeleistä. Se on yksinkertainen kahden pelaajan peli, jota voidaan pelata Basys 3 Boardilla tai millä tahansa FPGA: lla.
Vaihe 1: Tarvittavat materiaalit
Tarvitset: Digilent Basys 3: n, FPGA -kortin (tai minkä tahansa muun) Suhteellisen ajan tasalla olevan version Vivadosta tai jonkin muun vhdl -ympäristön Tietokone, joka voi käyttää mainittua ohjelmaa Aivot
Vaihe 2: Peli itse
Kuinka pelata
Aloita painamalla keskipainiketta. Tämä aiheuttaa”99”, joka edustaa pelaajan toisen terveyttä, seitsemän segmentin näytössä. Sitten LEDit syttyvät peräkkäin oikealta vasemmalle. Tämä muodostaa tehopalkin. Kun virtapalkki on täynnä, se nollautuu. Pelaajan tavoitteena on kääntää kytkintä, kun palkki on mahdollisimman korkealla. Mitä enemmän LED -valoja palaa, sitä enemmän pelaaja vahingoittaa kahta pelaajaa. Kun pelaaja yksi kääntää kytkintä, jaettu vahinko vähennetään pelaajan toisen terveydestä. Sitten se siirtyy pelaajan toisen vuorolle. Nyt näytetty numero edustaa pelaajan terveyttä, ja virtapalkki täyttyy vasemmalta oikealle. Kun pelaaja kaksi tekee siirtonsa, vahinko vähennetään ja palataan pelaajan vuorolle. Tämä toistuu, kunnes yksi pelaaja saavuttaa 0 terveyden. Video toiminnasta on liitteenä.
Voit pelata peliä lataamalla sen peruspöydälle ja painamalla keskipainiketta. Yritä kääntää kytkin niin monta LEDiä aktiivisena kuin mahdollista ja odota sitten, kun lauta vähentää nämä pisteet vastustajasi terveydestä. Siirrä se sitten ystävällesi ja
Vaihe 3: FSM
Tämä peli on pohjimmiltaan yksi iso äärellinen tilakone, jossa tapahtuu monimutkaista logiikkaa sen tilan perusteella, jossa Mikronesia on.
(Valtion kaavio)
Tila 1: Valikko
Ensimmäinen tila on valikkoruutu, joka on yksi yksinkertaisimmista tiloista. Se sisältää seitsemän segmentin näytön, jossa näkyy sana "PLAY", ja painikkeen, joka saa pelin käynnistymään. Painike, BTN, johtaa meidät seuraavaan tilaan, joka on pelaajan vuoro.
Tila 2: Pelaajan yksi vuoro
Pelaajan ensimmäisen vuoro aktivoi signaalin, joka saa seitsemän segmentin näytön näyttämään pelaajan toisen terveyden. Toinen signaali käynnistyy aktivoidaksesi toisesta luomastamme moduulista (Pone.vhd) tuodun siirtorekisterin. Tämä siirtorekisteri saa LED -valot syttymään kuten kasvava tehomittari muissa peleissä, ja se nollautuu sitten 0: een, kun se saavuttaa suurimman mahdollisen syttyvien LED -valojen määrän. Se päivittyy kellon nousevalle reunalle, joka on saatu osoitteesta barclock.vhd, joka on muokattu lainatusta laboratoriotiedostosta. Pelaajamme palkki alkoi oikealta ja täytettiin vasemmalle, koska pelaajan kytkin on myös vasemmalla (intuitiivisen käyttökokemuksen vuoksi). Kun kytkin on käännetty, tila siirtyy pelaajan yhden vähennyksen kohdalle ja aktiivisten merkkivalojen määrä tallennetaan signaaliin.
Tila 3: Pelaaja yhden vähennys
Signaali, jossa on aktiivinen LED -määrä, määrää vähennettävän terveyden määrän. Tämä tehdään tekemällä toinen siirtorekisteri (dedctor1.vhd), joka pikemminkin kuin lisää LED -valoja, pienentää niitä. Tämä pienenee yhden lainaamamme ja muokkaamamme kellon div -moduulin nousevalla reunalla (downcounterclock.vhd). Heti kun yksi LED sammuu, yksi terveyspiste vähennetään pelaajan toisen kokonaisterveydestä. Jos tämän prosessin aikana pelaaja kaksi saavuttaa 0 terveyden, pysähdymme ja siirrymme heti "Game over" -tilaan. Muuten, kun LED -vektori saavuttaa arvon "0000000000000000", siirrymme pelaajan toisen vuorolle.
Tila 4: Pelaajan toisen vuoro
Pelaajan toisen vuoro on täsmälleen sama kuin pelaajan ensimmäisen vuoro, paitsi että sen vuororekisteri (Ptwo.bhd) kulkee vasemmalta oikealle ja kytkin on laudan oikealla puolella. Signaali aktivoituu, jotta pelaaja 1: n terveysnäyttö tulee näkyviin. Kun kytkin 2 on aktiivinen, tämä siirtyy pelaajan toisen vähennyskierrokseen.
Vaihe 5: Pelaajan kaksi vähennys
Aivan kuten pelaajan toisen vuoro, pelaajan kahden vähennys toimii paljon kuin pelaajan yhden vähennys. Suurin ero on se, että LED -valon sammumista ohjaava siirtorekisteri menee vastakkaiseen suuntaan, mikä on helppo muokata, kun pelaajan vähennys toimii oikein.
Vaihe 6: Peli päättynyt Jos jossakin vaiheessa jommankumman pelaajan terveys on nolla, peli siirtyy tähän tilaan. Ei mitään hienoja näyttöjä. Jos BTN -näppäintä painetaan, kunto palautetaan 99: ksi ja tila palaa valikkoon ja aloittaa pelin tehokkaasti alusta.
Musta laatikko
Vaihe 4: Moduulit
Downcounterclock (perustuu Bryan Mealyn clk_div.vhd -moduuliin):
Tämä on kello, joka hoitaa vähennysten ajoituksen. Vakio nimeltä max_count on 3x enemmän kuin barclockin max_count -vakio. Tämä tekee vähennykset 3 kertaa hitaammaksi kuin tangon nopeus.
Barclock - (perustuu Bryan Mealyn clk_div.vhd -moduuliin): Tämä kello käsittelee tehomittarien ajoitusta, jota lisäsimme nopeasti vaikeuttaaksemme peliä. Tätä ajoitusta voidaan säätää mieleiseksesi lisäämällä nopeutta lisäämällä vakio max_count suuremmaksi tai pienentämällä sitä pienentämällä max_count. Sseg_dec - (Kirjoittanut Bryan Mealy): Tämä moduuli ottaa syötteeksi 8 -bittisen numeron, jonka se purkaa, muuntaa numeron desimaalilukuksi ja tulostaa sitten seitsemän segmentin näyttöön. Jotta tämä tiedosto toimisi, sinun on varmistettava, että rajoituksesi vastaavat meidän.
Pone: Tämä on siirtorekisteri, joka siirtää bittejä vasemmalle ja lisää yhden kuuman bitin, jotta se näyttää tehomittarin kasvavan. Kun kaikki bitit ovat kuumia, kaikki bitit palautuvat arvoon "0" ja sykli alkaa alusta.
Ptwo: Tämä on käännetty versio P1 -moduulista.
Vähennys1: Tämä on yhdistelmä vuororekisteristä ja vähennyslaskimesta. Vuororekisteri menee päinvastaiseen suuntaan kuin P1: n siirtorekisteri, mikä osoittaa vähennyksen. Tämä vähentää myös 1 pelaajan 2 terveydestä jokaista kellojaksoa kohden, joten näiden kahden toiminnon yhdistelmällä näyttää siltä, että vastustajan terveys heikkenee yhdellä jokaisella terveyspalkin ledillä.
Vähennys2: Tämä on käännetty versio Deductor1 -moduulista.
PlayDecoder (lainattu ja hieman muokattu ekchen35649 hänen 133 ohjeesta):
Tätä käytetään valikkotilassa näyttämään sana “PLAY” seitsemän segmentin dekooderissa.
To do: kuvat, video
Suositeltava:
Napauta Tap Rainbow - kahden pelaajan nopean reaktion peli: 4 vaihetta (kuvilla)
Napauta Tap Rainbow - 2 pelaajan pikareagointipeli: 2 viikkoa sitten tyttärelläni oli nerokas idea tehdä nopea reaktiopeli sateenkaaren väreillä (hän on sateenkaari -asiantuntija: D). Rakastin ajatusta heti ja aloin miettiä, kuinka voisimme tehdä siitä todellisen pelin. Sinulla on sateenkaari
Kahden pelaajan yhden LED -nauhapelit, joissa on tulostaulu: 10 vaihetta
Kahden pelaajan yksittäiset LED -nauhapelit, joissa on tulostaulu: Rukoile ensin Jumalaa kaikkien ihmisten puolesta ympäri maailmaa, Jumala voi vain auttaa ja antaa meille rauhan tällä hetkellä. Me kaikki olemme lukittuina eikä minnekään. Minulla ei ole muita tehtäviä, joten aloita pythonin opiskelu verkossa ja en voi ajatella mitään
Kilpailukykyinen summeri: 5 vaihetta
Kilpailukykyinen summerijärjestelmä: Tässä projektissa suunniteltu kilpailukykyinen summerijärjestelmä toimii samalla tavalla kuin alueellisissa ja kansallisissa Science Bowl -kilpailuissa käytetyt summerit. Tämä projekti sai inspiraationi osallistumisestani lukion tiedekulho -tiimiin kolme
Aruduino LED -peli Nopea kahden pelaajan peli: 8 vaihetta
Aruduino LED -peli Nopea kahden pelaajan peli: Tämä projekti on innoittamana @HassonAlkeim. Jos haluat katsoa syvällisesti, tässä on linkki, jonka voit tarkistaa osoitteesta https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Tämä peli on parannettu versio Alkeimin pelistä. Se on
RasPi-kahden pelaajan arcade-sohvapöytä: 7 vaihetta (kuvilla)
RasPi-kahden pelaajan Arcade-sohvapöytä: Tässä on minun versioni Raspberry Pi arcade -pöydästä. Sain idean muilta upeilta opetusvälineiltä täällä ja halusin jakaa kokemukseni rakentamisesta. Pöytä voi pelata pelejä useilta videopelikausilta, mukaan lukien NES, SNES, Sega, Play