Mục lục:
- Bước 1: Tổng quan
- Bước 2: Vật liệu
- Bước 3: Tạo trò chơi
- Bước 4: Sửa đổi trong tương lai
- Bước 5: Kết luận
Video: Minesweeper: 5 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Đối với dự án cuối cùng CPE 133 của chúng tôi, Chase và tôi quyết định tạo một trò chơi ‘Minesweeper’ sử dụng nút và chuyển đổi đầu vào từ bảng Basys-3 cũng như mã VHDL. Một cái tên hay hơn cho trò chơi rất có thể là ‘Russian Roulette’, tuy nhiên chúng tôi muốn sử dụng một cái tên thân thiện với gia đình hơn. Trò chơi liên quan đến việc người dùng nhấn nút giữa trên bảng Basys để chỉ định ngẫu nhiên một trong 16 công tắc để 'hoạt động' với một quả bom. Sau đó, hai người chơi lần lượt bật công tắc lên, lần lượt cho đến khi một trong hai người chơi bật công tắc bằng ‘quả bom’. Khi điều đó xảy ra, màn hình bảy phân đoạn sẽ thông báo cho người chơi rằng người chơi đó vừa thua trò chơi.
Bước 1: Tổng quan
Dự án sử dụng nhiều mô-đun VHDL mà chúng tôi đã sử dụng trong suốt quý này. Một bộ đếm bốn bit được sử dụng cùng với cạnh đồng hồ để mô phỏng một số bốn bit ngẫu nhiên để kích hoạt một trong các công tắc. Biểu đồ trạng thái cũng được sử dụng để xuất các từ khác nhau cho màn hình bảy phân đoạn, từ ‘CHƠI’ khi người chơi đang ở giữa trò chơi, đến ‘LOSE’ khi một trong số người chơi đã bật công tắc đang hoạt động.
Bước 2: Vật liệu
- Ban phát triển Basys3 từ Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (Tệp này được cung cấp cho chúng tôi trên Polylearn và được viết bởi Bryan Mealy)
- Bộ đếm 4 bit làm bằng dép tông T
- FSM
Bước 3: Tạo trò chơi
Bước đầu tiên để tạo ra trò chơi này là vẽ một sơ đồ mạch với tất cả các thành phần mà chúng ta sẽ sử dụng. Đầu vào cho hệ thống này là nút 1, 16 công tắc và Đồng hồ. Đầu ra là màn hình bảy đoạn và các cực dương. Sau khi vẽ sơ đồ mạch, chúng tôi đã viết các tệp nguồn riêng lẻ cho từng thành phần trong Vivado và ghép chúng lại với nhau bằng cách sử dụng bản đồ cổng trong tệp nguồn chính.
Toàn bộ cơ sở của trò chơi xoay quanh việc chỉ định ngẫu nhiên một trong 16 công tắc hoạt động với bom và người chơi không biết công tắc nào đang hoạt động cho đến khi bật công tắc hoạt động đó. Chúng tôi đã xem xét các bộ tạo số ngẫu nhiên và giả ngẫu nhiên trực tuyến, nhưng cuối cùng chúng tôi quyết định rằng việc sử dụng bộ đếm 4 bit và chỉ định công tắc tương ứng hoạt động là đủ ngẫu nhiên cho những gì chúng tôi đang tìm kiếm. Chúng tôi đã có thể sử dụng lại bộ đếm 4 Bit mà chúng tôi đã tạo trong một dự án trước đó để có thể làm việc cho nhiệm vụ này. Chúng tôi đã sử dụng bộ đếm để tạo một số ngẫu nhiên từ 0-15; thì trong thành phần main1, chúng tôi đã gán giá trị tương đương thập phân của số ngẫu nhiên cho công tắc tương ứng của nó trên bảng. Như đã thấy trong giản đồ, cả đầu ra X ('bom hoạt động') từ thành phần main1 và các công tắc mà người chơi bật đều chuyển đến FSM1. Máy trạng thái xuất ra một giá trị Z một bit sau đó được đọc bởi BC_DEC1. Máy trạng thái hữu hạn mà chúng tôi sử dụng có hai trạng thái khác nhau: ở trạng thái A, màn hình hiển thị bảy phân đoạn xuất ra ‘PLAY’ và máy giữ nguyên trạng thái đó cho đến khi nó nhận ra rằng công tắc đã được kích hoạt bị lật. Khi điều đó xảy ra, FSM chuyển sang trạng thái B nơi nó xuất ‘LOSE’ đến màn hình bảy phân đoạn và giữ nguyên trạng thái đó cho đến khi tất cả 16 công tắc được chuyển sang ‘0’. Khi điều kiện đó được đáp ứng, FSM sau đó một lần nữa chuyển sang trạng thái A và chờ người chơi bắt đầu trò chơi khác. Sơ đồ Moore để giúp hiểu FSM này được hiển thị ở trên.
Bước 4: Sửa đổi trong tương lai
Một số sửa đổi mà chúng tôi đang xem xét về việc thực hiện trò chơi của mình bao gồm thêm nhiều bom hơn vào sân (có thể tăng từ một lên ba), thêm bộ đếm điểm và nhiều vòng. Cuối cùng, chúng tôi đã quyết định chống lại những cải tiến này, vì chúng tôi nhận thấy rằng chơi một trò chơi kéo dài, dài hơn thường căng thẳng hơn và cuối cùng thì thú vị hơn một trò chơi thường kết thúc sau ba hoặc bốn lần bật công tắc.
Bước 5: Kết luận
Chúng tôi rất vui mừng với kết quả cuối cùng của dự án này; không chỉ vì phiên bản cuối cùng của trò chơi rất thú vị khi chơi, mà còn vì việc tạo và lập trình dự án yêu cầu chúng tôi sử dụng hầu hết, nếu không muốn nói là tất cả những gì chúng tôi đã học được trong quý này. Chúng tôi đã sử dụng Flip Flops, bộ đếm, FSM, đồng hồ, đầu vào của người dùng từ bảng và xuất ra màn hình bảy phân đoạn.
Chúng tôi cũng đã tìm hiểu cách một vài lỗi cú pháp có thể phá vỡ hoàn toàn chương trình (ngay cả khi chúng được coi là tốt trong các ngôn ngữ lập trình khác như Python hoặc Java) và chỉ sau nhiều lần mô phỏng và nhiều lần lặp lại mã được tải lên và thử nghiệm trên bảng, liệu cuối cùng bạn có thể sửa chữa tất cả các lỗi trong mã của bạn.
Đề xuất:
Minesweeper-Raspberry-Pi-Edition: 7 bước (có hình ảnh)
Minesweeper-Raspberry-Pi-Edition: Dự án cuối cùng của tôi cho dòng CSC 130 tại Đại học Công nghệ Louisiana là Minesweeper Raspberry Pi Edition. Trong dự án này, tôi đã tìm cách tạo lại trò chơi quét mìn cổ điển bằng cách sử dụng thư viện Tkinter của lập trình Python
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: 3 bước (có hình ảnh)
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: Xin chào! Tôi luôn tìm kiếm các Dự án mới cho các bài học vật lý của mình. Hai năm trước, tôi đã xem một báo cáo về cảm biến nhiệt MLX90614 từ Melexis. Loại tốt nhất chỉ với 5 ° FOV (trường nhìn) sẽ phù hợp với máy ảnh nhiệt tự chế
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: 14 bước (có hình ảnh)
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: Có rất nhiều hướng dẫn trực tuyến về cách xây dựng máy ảnh phim của riêng bạn, nhưng tôi không nghĩ rằng có bất kỳ hướng dẫn nào về việc xây dựng cảm biến hình ảnh của riêng bạn! Cảm biến hình ảnh có sẵn từ rất nhiều công ty trực tuyến và việc sử dụng chúng sẽ giúp thiết kế
Hình ảnh - Máy ảnh Raspberry Pi in 3D.: 14 bước (có Hình ảnh)
Hình ảnh - Máy ảnh Raspberry Pi 3D được in: Cách đây trở lại vào đầu năm 2014, tôi đã xuất bản một máy ảnh có thể hướng dẫn được gọi là SnapPiCam. Máy ảnh được thiết kế để đáp ứng với Adafruit PiTFT mới được phát hành. Đã hơn một năm trôi qua và với bước đột phá gần đây của tôi vào in 3D, tôi nghĩ rằng n
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: 7 bước (với hình ảnh)
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: Tôi biết bạn đang nghĩ gì. Bằng cách " thân mật, " Ý tôi là chiếu sáng cận cảnh trong các tình huống ánh sáng khó - không nhất thiết dành cho " các tình huống thân mật. &Quot; (Tuy nhiên, nó cũng có thể được sử dụng cho việc đó …) Là một nhà quay phim thành phố New York - hoặc