Indholdsfortegnelse:
- Trin 1: Oversigt
- Trin 2: Materialer
- Trin 3: Lav spillet
- Trin 4: Fremtidige ændringer
- Trin 5: Konklusion
Video: Minestryger: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Til vores CPE 133-afsluttende projekt besluttede Chase og jeg at oprette et 'Minesweeper' -spil, der brugte knapper og skift input fra et Basys-3-kort samt VHDL-kode. Et bedre navn til spillet kunne meget vel være 'Russian Roulette', men vi ønskede at gå med et mere familievenligt navn. Spillet involverer brugeren til at trykke på den midterste knap på Basys -tavlen for tilfældigt at tildele en af de 16 kontakter til at være 'aktiv' med en bombe. To spillere skiftes derefter til at vende kontakter op, en ad gangen, indtil en af spillerne vender kontakten med 'bomben'. Når det sker, viser det syv segment display displayet til spillerne, at den spiller lige har tabt spillet.
Trin 1: Oversigt
Projektet udnyttede mange af de VHDL -moduler, som vi har brugt i løbet af dette kvartal. En fire bit tæller blev brugt i forbindelse med urets kant for at simulere et tilfældigt fire bit tal for at aktivere en af switchene. Et tilstandsdiagram blev også brugt til at udsende forskellige ord til syv segmentdisplayet, lige fra 'PLAY', når spillerne er midt i deres spil, til 'LOSE', når en af spillerne har vendt den aktive switch.
Trin 2: Materialer
- Basys3 Development Board fra Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Denne fil blev leveret til os på Polylearn og blev skrevet af Bryan Mealy)
- En 4 bit tæller lavet af T flip -flops
- En FSM
Trin 3: Lav spillet
Det første skridt mod at lave dette spil var at tegne et kredsløbsdiagram med alle de komponenter, vi vil bruge. Indgange til dette system var knap 1, de 16 kontakter og uret. Outputs var displayet med syv segmenter og anoderne. Efter at have tegnet kredsløbsdiagrammet skrev vi individuelle kildefiler for hver komponent i Vivado og satte dem sammen ved hjælp af portkort under hovedkildefilen.
Hele grundlaget for spillet drejer sig om tilfældigt at tildele en af de 16 switches til at være aktiv med en bombe, og for at spillerne ikke ved, hvilken switch der er aktiv, før den aktive switch tændes. Vi undersøgte tilfældige og pseudotilfældige talgeneratorer online, men vi besluttede til sidst, at det var tilstrækkeligt tilfældigt at bruge en 4-bit tæller og tildele den tilsvarende switch til at være aktiv til det, vi ledte efter. Vi var i stand til at genanvende vores 4-bit tæller, som vi oprettede i et tidligere projekt for at kunne arbejde til denne opgave. Vi brugte tælleren til at oprette et tilfældigt tal mellem 0-15; derefter i main1 -komponenten tildelte vi decimalækvivalenten af tilfældigt tal til den tilsvarende switch på tavlen. Som det ses i skematikken, går både output X ('aktiv bombe') fra main1 -komponent og switches, spillerne tænder til FSM1. Tilstandsmaskinen udsender en Z -værdi på en bit, som derefter læses af BC_DEC1. Den endelige tilstandsmaskine, vi brugte, har to forskellige tilstande: i tilstand A udsender de syv segmentdisplay 'PLAY', og maskinen forbliver i denne tilstand, indtil den genkender, at den aktiverede kontakt er vendt. Når det sker, går FSM til tilstand B, hvor den sender 'LOSE' til det syv segment display og forbliver i denne tilstand, indtil alle 16 switches vendes til '0'. Når denne betingelse er opfyldt, går FSM derefter igen til tilstand A og venter på, at spillerne starter et andet spil. Et Moore -diagram til hjælp med at forstå denne FSM er vist ovenfor.
Trin 4: Fremtidige ændringer
Et par ændringer, vi overvejede at foretage i vores spil, omfatter tilføjelse af flere bomber til feltet (muligvis stigning fra en til tre), tilføjelse af en scoringstæller og flere runder. Vi besluttede i sidste ende imod disse forbedringer, da vi fandt ud af, at det at spille et længere, forlænget spil typisk var mere spændt og i sidste ende sjovere end et spil, der typisk sluttede efter tre eller fire switch -vendinger.
Trin 5: Konklusion
Vi var meget tilfredse med det endelige resultat af dette projekt; ikke kun fordi den sidste version af spillet var sjovt at spille, men også fordi at skabe og programmere projektet krævede, at vi brugte det meste, hvis ikke alt det, vi lærte i dette kvartal. Vi brugte flip -flops, tællere, FSM'er, uret, brugerinput fra kortet og output til displayet med syv segmenter.
Vi lærte også, hvordan et par syntaksfejl helt kunne bryde programmet (selvom de ville blive betragtet som fine i andre programmeringssprog som Python eller Java), og det kun efter flere simuleringer og flere iterationer af koden, der blev uploadet til og testet på board, vil du endelig kunne arbejde alle fejl ud af din kode.
Anbefalede:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Arduino Halloween Edition - Pop -out -skærm med zombier (trin med billeder): 6 trin
Arduino Halloween Edition - Zombies Pop -out -skærm (trin med billeder): Vil du skræmme dine venner og lave skrigende støj i Halloween? Eller vil du bare lave en god sjov? Denne pop-out-skærm fra Zombies kan gøre det! I denne Instructable vil jeg lære dig, hvordan du nemt laver jump-out zombier ved hjælp af Arduino. HC-SR0
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Ciclop 3d Scanner My Way Trin for trin: 16 trin (med billeder)
Ciclop 3d Scanner My Way Step by Step: Hej alle sammen, jeg kommer til at indse den berømte Ciclop 3D -scanner.Alle trin, der er godt forklaret på det originale projekt, er ikke til stede.Jeg lavede nogle rettelser for at forenkle processen, først Jeg udskriver basen, og end jeg genstarter printkortet, men fortsæt
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores