Innholdsfortegnelse:
- Trinn 1: Oversikt
- Trinn 2: Materialer
- Trinn 3: Lag spillet
- Trinn 4: Fremtidige modifikasjoner
- Trinn 5: Konklusjon
Video: Minesveiper: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
For vårt siste prosjekt CPE 133 bestemte Chase og jeg oss for å lage et "Minesveiper" -spill som brukte knapp og bytte inngang fra et Basys-3-kort samt VHDL-kode. Et bedre navn på spillet kan godt være 'Russian Roulette', men vi ønsket å gå med et mer familievennlig navn. Spillet innebærer at brukeren trykker på den midtre knappen på Basys -brettet for å tilfeldig tildele en av de 16 bryterne til å være "aktiv" med en bombe. To spillere veksler deretter på å bytte brytere, en om gangen, til en av spillerne vender bryteren med "bomben". Når det skjer, varsler sju segmentskjermen spillerne om at den spilleren nettopp har tapt spillet.
Trinn 1: Oversikt
Prosjektet brukte mange av VHDL -modulene som vi har brukt i løpet av dette kvartalet. En fire bit teller ble brukt i forbindelse med klokkekanten for å simulere et tilfeldig fire bit tall for å aktivere en av bryterne. Et tilstandsdiagram ble også brukt for å sende forskjellige ord til sju segmenters display, alt fra "PLAY" når spillerne er midt i spillet, til "LOSE" når en av spillerne har vendt den aktive bryteren.
Trinn 2: Materialer
- Basys3 Development Board fra Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Denne filen ble levert til oss på Polylearn og ble skrevet av Bryan Mealy)
- En 4 -bits teller laget av T -flip -flops
- En FSM
Trinn 3: Lag spillet
Det første trinnet mot å lage dette spillet var å tegne et kretsdiagram med alle komponentene vi skal bruke. Innganger for dette systemet var knapp 1, de 16 bryterne og klokken. Utgangene var displayet med syv segmenter og anodene. Etter å ha tegnet kretsdiagrammet, skrev vi individuelle kildefiler for hver komponent i Vivado og satte dem sammen ved hjelp av portkart under hovedkildefilen.
Hele grunnlaget for spillet dreier seg om å tilfeldig tildele en av de 16 bryterne til å være aktiv med en bombe, og for at spillerne ikke skal vite hvilken bryter som er aktiv før den aktive bryteren er slått på. Vi så på tilfeldige og pseudoslåtte tallgeneratorer på nettet, men vi bestemte oss til slutt for at bruk av en 4-bits teller og tilordne den tilhørende bryteren til å være aktiv er tilstrekkelig tilfeldig for det vi lette etter. Vi var i stand til å gjenbruke vår 4-bits teller som vi opprettet i et tidligere prosjekt for å kunne jobbe for dette oppdraget. Vi brukte telleren til å lage et tilfeldig tall mellom 0-15; deretter i hoved1 -komponenten tildelte vi desimalekvivalenten til det tilfeldige tallet til den tilhørende bryteren på tavlen. Som vist i skjematikken, går både utgangen X ('aktiv bombe') fra hoved1 -komponenten og bryterne spillerne slår på til FSM1. Tilstandsmaskinen sender ut en bit Z -verdi som deretter leses av BC_DEC1. Den endelige tilstandsmaskinen vi brukte har to forskjellige tilstander: i tilstand A sender de syv segmentdisplayene ut 'PLAY', og maskinen forblir i denne tilstanden til den gjenkjenner at den aktiverte bryteren vendes. Når det skjer, går FSM til tilstand B hvor den sender ut «LOSE» til displayet med syv segmenter og forblir i den tilstanden til alle de 16 bryterne vendes til ‘0’. Når denne betingelsen er oppfylt, går FSM igjen til tilstand A og venter på at spillerne skal starte et nytt spill. Et Moore -diagram for å forstå denne FSM er vist ovenfor.
Trinn 4: Fremtidige modifikasjoner
Noen få modifikasjoner vi vurderte å gjøre i spillet vårt, inkluderer å legge til flere bomber på feltet (muligens øke fra en til tre), legge til en teller og flere runder. Vi bestemte oss til slutt mot disse forbedringene, da vi fant ut at det å spille et lengre, forlenget spill vanligvis var mer anspent og til slutt morsommere enn et spill som vanligvis endte etter tre eller fire bytteflipper.
Trinn 5: Konklusjon
Vi var veldig fornøyd med det endelige resultatet av dette prosjektet; ikke bare fordi den endelige versjonen av spillet var morsom å spille, men også fordi det å lage og programmere prosjektet krevde at vi brukte det meste, om ikke alt vi lærte dette kvartalet. Vi brukte flip -flops, tellere, FSM -er, klokken, brukerinngang fra brettet og utgang til displayet med syv segmenter.
Vi lærte også hvordan noen få syntaksfeil helt kunne ødelegge programmet (selv om de ville bli betraktet som fine på andre programmeringsspråk som Python eller Java), og det bare etter at flere simuleringer og flere iterasjoner av koden ble lastet opp til og testet på bord, vil du endelig kunne jobbe alle feilene ut av koden din.
Anbefalt:
Ta flotte bilder med en iPhone: 9 trinn (med bilder)
Ta flotte bilder med en iPhone: De fleste av oss har med oss en smarttelefon overalt i disse dager, så det er viktig å vite hvordan du bruker smarttelefonkameraet ditt til å ta flotte bilder! Jeg har bare hatt en smarttelefon i et par år, og jeg har elsket å ha et greit kamera for å dokumentere ting jeg
Slik gjør du det: Installere Raspberry PI 4 Headless (VNC) med Rpi-imager og bilder: 7 trinn (med bilder)
Howto: Installere Raspberry PI 4 Headless (VNC) Med Rpi-imager og bilder: Jeg planlegger å bruke denne Rapsberry PI i en haug med morsomme prosjekter tilbake i bloggen min. Sjekk det gjerne ut. Jeg ønsket å begynne å bruke Raspberry PI igjen, men jeg hadde ikke tastatur eller mus på min nye plassering. Det var en stund siden jeg konfigurerte en bringebær
Minesveiper-Raspberry-Pi-utgave: 7 trinn (med bilder)
Minesweeper-Raspberry-Pi-Edition: Mitt siste prosjekt for CSC 130-serien ved Louisiana Tech University er Minesweeper Raspberry Pi Edition. I dette prosjektet søkte jeg å gjenskape det klassiske spillet minesveiper ved å bruke Tkinter -biblioteket til Python -programmeringen
Slik demonterer du en datamaskin med enkle trinn og bilder: 13 trinn (med bilder)
Slik demonterer du en datamaskin med enkle trinn og bilder: Dette er en instruksjon om hvordan du demonterer en PC. De fleste grunnkomponentene er modulære og fjernes lett. Det er imidlertid viktig at du er organisert om det. Dette vil bidra til å hindre deg i å miste deler, og også i å gjøre monteringen igjen
PCB -design med enkle og enkle trinn: 30 trinn (med bilder)
PCB -design med enkle og enkle trinn: HELLO VENNER Den veldig nyttige og enkle opplæringen for de som ønsker å lære PCB -design, kan komme i gang