Satura rādītājs:
- 1. darbība. Pārskats
- 2. solis: materiāli
- 3. solis: spēles izveidošana
- 4. solis: turpmākās izmaiņas
- 5. darbība. Secinājums
Video: Mīnu kuģis: 5 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Mūsu CPE 133 galīgajā projektā Čeiss un es nolēmām izveidot spēli “Minesweeper”, kurā tika izmantota poga un slēdzis no Basys-3 plates, kā arī VHDL kods. Labāks spēles nosaukums varētu būt “krievu rulete”, tomēr mēs gribējām izvēlēties ģimenei draudzīgāku nosaukumu. Spēle ietver lietotājam nospiest Basys dēļa vidējo pogu, lai nejauši piešķirtu vienu no 16 slēdžiem, lai tie būtu “aktīvi” ar bumbu. Pēc tam divi spēlētāji pēc kārtas pagriež slēdžus pa vienam, līdz viens no spēlētājiem pagriež slēdzi ar “bumbu”. Kad tas notiek, septiņu segmentu displejs brīdina spēlētājus, ka šis spēlētājs tikko ir zaudējis spēli.
1. darbība. Pārskats
Projektā tika izmantoti daudzi VHDL moduļi, kurus esam izmantojuši šī ceturkšņa laikā. Kopā ar pulksteņa malu tika izmantots četru bitu skaitītājs, lai simulētu nejaušu četru bitu skaitli, lai aktivizētu vienu no slēdžiem. Tika izmantota arī stāvokļa diagramma, lai septiņu segmentu displejā izvadītu dažādus vārdus, sākot no “PLAY”, kad spēlētāji atrodas spēles vidū, līdz “LOSE”, kad kāds no spēlētājiem ir pagriezis aktīvo slēdzi.
2. solis: materiāli
- Basys3 attīstības padome no Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Šis fails mums tika nodrošināts vietnē Polylearn, un to uzrakstīja Braiens Mīlijs)
- 4 bitu skaitītājs, kas izgatavots no T flip flops
- MFV
3. solis: spēles izveidošana
Pirmais solis šīs spēles veidošanā bija shēmas shēmas zīmēšana ar visiem komponentiem, kurus mēs izmantosim. Šīs sistēmas ievadi bija poga 1, 16 slēdži un pulkstenis. Rezultāti bija septiņu segmentu displejs un anodi. Pēc shēmas zīmēšanas mēs uzrakstījām atsevišķus avota failus katram komponentam Vivado un salikām tos kopā, izmantojot portu kartes zem galvenā avota faila.
Visa spēles pamatā ir nejauša viena no 16 slēdžiem piešķiršana aktīvai ar bumbu un lai spēlētāji nezina, kurš slēdzis ir aktīvs, kamēr šis aktīvais slēdzis nav ieslēgts. Mēs tiešsaistē izpētījām nejaušu un pseidogadījumu skaitļu ģeneratorus, taču galu galā nolēmām, ka 4 bitu skaitītāja izmantošana un attiecīgā slēdža piešķiršana aktīvai ir pietiekami nejauša, lai to, ko meklējām. Mēs varējām atkārtoti izmantot mūsu 4 bitu skaitītāju, ko izveidojām iepriekšējā projektā, lai varētu strādāt ar šo uzdevumu. Mēs izmantojām skaitītāju, lai izveidotu nejaušu skaitli starp 0-15; tad galvenajā komponentā mēs piešķīrām nejaušā skaitļa decimālo ekvivalentu tā atbilstošajam slēdzim uz tāfeles. Kā redzams shēmā, gan izeja X (“aktīvā bumba”) no galvenā komponenta, gan spēlētāju ieslēgtie slēdži pāriet uz FSM1. Stāvokļa mašīna izvada viena bita Z vērtību, kuru pēc tam nolasa BC_DEC1. Mūsu izmantotajai ierobežota stāvokļa mašīnai ir divi dažādi stāvokļi: A stāvoklī septiņu segmentu displejs izvada “PLAY”, un iekārta paliek šajā stāvoklī, līdz tā atpazīst aktivizēto slēdzi. Kad tas notiek, MFV pāriet stāvoklī B, kur septiņu segmentu displejā izvada “LOSE” un paliek šajā stāvoklī, līdz visi 16 slēdži tiek pārvērsti uz “0”. Kad šis nosacījums ir izpildīts, MFV atkal pāriet uz stāvokli A un gaida, kad spēlētāji sāks citu spēli. Mūra diagramma, kas palīdz izprast šo MFV, ir parādīta iepriekš.
4. solis: turpmākās izmaiņas
Dažas izmaiņas, kuras mēs apsvērām, lai veiktu mūsu spēli, ietver vairāk bumbu pievienošanu laukam (iespējams, palielinot no viena līdz trim), pievienojot rezultātu skaitītāju un vairākas kārtas. Mēs galu galā nolēmām pret šiem uzlabojumiem, jo atklājām, ka garāku, pagarinātu spēli spēlēt parasti bija saspringtāk un galu galā jautrāk nekā spēli, kas parasti beidzās pēc trim vai četriem slēdžiem.
5. darbība. Secinājums
Mēs bijām ļoti apmierināti ar šī projekta gala rezultātu; ne tikai tāpēc, ka spēles galīgo versiju bija jautri spēlēt, bet arī tāpēc, ka projekta izveidei un programmēšanai bija jāizmanto lielākā daļa, ja ne viss, ko mēs uzzinājām šajā ceturksnī. Mēs izmantojām flip flops, skaitītājus, FSM, pulksteni, lietotāja ievadi no tāfeles un izvadi septiņu segmentu displejā.
Mēs arī uzzinājām, kā dažas sintakses kļūdas var pilnībā izjaukt programmu (pat ja tās tiktu uzskatītas par labām citās programmēšanas valodās, piemēram, Python vai Java) un ka tikai pēc vairākām simulācijām un vairākām koda iterācijām, kas augšupielādētas un pārbaudītas vietnē kuģa, vai jūs beidzot varēsit novērst visas kļūdas no sava koda.
Ieteicams:
Elektroniskais kosmosa kuģis: 8 soļi (ar attēliem)
Elektroniskais kosmosa kuģis: Es izveidoju šo projektu, kas savieno divas manas iecienītākās jomas: elektronisko un kosmosu. Šis kosmosa kuģis ir pilnībā izgatavots no nulles
Tālvadības gaisa kuģis: 8 soļi (ar attēliem)
Tālvadības gaisa kuģis: ss
Kosmosa kuģis bērniem: 10 soļi
Kosmosa kuģis bērniem: Bērnībā es vienmēr gribēju izveidot vienu no šiem. Tagad, kad man bija divi mazi bērni, man bija labs attaisnojums, lai beidzot to izdarītu. Pārskats: Kosmosa kuģa rāmis tika izgatavots no koka un pārklāts ar saplākšņa paneļiem. Elektronika lielākoties darbojās ar 12 V spriegumu
Radio vadāms zvaigžņu kuģis: 8 soļi
Radio vadāms zvaigžņu kuģis: Man galvā bija ideja, ka vienkārši neaiziešu. Es esmu televīzijas seriāla Trek ventilators. Uzņēmums Star Ship Enterprise ir manas paaudzes ikona. Man bija ideja, kas ļautu tai lidot ar RC. &Quot; Deflektors " pod zem dzinējiem izskatījās l
Kosmosa kaujas kuģis Yamato 2199 ar sīkumiem Mikrokontrolleri: 8 soļi (ar attēliem)
Kosmosa kaujas kuģis Yamato 2199 ar sīkumiem Mikrokontrolleri: Kosmosa kaujas kuģa Yamato animācijas un filmas pārtaisīšanas dēļ, papildus Bandai modeļa pievilcīgajam dizainam. Mani interesē atkal izveidot šo kosmosa kaujas kuģa modeli. Bandai nemin tā mērogu, varbūt ~ 1: 2500 pēc aplēsēm