Talaan ng mga Nilalaman:

Minesweeper: 5 Hakbang (na may Mga Larawan)
Minesweeper: 5 Hakbang (na may Mga Larawan)

Video: Minesweeper: 5 Hakbang (na may Mga Larawan)

Video: Minesweeper: 5 Hakbang (na may Mga Larawan)
Video: Pagsasanay sa pagbasa ng mga pangungusap | Filipino Kinder | Grade 1 & 2 | Practice Reading 2024, Nobyembre
Anonim
Minesweeper
Minesweeper

Para sa aming pangwakas na proyekto ng CPE 133, nagpasya kami ni Chase na lumikha ng isang laro na 'Minesweeper' na gumamit ng pindutan at paglipat ng input mula sa isang board ng Basys-3 pati na rin ang VHDL code. Ang isang mas mahusay na pangalan para sa laro ay maaaring maging 'Russian Roulette', subalit nais naming pumunta kasama ang isang mas pangalan sa pamilya. Ang laro ay nagsasangkot sa gumagamit upang pindutin ang gitnang pindutan sa board ng Basys upang random na italaga ang isa sa 16 na switch upang maging 'aktibo' sa isang bomba. Dalawang manlalaro pagkatapos ay magpapalitan ng pag-flip up ng switch, isa-isa, hanggang sa i-flip ng isa sa mga manlalaro ang switch gamit ang 'bomb'. Kapag nangyari iyon, ang pitong segment na display ay nagbabala sa mga manlalaro na natalo lang ng manlalaro ang laro.

Hakbang 1: Pangkalahatang-ideya

Gumamit ang proyekto ng maraming mga module ng VHDL na aming ginamit sa kurso ng quarter na ito. Ang isang apat na bit counter ay ginamit kasabay ng gilid ng orasan upang gayahin ang isang random na numero ng apat na bit upang maisaaktibo ang isa sa mga switch. Ginamit din ang isang diagram ng estado upang makapaglabas ng magkakaibang mga salita sa pitong segment na pagpapakita, mula sa 'PLAY' kapag ang mga manlalaro ay nasa kalagitnaan ng kanilang laro, hanggang sa 'Lose' kapag na-flip ng isa sa mga manlalaro ang aktibong switch.

Hakbang 2: Mga Kagamitan

  • Ang Basys3 Development Board mula sa Digilent, Inc.
  • Vivado Design Suite BC_DEC.vhd (Ang file na ito ay ibinigay sa amin sa Polylearn at isinulat ni Bryan Mealy)
  • Isang 4 bit counter na gawa sa T flip flops
  • Isang FSM

Hakbang 3: Paggawa ng Laro

Paggawa ng Laro
Paggawa ng Laro
Paggawa ng Laro
Paggawa ng Laro

Ang unang hakbang patungo sa paggawa ng larong ito ay pagguhit ng isang diagram ng circuit na may lahat ng mga sangkap na gagamitin namin. Ang mga input para sa sistemang ito ay ang pindutan 1, ang 16 switch, at ang Clock. Ang mga output ay ang pitong segment na pagpapakita at ang mga anode. Matapos iguhit ang diagram ng circuit, nagsulat kami ng mga indibidwal na file ng pinagmulan para sa bawat bahagi sa Vivado at pinagsama ang mga ito gamit ang mga mapa ng port sa ilalim ng pangunahing file ng pinagmulan.

Ang buong batayan ng laro ay umiikot nang sapalarang pagtatalaga ng isa sa 16 na switch upang maging aktibo gamit ang isang bomba, at para hindi malaman ng mga manlalaro kung aling switch ang aktibo hanggang sa ma-flip ang aktibong switch. Tiningnan namin ang mga random at pseudorandom number generator na online, ngunit napagpasyahan namin na ang paggamit ng isang 4-bit na counter at pagtatalaga ng kaukulang switch upang maging aktibo ay sapat na random para sa kung ano ang hinahanap namin. Nagawa naming muling gamitin ang aming 4-Bit counter na nilikha namin sa isang nakaraang proyekto upang makapagtrabaho para sa takdang-aralin na ito. Ginamit namin ang counter upang lumikha ng isang random na numero sa pagitan ng 0-15; pagkatapos ay sa pangunahing1 na bahagi, itinalaga namin ang decimal na katumbas ng random na numero sa kaukulang switch nito sa board. Tulad ng nakikita sa eskematiko, ang parehong output X ('aktibong bomba') mula sa pangunahing sangkap na1 at ang mga switch na binubuksan ng mga manlalaro ay pumunta sa FSM1. Ang makina ng estado ay naglalabas ng isang maliit na halaga ng Z na kung saan ay pagkatapos ay basahin ng BC_DEC1. Ang Finite State Machine na ginamit namin ay may dalawang magkakaibang estado: sa estado A, ang pitong segment na display ay output na 'PLAY' at ang makina ay mananatili sa estado na iyon hanggang sa makilala nito na ang nakaaktibo na switch ay na-flip. Kapag nangyari iyon, ang FSM ay pupunta sa estado B kung saan ito ay naglalabas ng 'NAWAWALA' sa pitong segment na display at mananatili sa estado na iyon hanggang sa ang lahat ng 16 na switch ay ibinalik sa '0'. Kapag natugunan ang kondisyong iyon, ang FSM pagkatapos ay muling pumunta sa estado A at naghihintay sa mga manlalaro na magsimula ng isa pang laro. Ang isang diagram ng Moore upang matulungan na maunawaan ang FSM na ito ay ipinakita sa itaas.

Hakbang 4: Mga Pagbabago sa Hinaharap

Ang ilang mga pagbabago na isinasaalang-alang namin tungkol sa paggawa sa aming laro ay nagsasama ng pagdaragdag ng higit pang mga bomba sa patlang (posibleng pagtaas mula isa hanggang tatlo), pagdaragdag ng isang counter ng iskor at maraming mga pag-ikot. Napagpasyahan namin sa huli ang mga pagpapahusay na ito, dahil nalaman namin na ang paglalaro ng mas mahaba, pinalawak na laro ay karaniwang mas tense at sa huli ay mas masaya kaysa sa isang laro na karaniwang natapos pagkatapos ng tatlo o apat na flip switch.

Hakbang 5: Konklusyon

Tuwang-tuwa kami sa huling resulta ng proyektong ito; hindi lamang dahil ang pangwakas na bersyon ng laro ay masaya upang i-play, ngunit din dahil sa paglikha at pag-program ng proyekto ay kinakailangan sa amin upang magamit nang higit, kung hindi lahat ng natutunan namin sa quarter na ito. Ginamit namin ang Flip Flops, counter, FSMs, ang orasan, input ng gumagamit mula sa board, at output sa pitong segment na display.

Nalaman din namin kung paano ang ilang mga error sa syntax ay maaaring ganap na masira ang programa (kahit na maituturing silang mabuti sa iba pang mga wika ng programa tulad ng Python o Java) at na pagkatapos lamang ng maraming simulation at maraming pag-ulit ng code na nai-upload at nasubok sa board, sa wakas magagawa mong gumana ang lahat ng mga bug sa iyong code.

Inirerekumendang: