Daftar Isi:
- Langkah 1: Ikhtisar
- Langkah 2: Bahan
- Langkah 3: Membuat Game
- Langkah 4: Modifikasi Masa Depan
- Langkah 5: Kesimpulan
Video: Minesweeper: 5 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
Untuk tugas akhir CPE 133 kami, Chase dan saya memutuskan untuk membuat game ‘Penyapu ranjau’ yang menggunakan tombol dan beralih input dari papan Basys-3 serta kode VHDL. Nama yang lebih baik untuk gim ini bisa jadi 'Rusia Roulette', namun kami ingin menggunakan nama yang lebih ramah keluarga. Gim ini melibatkan pengguna untuk menekan tombol tengah di papan Basys untuk secara acak menetapkan salah satu dari 16 sakelar agar 'aktif' dengan bom. Dua pemain kemudian bergiliran membalik sakelar, satu per satu, hingga salah satu pemain membalik sakelar dengan 'bom'. Ketika itu terjadi, tampilan tujuh segmen memberi tahu para pemain bahwa pemain itu baru saja kalah dalam permainan.
Langkah 1: Ikhtisar
Proyek ini menggunakan banyak modul VHDL yang telah kami gunakan selama kuartal ini. Penghitung empat bit digunakan bersama dengan tepi jam untuk mensimulasikan nomor empat bit acak untuk mengaktifkan salah satu sakelar. Diagram keadaan juga digunakan untuk mengeluarkan kata-kata yang berbeda ke tampilan tujuh segmen, mulai dari 'MAINKAN' ketika para pemain berada di tengah permainan mereka, hingga 'KHALUS' ketika salah satu pemain telah menekan tombol aktif.
Langkah 2: Bahan
- Dewan Pengembangan Basys3 dari Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (File ini diberikan kepada kami di Polylearn dan ditulis oleh Bryan Mealy)
- Penghitung 4 bit yang terbuat dari T flip flop
- Sebuah FSM
Langkah 3: Membuat Game
Langkah pertama untuk membuat game ini adalah menggambar diagram sirkuit dengan semua komponen yang akan kita gunakan. Input untuk sistem ini adalah tombol 1, 16 sakelar, dan Jam. Outputnya adalah tampilan tujuh segmen dan anoda. Setelah menggambar diagram sirkuit, kami menulis file sumber individual untuk setiap komponen di Vivado dan menggabungkannya menggunakan peta port di bawah file sumber utama.
Seluruh dasar permainan berkisar secara acak menetapkan salah satu dari 16 sakelar untuk aktif dengan bom, dan bagi para pemain untuk tidak mengetahui sakelar mana yang aktif sampai sakelar aktif itu dinyalakan. Kami melihat ke generator nomor acak dan pseudorandom online, tetapi kami akhirnya memutuskan bahwa menggunakan penghitung 4-bit dan menetapkan sakelar yang sesuai untuk aktif cukup acak untuk apa yang kami cari. Kami dapat menggunakan kembali penghitung 4-Bit kami yang kami buat di proyek sebelumnya untuk dapat bekerja untuk tugas ini. Kami menggunakan penghitung untuk membuat angka acak antara 0-15; kemudian di komponen main1, kami menetapkan ekuivalen desimal dari angka acak ke sakelar yang sesuai di papan tulis. Seperti yang terlihat pada skema, baik output X ('bom aktif') dari komponen main1 dan sakelar yang dihidupkan pemain masuk ke FSM1. Mesin negara mengeluarkan nilai Z satu bit yang kemudian dibaca oleh BC_DEC1. Finite State Machine yang kami gunakan memiliki dua status berbeda: di status A, tampilan tujuh segmen menampilkan 'PLAY' dan mesin tetap dalam status itu hingga mesin mengenali bahwa sakelar yang diaktifkan dibalik. Setelah itu terjadi, FSM menuju ke status B di mana ia mengeluarkan 'LOSE' ke tampilan tujuh segmen dan tetap dalam status itu sampai semua 16 sakelar dibalik ke '0'. Ketika kondisi itu terpenuhi, FSM kemudian sekali lagi pergi ke keadaan A dan menunggu para pemain untuk memulai permainan lain. Diagram Moore untuk membantu memahami FSM ini ditunjukkan di atas.
Langkah 4: Modifikasi Masa Depan
Beberapa modifikasi yang kami pertimbangkan untuk dibuat pada game kami termasuk menambahkan lebih banyak bom ke lapangan (mungkin meningkat dari satu menjadi tiga), menambahkan penghitung skor dan beberapa putaran. Kami akhirnya memutuskan untuk tidak melakukan peningkatan ini, karena kami menemukan bahwa bermain game yang lebih lama dan diperpanjang biasanya lebih menegangkan dan pada akhirnya lebih menyenangkan daripada game yang biasanya berakhir setelah tiga atau empat kali membalik tombol.
Langkah 5: Kesimpulan
Kami sangat senang dengan hasil akhir dari proyek ini; bukan hanya karena versi final dari game ini menyenangkan untuk dimainkan, tetapi juga karena membuat dan memprogram proyek mengharuskan kami untuk memanfaatkan sebagian besar, jika tidak semua, yang kami pelajari pada kuartal ini. Kami menggunakan Flip Flops, penghitung, FSM, jam, input pengguna dari papan, dan output ke tampilan tujuh segmen.
Kami juga mempelajari bagaimana beberapa kesalahan sintaks dapat benar-benar merusak program (bahkan jika itu akan dianggap baik-baik saja dalam bahasa pemrograman lain seperti Python atau Java) dan itu hanya setelah beberapa simulasi dan beberapa iterasi dari kode yang diunggah dan diuji pada board, apakah Anda akhirnya dapat mengatasi semua bug dari kode Anda.
Direkomendasikan:
Pemegang Gambar Dengan Speaker Internal: 7 Langkah (dengan Gambar)
Picture Holder Dengan Built-in Speaker: Ini adalah proyek yang bagus untuk dilakukan selama akhir pekan, jika Anda ingin membuat speaker Anda sendiri yang dapat menampung gambar/kartu pos atau bahkan daftar tugas Anda. Sebagai bagian dari pembangunan kita akan menggunakan Raspberry Pi Zero W sebagai jantung dari proyek, dan sebuah
Howto: Instalasi Raspberry PI 4 Headless (VNC) Dengan Rpi-imager dan Gambar: 7 Langkah (dengan Gambar)
Cara: Memasang Raspberry PI 4 Headless (VNC) Dengan Rpi-imager dan Gambar: Saya berencana untuk menggunakan Rapsberry PI ini dalam banyak proyek menyenangkan di blog saya. Jangan ragu untuk memeriksanya. Saya ingin kembali menggunakan Raspberry PI saya tetapi saya tidak memiliki Keyboard atau Mouse di lokasi baru saya. Sudah lama sejak saya menyiapkan Raspberry
Minesweeper-Raspberry-Pi-Edition: 7 Langkah (dengan Gambar)
Minesweeper-Raspberry-Pi-Edition: Proyek akhir saya untuk seri CSC 130 di Louisiana Tech University adalah Minesweeper Raspberry Pi Edition. Dalam proyek ini, saya berusaha untuk membuat ulang permainan klasik kapal penyapu ranjau dengan memanfaatkan perpustakaan Tkinter dari pemrograman Python
Pengenalan Gambar Dengan Papan K210 dan Arduino IDE/Micropython: 6 Langkah (dengan Gambar)
Pengenalan Gambar Dengan Papan K210 dan Arduino IDE/Micropython: Saya sudah menulis satu artikel tentang cara menjalankan demo OpenMV di Sipeed Maix Bit dan juga membuat video demo deteksi objek dengan papan ini. Salah satu dari banyak pertanyaan yang diajukan orang adalah - bagaimana saya bisa mengenali objek yang jaringan sarafnya tidak
Cara Membongkar Komputer Dengan Langkah Mudah dan Gambar: 13 Langkah (dengan Gambar)
Cara Membongkar Komputer Dengan Langkah Mudah dan Gambar: Ini adalah instruksi tentang cara membongkar PC. Sebagian besar komponen dasar bersifat modular dan mudah dilepas. Namun penting bahwa Anda diatur tentang hal itu. Ini akan membantu Anda agar tidak kehilangan bagian, dan juga dalam membuat