Cuprins:
- Pasul 1: Prezentare generală
- Pasul 2: Materiale
- Pasul 3: Realizarea jocului
- Pasul 4: Modificări viitoare
- Pasul 5: Concluzie
Video: Mineweeper: 5 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Pentru proiectul nostru final CPE 133, eu și Chase am decis să creăm un joc „Minesweeper” care să utilizeze butonul și să comute intrarea de pe o placă Basys-3, precum și codul VHDL. Un nume mai bun pentru joc ar putea fi foarte bine „Russian Roulette”, totuși am vrut să mergem cu un nume mai prietenos cu familia. Jocul implică utilizatorul să apese butonul din mijloc de pe placa Basys pentru a aloca aleatoriu unul dintre cele 16 comutatoare pentru a fi „activ” cu o bombă. Apoi, doi jucători se schimbă pe rând, într-un rând, până când unul dintre jucători întoarce comutatorul cu „bomba”. Când se întâmplă acest lucru, afișajul de șapte segmente avertizează jucătorii că acel jucător tocmai a pierdut jocul.
Pasul 1: Prezentare generală
Proiectul a folosit multe dintre modulele VHDL pe care le-am utilizat în cursul acestui trimestru. Un contor de patru biți a fost utilizat împreună cu marginea ceasului pentru a simula un număr aleatoriu de patru biți pentru a activa unul dintre comutatoare. O diagramă de stare a fost, de asemenea, utilizată pentru a transmite cuvinte diferite pe afișajul de șapte segmente, variind de la „PLAY” atunci când jucătorii sunt la mijlocul jocului lor, până la „LOSE” când unul dintre jucători a activat comutatorul activ.
Pasul 2: Materiale
- Consiliul de dezvoltare Basys3 de la Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Acest fișier ne-a fost furnizat pe Polylearn și a fost scris de Bryan Mealy)
- Un contor de 4 biți din flip flops
- Un FSM
Pasul 3: Realizarea jocului
Primul pas către realizarea acestui joc a fost desenarea unei diagrame cu toate componentele pe care le vom folosi. Intrările pentru acest sistem au fost butonul 1, cele 16 comutatoare și ceasul. Ieșirile au fost afișajul pe șapte segmente și anodii. După desenarea schemei de circuite, am scris fișiere sursă individuale pentru fiecare componentă din Vivado și le-am pus împreună folosind hărți de porturi sub fișierul sursă principal.
Întreaga bază a jocului se învârte în jurul alocării aleatorii a unuia dintre cele 16 comutatoare pentru a fi active cu o bombă și pentru ca jucătorii să nu știe ce comutator este activ până când comutatorul activ nu este activat. Am analizat online generatoare de numere aleatorii și pseudorandom, dar în cele din urmă am decis că utilizarea unui contor de 4 biți și atribuirea comutatorului corespunzător pentru a fi activ este suficient de aleatorie pentru ceea ce căutam. Am putut să ne refacem contorul de 4 biți pe care l-am creat într-un proiect anterior pentru a putea lucra pentru această misiune. Am folosit contorul pentru a crea un număr aleatoriu între 0-15; apoi în componenta main1, am atribuit echivalentul zecimal al numărului aleatoriu comutatorului său corespunzător de pe placă. După cum se vede în schemă, atât ieșirea X („bomba activă”) de la componenta main1, cât și comutatoarele pe care jucătorii le pornesc merg la FSM1. Mașina de stat produce o valoare Z de un bit, care este apoi citită de BC_DEC1. Mașina cu stări finite pe care am folosit-o are două stări diferite: în starea A, cele șapte segmente afișează „PLAY”, iar mașina rămâne în starea respectivă până când recunoaște că comutatorul activat este răsturnat. Odată ce acest lucru se întâmplă, FSM trece la starea B, unde scoate „LOSE” pe afișajul de șapte segmente și rămâne în starea respectivă până când toate cele 16 comutatoare sunt rotite la „0”. Când această condiție este îndeplinită, FSM trece din nou la starea A și așteaptă jucătorii să înceapă un alt joc. O diagramă Moore pentru a ajuta la înțelegerea acestui FSM este prezentată mai sus.
Pasul 4: Modificări viitoare
Câteva modificări pe care le aveam în vedere cu privire la modificarea jocului nostru includ adăugarea mai multor bombe pe teren (posibil creșterea de la una la trei), adăugarea unui contor de scoruri și runde multiple. În cele din urmă, am decis împotriva acestor îmbunătățiri, deoarece am constatat că jocul unui joc mai lung și mai lung era de obicei mai tensionat și, în cele din urmă, mai distractiv decât un joc care se termina de obicei după trei sau patru schimbări de jocuri.
Pasul 5: Concluzie
Am fost foarte mulțumiți de rezultatul final al acestui proiect; nu numai pentru că versiunea finală a jocului a fost distractivă, ci și pentru că crearea și programarea proiectului ne-a impus să folosim cel mai mult, dacă nu chiar tot ce am învățat în acest trimestru. Am folosit Flip Flops, contoare, FSM-uri, ceasul, intrarea utilizatorului de pe placă și ieșirea pe afișajul cu șapte segmente.
De asemenea, am aflat cum câteva erori de sintaxă ar putea rupe complet programul (chiar dacă ar fi considerate bune în alte limbaje de programare, cum ar fi Python sau Java) și că numai după mai multe simulări și iterații multiple ale codului încărcat și testat pe bord, veți putea în cele din urmă să eliminați toate erorile din codul dvs.
Recomandat:
Cum: Instalarea Raspberry PI 4 Headless (VNC) cu Rpi-imager și imagini: 7 pași (cu imagini)
Cum: Instalarea Raspberry PI 4 Headless (VNC) cu Rpi-imager și Pictures: Plănuiesc să folosesc acest Rapsberry PI într-o grămadă de proiecte distractive din blogul meu. Simțiți-vă liber să o verificați. Am vrut să mă întorc să folosesc Raspberry PI, dar nu aveam tastatură sau mouse în noua mea locație. A trecut ceva timp de când am configurat un Raspberry
Cameră cu infrarosu cu imagini termice DIY: 3 pași (cu imagini)
Cameră cu infrarosu cu imagini termice DIY: Bună ziua! Caut mereu proiecte noi pentru lecțiile mele de fizică. Acum doi ani am dat peste un raport despre senzorul termic MLX90614 de la Melexis. Cel mai bun cu doar 5 ° FOV (câmp vizual) ar fi potrivit pentru o cameră termică făcută de sine. Pentru a citi
Lansați prezentarea de imagini de vacanță cu o atingere de magie!: 9 pași (cu imagini)
Lansează-ți prezentarea cu imagini de vacanță cu un strop de magie! pentru a se potrivi cu steagul și tema țării pe care o vizitez (în acest caz, Sicilia). T
Cum să dezasamblați un computer cu pași și imagini ușoare: 13 pași (cu imagini)
Cum să dezasamblați un computer cu pași și imagini ușoare: Aceasta este o instrucțiune despre cum să dezasamblați un computer. Majoritatea componentelor de bază sunt modulare și ușor de îndepărtat. Cu toate acestea, este important să fiți organizat în acest sens. Acest lucru vă va ajuta să nu vă pierdeți piese și, de asemenea, să faceți reasamblarea
Vizualizator digital de imagini 3D - „The DigiStereopticon”: 6 pași (cu imagini)
Vizualizator digital de imagini 3D - „The DigiStereopticon”: fotografia stereoscopică a căzut în lipsă. Acest lucru se datorează probabil faptului că oamenilor nu le place să poarte ochelari speciali pentru a vedea instantanee de familie. Iată un mic proiect distractiv pe care îl poți face în mai puțin de o zi pentru a-ți face imaginea 3D