Sadržaj:
Video: Konkurentna igra za mjerenje vremena protiv 2 igrača: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Trebat će vam:
1. Digilent Basys 3, FPGA ploča (ili bilo koja druga FPGA,)
2. Relativno ažurirana verzija Vivada ili nekog drugog VHDL okruženja
3. Računar koji može pokrenuti pomenuti program.
Korak 1: Sama igra
Kako FSM stupa u interakciju s modulima.
Kako igrati
Za početak, pritisnite srednje dugme. Ovo će uzrokovati da se “99”, koje predstavlja zdravlje igrača dva, prikaže na ekranu sa sedam segmenata. Zatim će LED diode svijetliti uzastopno zdesna nalijevo. Time se formira power bar. Nakon što se traka za napajanje napuni, resetira se. Cilj igrača jedan je da okrene prekidač kada je bar što je moguće više. Što više LED lampica zasvijetli, igrač više štete nanosi igraču dva. Nakon što igrač jedan prebaci prekidač, nanesena šteta oduzima se od zdravlja igrača dva. Zatim se prelazi na red igrača dva. Sada prikazani broj predstavlja zdravlje igrača, a traka za napajanje se puni slijeva nadesno. Nakon što igrač dva napravi svoj potez, šteta se oduzima, i igrač se ponovo vraća na red. Ovo se ponavlja sve dok jedan igrač ne dosegne 0 zdravlja. Video zapis o ovom funkcioniranju nalazi se u prilogu.
Korak 2: FSM
Ova igra je u suštini jedna velika mašina konačnog stanja, u kojoj se dešava neka složena logika zasnovana na stanju u kojem se nalazi FSM.
Stanje 1: Izbornik Prvo stanje je zaslon izbornika, koji je jedno od jednostavnijih stanja. Uključuje ekran sa sedam segmenata koji prikazuje riječ “PLAY” i dugme koje uzrokuje početak igre. Dugme, BTN, nas vodi do sljedećeg stanja, a to je red na igrača.
Stanje 2: Na redu je igrač jedan
Prvi igrač aktivira signal koji uzrokuje da sedmosegmentni ekran prikazuje zdravlje igrača dva. Uključuje se drugi signal za aktiviranje registra pomaka uvezenog iz drugog modula koji smo kreirali (Pone.vhd). Ovaj registar pomaka čini da LED dioda svijetli poput povećanog mjerača snage u drugim igrama, a zatim bi se resetirao na 0 kada dosegne najveću količinu LED dioda koja bi se mogla upaliti. Ažurira se uz rastuću ivicu sata dobijenu iz barclock.vhd, koji je modifikovan iz posuđene laboratorijske datoteke. Imali smo šipku jednog igrača koja počinje s desne strane i popunjava se s lijeve strane, jer je prekidač igrača jedan također s lijeve strane (za intuitivno korisničko iskustvo). Kada se prekidač okrene, stanje se prebacuje na jedan odbitak igrača, a količina aktivne LED diode sprema se u signal.
Stanje 3: Odbitak igrača jedan Signal s količinom aktivne LED diode određuje količinu zdravlja koja se oduzima. To se postiže postojanjem drugog registra pomaka (deductor1.vhd) koji umjesto da povećava LED diode, smanjuje ih. Ovo se smanjuje na rastućoj ivici jednog od modula div div koji smo posudili i izmijenili (downcounterclock.vhd). Dok je jedna LED lampica isključena, jedan bod zdravlja oduzima se od ukupnog zdravlja igrača dva. Ako tokom ovog procesa igrač dva dostigne 0 zdravlja, zaustavljamo se i odmah prelazimo u stanje “Game over”. U suprotnom, kada LED vektor dosegne "0000000000000000", prelazimo na red igrača dva.
Stanje 4: Skretanje igrača dva Na potezu igrača dva je potpuno isto kao i igrač na potezu, osim što registar pomaka za njega (Ptwo.bhd) ide s lijeva na desno, a prekidač je s desne strane ploče. Aktivira se signal za prikaz zdravstvenog stanja igrača 1. Nakon što je prekidač 2 aktivan, ovo se prebacuje na oduzimanje poteza igrača dva.
Faza 5: Odbitak za drugog igrača Baš kao što je na redu drugi igrač, odbitak drugog igrača djeluje slično kao i prvi igrač. Glavna razlika je u tome što registar pomaka koji kontrolira gašenje LED diode ide u suprotnom smjeru, što je jednostavna izmjena koju napravite kad odbitak igrača radi ispravno.
Korak 6: Igra je završena Ako u bilo kojem trenutku bilo koji igrač dostigne nula zdravlja, igra se prebacuje u ovo stanje. Ništa elegantno prikazano. Ako se pritisne BTN, zdravlje se vraća na 99, a stanje se vraća na izbornik, čime se igra započinje iznova.
Korak 3: Moduli
Dijagram crne kutije za igru
Donji brojač (zasnovan na modulu clk_div.vhd od Bryana Mealyja):
Ovo je sat koji upravlja vremenom odbitka. Konstanta imenovana max_count je 3x veća od konstante max_count barclock -a. Ovo će odbitke učiniti 3x sporijom od brzine šipke.
Barclock - (prema modulu clk_div.vhd od Bryana Mealyja):
Ovaj sat upravlja vremenom mjerenja mjerača energije, što smo brzo povećali kako bismo igri dodali poteškoće. Ovo vrijeme se može prilagoditi vašem ukusu, povećavajući brzinu povećavajući konstantu max_count većim brojem, ili je smanjujući tako da max_count bude manji broj. Sseg_dec - (Napisao Bryan Mealy): Ovaj modul uzima 8 -bitni broj kao ulaz, koji dekodira, pretvarajući broj u njegov decimalni ekvivalent, a zatim izlaz na prikaz sa sedam segmenata. Da bi ova datoteka radila, morate biti sigurni da vaša ograničenja odgovaraju našim.
Ponedeljak:
Ovo je registar pomaka koji pomiče bitove ulijevo, dodajući jedan vrući bit kako bi izgledalo kao da se mjerač snage povećava. Kad su svi bitovi vrući, svi se bitovi vraćaju na '0' i ciklus počinje iznova.
Ptwo:
Ovo je okrenuta verzija P1 modula.
Odvodnik1:
Ovo je kombinacija registra pomaka i oduzimača. Registar pomaka ide u suprotnom smjeru od registra pomaka P1, što ukazuje na odbitak. Ovo također oduzima 1 od zdravlja igrača 2 za svaki ciklus takta, pa će kombinacijom ove dvije funkcije izgledati kao da se zdravlje protivnika smanjuje za 1 za svaki led zdravstvene trake koji se smanjuje.
Deductor2: Ovo je okrenuta verzija modula Deductor1.
PlayDecoder (posuđeno i glatko modifikovano iz ekchen35649 njegovih 133 instrukcija): Ovo se koristi u stanju menija za prikaz reči „PLAY“na dekodoru za sedam segmenata.
Korak 4: Testirajte
Ova je igra izvorno inspirirana jednom od Kirbyjevih mini igara. To je jednostavna igra za dva igrača koja se može igrati na Basys 3 ploči ili bilo kojoj FPGA.
Korak 1: Potrebni materijali
Trebat će vam: Digilent Basys 3, FPGA ploča (ili bilo koja druga) Relativno ažurirana verzija Vivada ili nekog drugog vhdl okruženja Računalo koje može pokrenuti spomenuti program Mozak
Korak 2: Sama igra
Kako igrati
Za početak, pritisnite srednje dugme. Ovo će uzrokovati da se “99”, koje predstavlja zdravlje igrača dva, prikaže na ekranu sa sedam segmenata. Zatim će LED diode svijetliti uzastopno zdesna nalijevo. Time se formira power bar. Nakon što se traka za napajanje napuni, resetira se. Cilj igrača jedan je da okrene prekidač kada je bar što je moguće više. Što više LED lampica zasvijetli, igrač više štete nanosi igraču dva. Nakon što igrač jedan prebaci prekidač, nanesena šteta oduzima se od zdravlja igrača dva. Zatim se prelazi na red igrača dva. Sada prikazani broj predstavlja zdravlje igrača, a traka za napajanje se puni slijeva nadesno. Nakon što igrač dva napravi svoj potez, šteta se oduzima, i igrač se ponovo vraća na red. Ovo se ponavlja sve dok jedan igrač ne dosegne 0 zdravlja. Video zapis o ovom funkcioniranju nalazi se u prilogu.
Da biste igrali igru, postavite je na basys ploču i pritisnite srednje dugme. Pokušajte okrenuti prekidač sa što je više moguće aktivnih LED dioda, a zatim pričekajte i gledajte dok ploča oduzima te bodove od zdravlja vašeg protivnika. Zatim je proslijedite svom prijatelju i
Korak 3: FSM
Ova igra je u suštini jedna velika mašina konačnog stanja, u kojoj se dešava neka složena logika zasnovana na stanju u kojem se nalazi FSM.
(Dijagram stanja)
Stanje 1: Meni
Prvo stanje je ekran menija, koje je jedno od jednostavnijih stanja. Uključuje ekran sa sedam segmenata koji prikazuje riječ “PLAY” i dugme koje uzrokuje početak igre. Dugme, BTN, nas vodi do sljedećeg stanja, a to je red na igrača.
Stanje 2: Na redu je igrač jedan
Prvi igrač aktivira signal koji uzrokuje da sedmosegmentni ekran prikazuje zdravlje igrača dva. Uključuje se drugi signal za aktiviranje registra pomaka uvezenog iz drugog modula koji smo kreirali (Pone.vhd). Ovaj registar pomaka čini da LED dioda svijetli poput povećanog mjerača snage u drugim igrama, a zatim bi se vratio na 0 kada dosegne maksimalnu količinu LED dioda koja bi mogla biti upaljena. Ažurira se na rastućoj ivici sata dobivenoj sa barclock.vhd, koji je modifikovan iz posuđene laboratorijske datoteke. Imali smo šipku jednog igrača koja počinje s desne strane i popunjava se s lijeve strane, jer je prekidač jednog igrača također s lijeve strane (za intuitivno korisničko iskustvo). Kada se prekidač okrene, stanje se prebacuje na odbitak za igrača, a količina aktivne LED diode sprema se u signal.
Stanje 3: Igraču jedan odbitak
Signal s količinom aktivne LED diode određuje količinu zdravlja koja se oduzima. To se postiže postojanjem drugog registra pomaka (deductor1.vhd) koji umjesto da povećava LED diode, smanjuje ih. Ovo se smanjuje na rastućoj ivici jednog od modula satnog div -a koje smo posudili i izmijenili (downcounterclock.vhd). Dok je jedna LED lampica isključena, jedna bodova zdravlja oduzima se od ukupnog zdravlja igrača dva. Ako tokom ovog procesa igrač dva dostigne 0 zdravlja, zaustavljamo se i odmah prelazimo u stanje “Game over”. U suprotnom, kada LED vektor dosegne "0000000000000000", prelazimo na red igrača dva.
Stanje 4: Na redu je igrač dva
Na redu drugog igrača je baš kao na potezu jednog igrača, osim što registar pomaka za njega (Ptwo.bhd) ide s lijeva na desno, a prekidač je s desne strane ploče. Aktivira se signal za prikaz zdravstvenog stanja igrača 1. Nakon što je prekidač 2 aktivan, ovo se prebacuje na oduzimanje poteza igrača dva.
Faza 5: Odbitak za igrača dva
Baš kao što je na redu drugi igrač, odbitak drugog igrača djeluje slično kao oduzimanje igrača jedan. Glavna razlika je u tome što registar pomaka koji kontrolira gašenje LED diode ide u suprotnom smjeru, što je jednostavna izmjena koju napravite kad odbitak igrača radi ispravno.
Korak 6: Igra je završena Ako u bilo kojem trenutku bilo koji igrač dostigne nula zdravlja, igra se prebacuje u ovo stanje. Ništa elegantno prikazano. Ako se pritisne BTN, zdravlje se vraća na 99, a stanje se vraća na izbornik, čime se igra započinje iznova.
Crna kutija
Korak 4: Moduli
Donji brojač (zasnovan na modulu clk_div.vhd od Bryana Mealyja):
Ovo je sat koji upravlja vremenom odbitka. Konstanta imenovana max_count je 3x veća od konstante max_count barclock -a. Ovo će odbitke učiniti 3x sporijom od brzine šipke.
Barclock - (zasnovano na modulu clk_div.vhd od Bryana Mealyja): Ovaj sat upravlja vremenom mjerenja mjerača energije, što smo brzo povećali kako bismo igri dodali poteškoće. Ovo vrijeme se može prilagoditi vašem ukusu, povećavajući brzinu povećavajući konstantu max_count većim brojem, ili je smanjujući tako da max_count bude manji broj. Sseg_dec - (Napisao Bryan Mealy): Ovaj modul uzima 8 -bitni broj kao ulaz, koji dekodira, pretvarajući broj u decimalni ekvivalent, a zatim izlaz na prikaz sa sedam segmenata. Da bi ova datoteka radila, morate biti sigurni da vaša ograničenja odgovaraju našim.
Pone: Ovo je registar pomaka koji pomiče bitove ulijevo, dodajući jedan vrući bit kako bi izgledalo kao da se mjerač snage povećava. Kad su svi bitovi vrući, svi se bitovi vraćaju na '0' i ciklus počinje iznova.
Ptwo: Ovo je okrenuta verzija P1 modula.
Deductor1: Ovo je kombinacija registra pomaka i oduzimača. Registar pomaka ide u suprotnom smjeru od registra pomaka P1, što ukazuje na odbitak. Ovo također oduzima 1 od zdravlja igrača 2 za svaki ciklus takta, pa će kombinacijom ove dvije funkcije izgledati kao da se zdravlje protivnika smanjuje za 1 za svaki led na ljestvici zdravlja koji se smanjuje.
Deductor2: Ovo je okrenuta verzija modula Deductor1.
PlayDecoder (posuđen i malo izmijenjen iz ekchen35649 njegovih 133 instrukcija):
Ovo se koristi u stanju menija za prikaz riječi “PLAY” na dekoderu sa sedam segmenata.
Obaveze: slike, video
Preporučuje se:
Retro arkadna stand-up igra za 2 igrača by Micro Center: 20 koraka
Retro arkada za 2 igrača Stand-Up Micro Center: Vaš lokalni Micro Center sada sadrži sve što vam je potrebno za izradu vlastitog Retro Arcade ormara zasnovanog na Raspberry Pi. Kompleti su potpuno prilagodljivi, uključuju ormarić, Raspberry Pi, dugmad, upravljačke palice, audio i video pribor i još mnogo toga. To je
Tap Tap Rainbow - igra za brzu reakciju za 2 igrača: 4 koraka (sa slikama)
Tap Tap Rainbow - igra za brzu reakciju za 2 igrača: prije 2 sedmice moja kćer je imala genijalnu ideju da napravi igru brze reakcije sa duginim bojama (ona je stručnjak za dugu: D). Ideja mi se odmah svidjela i počeli smo razmišljati kako od nje možemo napraviti pravu igru. Ideja je bila. Imate dugu u
Borba protiv koronavirusa: Jednostavan mjerač vremena za pranje ruku: 8 koraka (sa slikama)
Borba protiv koronavirusa: Jednostavan mjerač vremena za pranje ruku: S trenutnom pandemijom u svijetu, situacija izgleda prilično zastrašujuće. Korona virus može biti bilo gdje. Koliko znamo, virus bi se mogao nositi nekoliko dana čak i bez ikakvih simptoma. Zaista zastrašujuće. Ali hej, nemoj se previše bojati
Aruduino LED igra Brza igra za dva igrača: 8 koraka
Aruduino LED igra Brza igra za dva igrača: Ovaj projekat je inspirisan @HassonAlkeim. Ako ste voljni detaljno pogledati, evo linka koji možete provjeriti https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Ova igra je poboljšana verzija Alkeima. To je
Arduino džepna igraća konzola + A -Maze - Maze igra: 6 koraka (sa slikama)
Arduino džepna igraća konzola + A -Maze - Maze igra: Dobro došli u moje prve instrukcije! Projekt koji želim podijeliti s vama danas je Arduino labirint igra, koja je postala džepna konzola sposobna kao Arduboy i slične konzole zasnovane na Arduinu. Može se upotpuniti mojim (ili vašim) budućim igrama zahvaljujući izložbi