Mục lục:
Video: Trò chơi cạnh tranh 2 người chơi VS tính thời gian: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Bạn sẽ cần:
1. Digilent Basys 3, FPGA Board (hoặc bất kỳ FPGA nào khác,)
2. Phiên bản tương đối cập nhật của Vivado hoặc một số môi trường VHDL khác
3. Một máy tính có thể chạy chương trình được đề cập.
Bước 1: Bản thân trò chơi
Cách thức FSM tương tác với các mô-đun.
Cách chơi
Để bắt đầu, bạn nhấn nút giữa. Điều này sẽ làm cho “99”, đại diện cho sức khỏe của người chơi thứ hai, hiển thị trên màn hình bảy phân đoạn. Sau đó, các đèn LED sẽ sáng theo tuần tự từ phải sang trái. Điều này tạo thành một thanh nguồn. Khi thanh nguồn đầy, nó sẽ đặt lại. Mục tiêu của người chơi là lật công tắc của họ khi thanh càng cao càng tốt. Càng nhiều đèn LED sáng lên, người chơi một gây ra nhiều thiệt hại hơn cho người chơi hai. Sau khi người chơi một lật công tắc của họ, sát thương gây ra được trừ vào máu của người chơi hai. Sau đó, nó chuyển sang lượt của hai người chơi. Giờ đây, con số được hiển thị đại diện cho sức khỏe của một người chơi và thanh nguồn lấp đầy từ trái sang phải. Sau khi người chơi thứ hai thực hiện bước đi của họ, thiệt hại sẽ bị trừ và nó sẽ quay trở lại lượt của người chơi một lần nữa. Điều này lặp lại cho đến khi một người chơi đạt 0 máu. Video về hoạt động này được đính kèm.
Bước 2: FSM
Trò chơi này về cơ bản là một máy trạng thái hữu hạn lớn, mà một số logic phức tạp xảy ra dựa trên trạng thái mà FSM đang ở.
Trạng thái 1: Menu Trạng thái đầu tiên là màn hình menu, là một trong những trạng thái đơn giản hơn. Nó bao gồm màn hình bảy phân đoạn hiển thị từ “CHƠI” và nút khiến trò chơi bắt đầu. Nút, BTN, dẫn chúng ta đến trạng thái tiếp theo, đó là lượt người chơi.
Trạng thái 2: Lượt của người chơi
Lượt của Người chơi một kích hoạt tín hiệu khiến màn hình bảy đoạn hiển thị sức khỏe của Người chơi hai. Một tín hiệu khác bật để kích hoạt một thanh ghi dịch chuyển được nhập từ một mô-đun khác mà chúng tôi đã tạo (Pone.vhd). Thanh ghi dịch chuyển này làm cho đèn LED sáng lên giống như một dụng cụ đo công suất ngày càng tăng trong các trò chơi khác và sau đó nó sẽ đặt lại về 0 khi đạt đến lượng đèn LED tối đa có thể phát sáng. Nó cập nhật về cạnh lên của đồng hồ thu được từ barclock.vhd, được sửa đổi từ một tệp lab mượn. Chúng tôi đã để thanh của một trình phát bắt đầu từ bên phải và lấp đầy ở bên trái, vì công tắc của một trình phát cũng ở bên trái (để có trải nghiệm người dùng trực quan). Sau khi bật công tắc, trạng thái chuyển sang đầu phát một khoản khấu trừ và lượng đèn LED đang hoạt động được lưu trong một tín hiệu.
Trạng thái 3: Người chơi một bị trừ Tín hiệu có lượng đèn LED đang hoạt động xác định lượng máu bị trừ. Điều này được thực hiện bằng cách có một thanh ghi dịch chuyển khác (retuctor1.vhd) thay vì tăng các đèn LED, hãy giảm chúng. Điều này giảm trên cạnh lên của một trong các mô-đun div đồng hồ mà chúng tôi đã mượn và sửa đổi (downcounterclock.vhd). Ngay khi một đèn LED bị tắt, một điểm máu sẽ bị trừ khỏi tổng số máu của người chơi hai. Nếu trong quá trình này, hai người chơi đạt 0 máu, chúng tôi dừng lại và ngay lập tức chuyển sang trạng thái “Trò chơi kết thúc”. Nếu không, khi vectơ LED đạt đến “0000000000000000”, chúng tôi chuyển sang lượt của hai người chơi.
Trạng thái 4: Lượt của người chơi Hai lượt của người chơi giống hệt như lượt của người chơi một, ngoại trừ thanh ghi dịch chuyển cho nó (Ptwo.bhd) đi từ trái sang phải và công tắc nằm ở phía bên phải của bàn cờ. Một tín hiệu kích hoạt để hiển thị sức khỏe của Người chơi 1. Sau khi công tắc 2 hoạt động, công tắc này sẽ chuyển sang lượt trừ của Người chơi thứ hai.
Giai đoạn 5: Người chơi hai khoản khấu trừ Cũng giống như lượt của người chơi hai, khoản khấu trừ của người chơi hai hành động giống như người chơi một bị trừ. Sự khác biệt chính là thanh ghi dịch chuyển điều khiển đèn LED tắt đi theo hướng ngược lại, đây là một sửa đổi dễ dàng thực hiện khi bạn có khoản khấu trừ của người chơi hoạt động bình thường.
Giai đoạn 6: Trận đấu kết thúc Nếu tại bất kỳ thời điểm nào một trong hai người chơi không còn máu, trò chơi sẽ chuyển sang trạng thái này. Không có gì hiển thị ưa thích. Nếu nhấn BTN một, thì máu sẽ được đặt lại thành 99 và trạng thái sẽ quay trở lại menu, bắt đầu lại trò chơi một cách hiệu quả.
Bước 3: Mô-đun
Sơ đồ hộp đen cho trò chơi
Downcounterclock (dựa trên mô-đun clk_div.vhd của Bryan Mealy):
Đây là đồng hồ xử lý thời gian của các bộ trừ. Hằng số có tên max_count cao gấp 3 lần hằng số max_count của barclock. Điều này sẽ làm cho các bộ trừ chậm hơn 3 lần so với tốc độ của thanh.
Barclock - (dựa trên mô-đun clk_div.vhd của Bryan Mealy):
Đồng hồ này xử lý thời gian của đồng hồ đo năng lượng, chúng tôi đã tăng nhanh chóng để tăng thêm độ khó cho trò chơi. Thời gian này có thể được điều chỉnh theo ý muốn của bạn, tăng tốc độ bằng cách đặt max_count không đổi thành một số lớn hơn hoặc giảm nó bằng cách làm cho max_count một số nhỏ hơn. Sseg_dec - (Viết bởi Bryan Mealy): Mô-đun này lấy một số 8 bit làm đầu vào, nó sẽ giải mã, chuyển đổi số thành số thập phân tương đương và sau đó xuất ra màn hình bảy phân đoạn. Để tệp này hoạt động, bạn cần đảm bảo rằng các ràng buộc của bạn phù hợp với các ràng buộc của chúng tôi.
Pone:
Đây là một thanh ghi dịch chuyển các bit sang trái, thêm một bit nóng để làm cho nó trông giống như công suất kế đang tăng lên. Khi tất cả các bit đều nóng, tất cả các bit sẽ được đặt lại về "0" và chu kỳ bắt đầu lại.
Ptwo:
Đây là phiên bản lật của mô-đun P1.
Deductor1:
Đây là sự kết hợp của một thanh ghi shift và một bộ trừ. Thanh ghi dịch chuyển đi theo hướng ngược lại với thanh ghi dịch chuyển của P1, cho biết một khoản khấu trừ. Điều này cũng trừ đi 1 từ máu của Người chơi 2 cho mỗi chu kỳ đồng hồ, do đó, với sự kết hợp của hai chức năng này, có vẻ như sức khỏe của đối phương giảm đi 1 cho mỗi điểm dẫn của thanh máu đi xuống.
Deductor2: Đây là phiên bản lật của mô-đun Deductor1.
PlayDecoder (được mượn và sửa đổi từ ekchen35649 có thể hướng dẫn 133 của anh ấy): Điều này được sử dụng trong trạng thái menu để hiển thị từ “PLAY” trên bộ giải mã bảy đoạn.
Bước 4: Kiểm tra
Trò chơi này ban đầu được lấy cảm hứng từ một trong những minigame từ Kirby. Đây là một trò chơi hai người chơi đơn giản có thể chơi trên Bảng Basys 3 hoặc bất kỳ FPGA nào.
Bước 1: Vật liệu cần thiết
Bạn sẽ cần: Digilent Basys 3, FPGA Board (hoặc bất kỳ thứ gì khác) Một phiên bản tương đối cập nhật của Vivado hoặc một số môi trường vhdl khác Một máy tính có thể chạy chương trình đã đề cập A brain
Bước 2: Bản thân trò chơi
Cách chơi
Để bắt đầu, bạn nhấn nút giữa. Điều này sẽ làm cho “99”, đại diện cho sức khỏe của người chơi thứ hai, hiển thị trên màn hình bảy phân đoạn. Sau đó, các đèn LED sẽ sáng theo tuần tự từ phải sang trái. Điều này tạo thành một thanh nguồn. Khi thanh nguồn đầy, nó sẽ đặt lại. Mục tiêu của người chơi là lật công tắc của họ khi thanh càng cao càng tốt. Càng nhiều đèn LED sáng lên, người chơi một gây ra nhiều thiệt hại hơn cho người chơi hai. Sau khi người chơi một lật công tắc của họ, sát thương gây ra được trừ vào máu của người chơi hai. Sau đó, nó chuyển sang lượt của hai người chơi. Giờ đây, con số được hiển thị đại diện cho sức khỏe của một người chơi và thanh nguồn lấp đầy từ trái sang phải. Sau khi người chơi thứ hai thực hiện bước đi của họ, thiệt hại sẽ bị trừ và nó sẽ quay trở lại lượt của người chơi một lần nữa. Điều này lặp lại cho đến khi một người chơi đạt 0 máu. Video về hoạt động này được đính kèm.
Để chơi trò chơi, hãy tải trò chơi lên bảng đáy và nhấn nút ở giữa. Cố gắng lật công tắc khi có nhiều đèn LED đang hoạt động nhất có thể, sau đó chờ và xem bảng trừ các điểm đó khỏi lượng máu của đối thủ. Sau đó, chuyển nó cho bạn của bạn, và
Bước 3: FSM
Trò chơi này về cơ bản là một cỗ máy trạng thái hữu hạn lớn, mà một số logic phức tạp xảy ra dựa trên trạng thái mà FSM đang ở đó.
(Biểu đồ trạng thái)
Trạng thái 1: Thực đơn
Trạng thái đầu tiên là màn hình menu, đây là một trong những trạng thái đơn giản hơn. Nó bao gồm màn hình bảy phân đoạn hiển thị từ “CHƠI” và nút khiến trò chơi bắt đầu. Nút, BTN, dẫn chúng ta đến trạng thái tiếp theo, đó là lượt của người chơi.
Trạng thái 2: Lượt của người chơi
Lượt của Người chơi một kích hoạt tín hiệu khiến màn hình bảy đoạn hiển thị sức khỏe của Người chơi hai. Một tín hiệu khác bật để kích hoạt một thanh ghi dịch chuyển được nhập từ một mô-đun khác mà chúng tôi đã tạo (Pone.vhd). Thanh ghi dịch chuyển này làm cho đèn LED sáng lên giống như một dụng cụ đo công suất ngày càng tăng trong các trò chơi khác và sau đó nó sẽ đặt lại về 0 khi đạt đến lượng đèn LED tối đa có thể phát sáng. Nó cập nhật về cạnh lên của đồng hồ thu được từ barclock.vhd, được sửa đổi từ một tệp lab mượn. Chúng tôi đã để thanh của một trình phát bắt đầu từ bên phải và lấp đầy ở bên trái, vì công tắc của một trình phát cũng ở bên trái (để có trải nghiệm người dùng trực quan). Sau khi bật công tắc, trạng thái chuyển sang đầu phát một khoản khấu trừ và mức độ hoạt động của đèn LED được lưu trong một tín hiệu.
Trạng thái 3: Người chơi Một khấu trừ
Tín hiệu có số lượng đèn LED đang hoạt động xác định mức độ khỏe mạnh được khấu trừ. Điều này được thực hiện bằng cách có một thanh ghi dịch chuyển khác (retuctor1.vhd) thay vì tăng các đèn LED, hãy giảm chúng. Điều này giảm trên cạnh lên của một trong các mô-đun div đồng hồ mà chúng tôi đã mượn và sửa đổi (downcounterclock.vhd). Ngay khi một đèn LED bị tắt, một điểm máu sẽ bị trừ vào tổng số máu của người chơi hai. Nếu trong quá trình này, hai người chơi đạt 0 máu, chúng tôi dừng lại và ngay lập tức chuyển sang trạng thái “Trò chơi kết thúc”. Nếu không, khi vectơ LED đạt đến “0000000000000000”, chúng tôi chuyển sang lượt của hai người chơi.
Trạng thái 4: Lượt của người chơi thứ hai
Lượt của người chơi hai giống hệt như lượt của người chơi một, ngoại trừ thanh ghi dịch chuyển cho lượt đó (Ptwo.bhd) đi từ trái sang phải và công tắc nằm ở phía bên phải của bàn cờ. Một tín hiệu kích hoạt để hiển thị sức khỏe của Người chơi 1. Sau khi công tắc 2 hoạt động, công tắc này sẽ chuyển sang lượt trừ của Người chơi thứ hai.
Giai đoạn 5: Người chơi hai khấu trừ
Cũng giống như lượt của người chơi hai, khoản khấu trừ của người chơi hai hành động giống như lần trừ của người chơi một. Sự khác biệt chính là thanh ghi dịch chuyển điều khiển việc tắt của đèn LED đi theo hướng ngược lại, đây là một sửa đổi dễ dàng thực hiện khi bạn có khoản khấu trừ của người chơi hoạt động bình thường.
Giai đoạn 6: Trận đấu kết thúc Nếu tại bất kỳ thời điểm nào một trong hai người chơi không còn máu, trò chơi sẽ chuyển sang trạng thái này. Không có gì hiển thị ưa thích. Nếu nhấn BTN một, thì máu sẽ được đặt lại thành 99 và trạng thái sẽ quay trở lại menu, bắt đầu lại trò chơi một cách hiệu quả.
Hộp đen
Bước 4: Mô-đun
Downcounterclock (dựa trên mô-đun clk_div.vhd của Bryan Mealy):
Đây là đồng hồ xử lý thời gian của các bộ trừ. Hằng số có tên max_count cao gấp 3 lần hằng số max_count của barclock. Điều này sẽ làm cho các bộ trừ chậm hơn 3 lần so với tốc độ của thanh.
Barclock - (dựa trên mô-đun clk_div.vhd của Bryan Mealy): Đồng hồ này xử lý thời gian của đồng hồ đo điện, chúng tôi đã tăng nhanh để tăng thêm độ khó cho trò chơi. Thời gian này có thể được điều chỉnh theo ý muốn của bạn, tăng tốc độ bằng cách đặt max_count không đổi thành một số lớn hơn hoặc giảm nó bằng cách làm cho max_count một số nhỏ hơn. Sseg_dec - (Viết bởi Bryan Mealy): Mô-đun này lấy một số 8 bit làm đầu vào, nó sẽ giải mã, chuyển đổi số thành số thập phân tương đương và sau đó xuất ra màn hình bảy phân đoạn. Để tệp này hoạt động, bạn cần đảm bảo rằng các ràng buộc của bạn phù hợp với tệp của chúng tôi.
Pone: Đây là một thanh ghi dịch chuyển các bit sang trái, thêm một bit nóng để làm cho nó trông giống như công suất đo đang tăng lên. Khi tất cả các bit đều nóng, tất cả các bit được đặt lại về "0" và chu kỳ bắt đầu lại.
Ptwo: Đây là phiên bản lật của mô-đun P1.
Deductor1: Đây là sự kết hợp của một thanh ghi shift và một bộ trừ. Thanh ghi dịch chuyển theo hướng ngược lại với thanh ghi dịch chuyển của P1, cho biết một khoản khấu trừ. Điều này cũng trừ đi 1 từ máu của Người chơi 2 cho mỗi chu kỳ đồng hồ, do đó, với sự kết hợp của hai chức năng này, có vẻ như sức khỏe của đối phương giảm đi 1 cho mỗi điểm dẫn của thanh máu đi xuống.
Deductor2: Đây là phiên bản lật của mô-đun Deductor1.
PlayDecoder (mượn và sửa đổi một chút từ ekchen35649 133 có thể hướng dẫn của anh ấy):
Điều này được sử dụng trong trạng thái menu để hiển thị từ "PHÁT" trên bộ giải mã bảy đoạn.
Việc cần làm: hình ảnh, video
Đề xuất:
Tính điểm điện tử cho trò chơi ném túi đậu Trò chơi bóng chày: 8 bước (có hình ảnh)
Tính điểm điện tử cho trò chơi ném túi đậu Trò chơi bóng chày: Tài liệu hướng dẫn này sẽ giải thích cách tự động giữ điểm số bằng phương pháp điện tử cho trò chơi bóng chày theo chủ đề Túi đậu. Tôi sẽ không trình bày cách xây dựng chi tiết của trò chơi bằng gỗ, bạn có thể tìm thấy những kế hoạch đó trên trang web của Ana White tại: https: // www
Trò chơi Aruduino LED Nhấp nhanh Trò chơi hai người chơi: 8 bước
Aruduino LED Game Fast Click Two Player Game: Dự án này được lấy cảm hứng từ @HassonAlkeim. Nếu bạn sẵn sàng tìm hiểu sâu, đây là một liên kết bạn có thể kiểm tra https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Trò chơi này là một phiên bản cải tiến của Alkeim's. Nó là một
Bộ điều khiển trò chơi tự làm dựa trên Arduino - Bộ điều khiển trò chơi Arduino PS2 - Chơi Tekken với tự làm trò chơi Arduino: 7 bước
Bộ điều khiển trò chơi tự làm dựa trên Arduino | Bộ điều khiển trò chơi Arduino PS2 | Chơi Tekken với Bàn điều khiển Arduino tự làm: Xin chào các bạn, chơi game luôn thú vị nhưng chơi với Bộ điều khiển trò chơi tùy chỉnh tự làm của riêng bạn sẽ thú vị hơn
Trò chơi Arcade mini 2 người chơi từ một máy tính xách tay cũ và Ikea Chopping Boards.: 32 bước (có hình ảnh)
Trò chơi Arcade mini 2 người chơi từ một máy tính xách tay cũ và Ikea Chopping Boards: Tôi thích chơi game kiểu cổ điển. Tất cả những máy chơi game và máy chơi game cũ đó rất thú vị. Tôi thích máy chơi điện tử của riêng mình nhưng tôi chỉ đơn giản là không có không gian. Chơi với gamepad thông qua bảng điều khiển trên TV cảm thấy không ổn nên tôi cần tạo
Biến Máy tính Đồ thị TI thành Máy đo khoảng thời gian và tạo video tua nhanh thời gian: 7 bước (có hình ảnh)
Biến Máy tính Đồ thị TI thành Máy đo khoảng thời gian và tạo video tua nhanh thời gian: Tôi luôn muốn tạo video tua nhanh thời gian, nhưng tôi không có máy ảnh tích hợp tính năng đồng hồ đo khoảng cách. Thực tế, tôi không nghĩ nhiều lắm. máy ảnh đi kèm với một tính năng như vậy (đặc biệt không phải máy ảnh SLR). Vậy bạn muốn làm gì nếu bạn muốn