
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Jums būs nepieciešams:
1. Digilent Basys 3, FPGA padome (vai jebkura cita FPGA,)
2. Salīdzinoši atjaunināta Vivado versija vai kāda cita VHDL vide
3. Dators, kas spēj palaist minēto programmu.
1. darbība: pati spēle

Kā MFV mijiedarbojas ar moduļiem.
Kā spēlēt
Lai sāktu, nospiediet vidējo pogu. Tādējādi septiņu segmentu displejā tiks parādīts “99”, kas atspoguļo otrā spēlētāja veselību. Pēc tam gaismas diodes iedegas secīgi no labās uz kreiso pusi. Tas veido barošanas joslu. Kad barošanas josla ir pilna, tā tiek atiestatīta. Pirmā spēlētāja mērķis ir pagriezt slēdzi, kad latiņa ir pēc iespējas augstāka. Jo vairāk iedegas gaismas diodes, jo vairāk spēlētājs nodara zaudējumus otrajam spēlētājam. Kad pirmais spēlētājs pagriež slēdzi, nodarītais kaitējums tiek atskaitīts no otrā spēlētāja veselības. Pēc tam tas pāriet uz otrā spēlētāja kārtu. Tagad parādītais skaitlis atspoguļo spēlētāja veselību, un barošanas josla tiek aizpildīta no kreisās uz labo. Kad otrais spēlētājs izdara gājienu, kaitējums tiek atskaitīts, un tas atkal atgriežas pie pirmā spēlētāja kārtas. Tas tiek atkārtots, līdz viens spēlētājs sasniedz 0 veselības stāvokli. Šīs darbības video ir pievienots.
2. darbība: MFV




Šī spēle būtībā ir viena liela ierobežota stāvokļa mašīna, kurā notiek sarežģīta loģika, pamatojoties uz stāvokli, kurā atrodas MFV.
Pirmais stāvoklis ir izvēlnes ekrāns, kas ir viens no vienkāršākajiem stāvokļiem. Tas ietver septiņu segmentu displeju, kurā redzams vārds “PLAY”, un pogu, kas izraisa spēles sākšanu. Poga BTN ved mūs uz nākamo stāvokli, kas ir spēlētāja kārta.
2. stāvoklis: pirmā spēlētāja kārta
Pirmā spēlētāja gājiens aktivizē signālu, kas liek septiņu segmentu displejā parādīt otrā spēlētāja veselību. Ieslēdzas cits signāls, lai aktivizētu maiņu reģistru, kas importēts no cita mūsu izveidotā moduļa (Pone.vhd). Šis maiņu reģistrs liek gaismas diodei iedegties tāpat kā pieaugošs jaudas mērītājs citās spēlēs, un pēc tam tas tiks atiestatīts uz 0, kad tas sasniegs maksimālo gaismas diodes daudzumu, ko varētu iedegt. Tas tiek atjaunināts uz pulksteņa augošās malas, kas iegūta no barclock.vhd, kas ir modificēts no aizgūta laboratorijas faila. Pirmā spēlētāja josla sākās no labās puses un piepildījās pa kreisi, jo spēlētāja slēdzis atrodas arī kreisajā pusē (intuitīvai lietotāja pieredzei). Kad slēdzis ir pagriezts, stāvoklis pāriet uz spēlētāja viena atskaitīšanu, un aktīvo gaismas diožu daudzums tiek saglabāts signālā.
3. stāvoklis: spēlētāja pirmā atskaitīšana Signāls ar aktīvo gaismas diodes daudzumu nosaka atskaitāmās veselības daudzumu. Tas tiek darīts, izveidojot citu maiņu reģistru (dedctor1.vhd), kas nevis palielina gaismas diodes, bet samazina tās. Tas samazinās viena no mūsu aizņemtā un modificētā pulksteņa div moduļa pieaugošajai malai (downcounterclock.vhd). Tiklīdz viena gaismas diode ir izslēgta, viens veselības punkts tiek atņemts no otrā spēlētāja kopējās veselības. Ja šī procesa laikā divi spēlētāji sasniedz 0 veselības stāvokli, mēs apstājamies un nekavējoties pārietam uz stāvokli “Spēle beigusies”. Pretējā gadījumā, kad LED vektors sasniedz “0000000000000000”, mēs pārejam pie otrā spēlētāja kārtas.
4. stāvoklis: otrā spēlētāja kārta Otrā spēlētāja kārta ir tieši tāda pati kā pirmā spēlētāja kārta, izņemot to, ka maiņu reģistrs (Ptwo.bhd) iet no kreisās uz labo pusi, un slēdzis atrodas tāfeles labajā pusē. Tiek aktivizēts signāls, lai tiktu parādīts spēlētāja 1 veselības stāvoklis. Kad 2. slēdzis ir aktīvs, tas pāriet uz otrā spēlētāja atskaitīšanas kārtu.
Piektais posms: otrā spēlētāja atskaitīšana Tāpat kā otrā spēlētāja kārta, otrā spēlētāja atskaitījums darbojas līdzīgi kā spēlētāja pirmā atskaitījums. Galvenā atšķirība ir tā, ka maiņu reģistrs, kas kontrolē gaismas diodes izslēgšanos, iet pretējā virzienā, ko ir viegli mainīt, kad spēlētāja atskaitījums darbojas pareizi.
6. posms: spēle beigusies Ja kādā brīdī kāds no spēlētājiem sasniedz nulles veselības stāvokli, spēle pārslēdzas uz šo stāvokli. Nekas izsmalcināts displejs. Ja tiek nospiests BTN viens, tad stāvoklis tiek atiestatīts uz 99 un stāvoklis atgriežas izvēlnē, efektīvi sākot spēli no jauna.
3. solis: moduļi

Spēles melnās kastes diagramma
Downcounterclock (pamatojoties uz Bryan Mealy moduli clk_div.vhd):
Šis ir pulkstenis, kas apstrādā dedukciju laiku. Konstante ar nosaukumu max_count ir 3 reizes vairāk nekā barclock max_count konstante. Tas padarīs atskaitītājus 3 reizes lēnākus par stieņa ātrumu.
Barclock - (pamatojoties uz Bryan Mealy moduli clk_div.vhd):
Šis pulkstenis apstrādā jaudas mērītāju laiku, ko mēs ātri palielinājām, lai palielinātu spēles grūtības. Šo laiku var pielāgot pēc jūsu vēlmēm, palielinot ātrumu, palielinot konstantu max_count par lielāku skaitli vai samazinot to, padarot max_count par mazāku skaitli. Sseg_dec - (Autors: Bryan Mealy): Šis modulis ievada 8 bitu skaitli kā ievadi, ko tas atšifrē, pārvēršot skaitli par decimālo ekvivalentu, un pēc tam izvada uz septiņu segmentu displeju. Lai šis fails darbotos, jums jāpārliecinās, ka jūsu ierobežojumi atbilst mūsu prasībām.
Pone:
Šis ir nobīdes reģistrs, kas pārnes bitus pa kreisi, pievienojot vienu karstu bitu, lai izskatītos, ka jaudas mērītājs palielinās. Kad visi biti ir karsti, visi biti tiek atiestatīti uz “0” un cikls sākas no jauna.
Ptwo:
Šī ir apgriezta P1 moduļa versija.
Deduktors 1:
Šī ir maiņu reģistra un atņemšanas kombinācija. Maiņu reģistrs iet pretējā virzienā P1 maiņu reģistram, norādot atskaitījumu. Tas arī atņem 1 no 2. spēlētāja veselības stāvokļa katram pulksteņa ciklam, tāpēc, apvienojot šīs divas funkcijas, izskatīsies, ka pretinieka veselība samazinās par 1 par katru veselības joslas rādījumu, kas samazinās.
Deductor2: Šī ir apgriezta Deductor1 moduļa versija.
PlayDecoder (aizgūts un nedaudz mainīts no ekchen35649 viņa 133 pamācības): tas tiek izmantots izvēlnes stāvoklī, lai septiņu segmentu dekodētājā parādītu vārdu “PLAY”.
4. solis: pārbaudiet
Šo spēli sākotnēji iedvesmoja viena no Kirbija minispēlēm. Tā ir vienkārša divu spēlētāju spēle, ko var spēlēt uz Basys 3 dēļa vai jebkuras FPGA.
1. darbība. Nepieciešamie materiāli
Jums būs nepieciešams: Digilent Basys 3, FPGA dēlis (vai jebkura cita) Salīdzinoši atjaunināta Vivado versija vai kāda cita vhdl vide Dators, kas spēj palaist minēto programmu A smadzenes
2. solis: pati spēle
Kā spēlēt
Lai sāktu, nospiediet vidējo pogu. Tādējādi septiņu segmentu displejā tiks parādīts “99”, kas atspoguļo otrā spēlētāja veselību. Pēc tam gaismas diodes iedegas secīgi no labās uz kreiso pusi. Tas veido barošanas joslu. Kad barošanas josla ir pilna, tā tiek atiestatīta. Pirmā spēlētāja mērķis ir pagriezt slēdzi, kad latiņa ir pēc iespējas augstāka. Jo vairāk iedegas gaismas diodes, jo vairāk spēlētājs nodara kaitējumu otrajam spēlētājam. Kad pirmais spēlētājs pagriež slēdzi, nodarītais kaitējums tiek atskaitīts no otrā spēlētāja veselības. Pēc tam tas pāriet uz otrā spēlētāja kārtu. Tagad parādītais skaitlis atspoguļo spēlētāja veselību, un barošanas josla tiek aizpildīta no kreisās uz labo. Kad otrais spēlētājs izdara gājienu, kaitējums tiek atskaitīts, un tas atkal atgriežas pie pirmā spēlētāja kārtas. Tas atkārtojas, līdz viens spēlētājs sasniedz 0 veselības stāvokli. Šīs darbības video ir pievienots.
Lai spēlētu spēli, ielādējiet to uz pamatplates un nospiediet vidējo pogu. Mēģiniet pagriezt slēdzi, kad ir ieslēgts pēc iespējas vairāk gaismas diodes, un pēc tam pagaidiet un vērojiet, kā dēlis atņem šos punktus no pretinieka veselības. Pēc tam nodod to draugam un
3. darbība: MFV
Šī spēle būtībā ir viena liela ierobežota stāvokļa mašīna, kurā notiek sarežģīta loģika, pamatojoties uz stāvokli, kurā atrodas MFV.
(Valsts diagramma)
1. stāvoklis: izvēlne
Pirmais stāvoklis ir izvēlnes ekrāns, kas ir viens no vienkāršākajiem stāvokļiem. Tas ietver septiņu segmentu displeju, kurā redzams vārds “PLAY”, un pogu, kas izraisa spēles sākumu. Poga BTN ved mūs uz nākamo stāvokli, kas ir spēlētāja kārta.
2. stāvoklis: pirmā spēlētāja kārta
Pirmā spēlētāja gājiens aktivizē signālu, kas liek septiņu segmentu displejā parādīt otrā spēlētāja veselību. Ieslēdzas cits signāls, lai aktivizētu maiņu reģistru, kas importēts no cita mūsu izveidotā moduļa (Pone.vhd). Šis maiņu reģistrs liek gaismas diodei iedegties tāpat kā pieaugošs jaudas mērītājs citās spēlēs, un pēc tam tas tiks atiestatīts uz 0, kad tas sasniegs maksimālo gaismas diožu daudzumu, ko varētu iedegt. Tas tiek atjaunināts uz pulksteņa augošās malas, kas iegūta no barclock.vhd, kas ir modificēts no aizgūta laboratorijas faila. Pirmā spēlētāja josla sākās no labās puses un piepildījās pa kreisi, jo spēlētāja slēdzis atrodas arī kreisajā pusē (intuitīvai lietotāja pieredzei). Kad slēdzis ir pagriezts, stāvoklis pāriet uz spēlētāja viena atskaitīšanu, un aktīvo gaismas diožu daudzums tiek saglabāts signālā.
3. stāvoklis: spēlētāja pirmā atskaitīšana
Signāls ar aktīvo gaismas diodes daudzumu nosaka atskaitāmās veselības daudzumu. Tas tiek darīts, izveidojot citu maiņu reģistru (dedctor1.vhd), kas nevis palielina gaismas diodes, bet samazina tās. Tas samazinās viena no mūsu aizņemtā un modificētā pulksteņa div moduļa pieaugošajai malai (downcounterclock.vhd). Tiklīdz viena gaismas diode ir izslēgta, viens veselības punkts tiek atņemts no otrā spēlētāja kopējās veselības. Ja šī procesa laikā divi spēlētāji sasniedz 0 veselības stāvokli, mēs apstājamies un nekavējoties pārietam uz stāvokli “Spēle beigusies”. Pretējā gadījumā, kad LED vektors sasniedz “0000000000000000”, mēs pārejam pie otrā spēlētāja kārtas.
4. stāvoklis: otrā spēlētāja kārta
Otrā spēlētāja gājiens ir tieši tāds pats kā pirmā spēlētāja gājiens, izņemot tā maiņu reģistru (Ptwo.bhd), kas iet no kreisās uz labo pusi, un slēdzis atrodas tāfeles labajā pusē. Tiek aktivizēts signāls, lai tiktu parādīts spēlētāja 1 veselības stāvoklis. Kad 2. slēdzis ir aktīvs, tas pāriet uz otrā spēlētāja atskaitīšanas kārtu.
5. posms: spēlētāja otrā atskaitīšana
Tāpat kā otrā spēlētāja kārta, spēlētājs otrais atskaitījums darbojas līdzīgi spēlētāja pirmā atskaitījumam. Galvenā atšķirība ir tā, ka maiņu reģistrs, kas kontrolē gaismas diodes izslēgšanos, iet pretējā virzienā, un to ir viegli mainīt, kad spēlētāja atskaitījums darbojas pareizi.
6. posms: spēle beigusies Ja kādā brīdī kāds no spēlētājiem sasniedz nulles veselības stāvokli, spēle pārslēdzas uz šo stāvokli. Nekas izsmalcināts displejs. Ja tiek nospiests BTN viens, tad stāvoklis tiek atiestatīts uz 99 un stāvoklis atgriežas izvēlnē, efektīvi sākot spēli no jauna.
Melnā kaste
4. solis: moduļi
Downcounterclock (pamatojoties uz Bryan Mealy moduli clk_div.vhd):
Šis ir pulkstenis, kas apstrādā dedukciju laiku. Konstante ar nosaukumu max_count ir 3 reizes vairāk nekā barclock max_count konstante. Tas padarīs atskaitītājus 3 reizes lēnākus par stieņa ātrumu.
Barclock - (pamatojoties uz Bryan Mealy moduli clk_div.vhd): šis pulkstenis apstrādā jaudas mērītāju laiku, ko mēs ātri palielinājām, lai palielinātu spēles grūtības. Šo laiku var pielāgot pēc jūsu vēlmēm, palielinot ātrumu, palielinot konstantu max_count par lielāku skaitli vai samazinot to, padarot max_count par mazāku skaitli. Sseg_dec - (Autors: Bryan Mealy): Šis modulis ievada 8 bitu skaitli kā ievadi, ko tas atšifrē, pārvēršot skaitli par decimālo ekvivalentu, un pēc tam izvada uz septiņu segmentu displeju. Lai šis fails darbotos, jums jāpārliecinās, ka jūsu ierobežojumi atbilst mūsu prasībām.
Pone: Šis ir nobīdes reģistrs, kas pārnes bitus pa kreisi, pievienojot vienu karstu bitu, lai izskatītos, ka jaudas mērītājs palielinās. Kad visi biti ir karsti, visi biti tiek atiestatīti uz “0” un cikls sākas no jauna.
Ptwo: Šī ir apgriezta P1 moduļa versija.
Deductor1: Šī ir maiņu reģistra un atņemšanas kombinācija. Maiņu reģistrs iet pretējā virzienā P1 maiņu reģistram, norādot atskaitījumu. Tas arī atņem 1 no 2. spēlētāja veselības stāvokļa katram pulksteņa ciklam, tāpēc, apvienojot šīs divas funkcijas, izskatīsies, ka pretinieka veselība samazinās par 1 par katru veselības joslas rādījumu, kas samazinās.
Deductor2: Šī ir apgriezta Deductor1 moduļa versija.
PlayDecoder (aizgūts un nedaudz pārveidots no ekchen35649 viņa 133 pamācības):
Tas tiek izmantots izvēlnes stāvoklī, lai septiņu segmentu dekoderī parādītu vārdu “PLAY”.
Darāmā: attēli, video
Ieteicams:
Pieskarieties Tap Rainbow - divu spēlētāju ātrās reaģēšanas spēle: 4 soļi (ar attēliem)

Pieskarieties Tap Rainbow - divu spēlētāju ātrās reaģēšanas spēle: pirms 2 nedēļām manai meitai bija ģeniāla ideja izveidot ātras reakcijas spēli ar varavīksnes krāsām (viņa ir varavīksnes eksperte: D). Man uzreiz patika šī ideja, un mēs sākām domāt, kā mēs to varētu padarīt par īstu spēli. Ideja bija. Jums ir varavīksne
Konkurētspējīga zummeru sistēma: 5 soļi

Konkurētspējīga zummeru sistēma: Šajā projektā izstrādātā konkurējošā zummeru sistēma darbojas līdzīgi zvana sistēmām, kuras tiek izmantotas reģionālajos un nacionālajos zinātnes bļodas konkursos. Šo projektu iedvesmoja mana līdzdalība manas vidusskolas zinātnes bļodas komandā trīs
Aruduino LED spēle Ātri noklikšķinot uz divu spēlētāju spēles: 8 soļi

Aruduino LED spēle Ātri noklikšķinot uz divu spēlētāju spēles: Šo projektu iedvesmojis @HassonAlkeim. Ja vēlaties padziļināti apskatīt, šeit ir saite, kuru varat pārbaudīt vietnē https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Šī spēle ir uzlabota Alkeim versija. Tas ir
Laika noteikšanas sistēma uz Arduino lāzera: 6 soļi (ar attēliem)

Laika noteikšanas sistēma uz Arduino lāzera bāzes: Mācību ietvaros man bija nepieciešama sistēma, lai precīzi izmērītu, cik ātri modeļa transportlīdzeklis nobrauca 10 metrus. Sākotnēji es domāju, ka es nopirkšu lētu gatavu sistēmu no eBay vai Aliexpress, šīs sistēmas parasti pazīstamas kā gaismas vārti
Vienotības vairāku spēlētāju 3D hologrammas spēle un hologrammas projektors personālajam datoram: 16 soļi (ar attēliem)

Vienotības vairāku spēlētāju 3D hologrammu spēle un hologrammas projektors personālajam datoram: iedvesmojoties no Holusa, man patīk ļoti lēti izstrādāt hologrāfisku displeju. Bet, mēģinot atrast spēles, tīmeklī neko neatradu. Tāpēc es plānoju izstrādāt savu spēli Unity. Šī ir mana pirmā spēle vienotībā. Pirms tam es izstrādāju dažas spēles Flash, bet