Tôi đã viết một trò chơi rắn trong Java. Những gì tôi cũng muốn làm là tạo ra một bản demo cho điều đó (vì vậy con rắn sẽ tự chơi). Tôi đã viết một bản demo đơn giản, nhưng con rắn chết khá nhanh. Vì vậy, có bất kỳ thuật toán hoặc một cái gì đó cho rằng loại vấn đề? Tôi tin rằng nó là một chút tương tự như vấn đề trò chơi cờ vua? Tôi muốn con rắn đó sẽ còn sống càng lâu càng tốt. Cảm ơn bạn.Viết bản demo cho trò chơi rắn
Trả lời
Số được bảo trợ bởi Google AI Challenge chạy trò chơi "Tron" vào năm 2010. Bạn có thể nhận được một số ý tưởng hay từ việc tìm kiếm giải pháp cho thử thách đó.
Nếu bạn chỉ muốn một chiến lược rất đơn giản mà làm cho một bản demo hợp lý thì bạn có thể thử một cái gì đó như sau:
- Không bao giờ làm một động thái làm cho bạn sụp đổ, trừ khi bạn không có lựa chọn nào khác
- Nếu động thái tiếp theo của bạn buộc bạn phải lựa chọn giữa hai hoặc nhiều khoảng trống (không được kết nối) khác nhau, hãy luôn chuyển sang phần lớn hơn của hai không gian. Điều này sẽ ngăn chặn con rắn của bạn bị mắc kẹt quá dễ dàng.
- Nếu bạn đang di chuyển dọc theo một bức tường, hãy tiếp tục di chuyển dọc theo bức tường 98% thời gian, theo sau nó sang trái hoặc phải khi cần. Điều này sẽ giúp con rắn của bạn trông hợp lý thông minh, và cũng bảo tồn không gian trong sân chơi.
- Nếu không, hãy di chuyển về phía trước 90% thời gian, rẽ trái và phải ngẫu nhiên 5% thời gian mỗi lần (điều này sẽ làm cho bản demo của bạn bớt nhàm chán).
Ngoài ra, tôi không nghĩ rằng cách tiếp cận AI kiểu cờ vua (với cây tìm kiếm di chuyển) sẽ hoạt động rất tốt. Bạn sẽ không thể dễ dàng tìm kiếm đủ số lần di chuyển trước.
Nếu không thực hiện công việc cho bạn, tôi có thể cho bạn biết cách tốt nhất để bắt đầu tiếp cận vấn đề như thế này là suy nghĩ về những gì con rắn nên làm để tồn tại càng lâu càng tốt. 'Quy tắc ngón tay cái' nên con rắn làm theo để sống sót. Đối với người mới bắt đầu, con rắn có lẽ nên quay trước khi nó chạm vào một chướng ngại vật, và hướng tới nơi nó sẽ không được đóng hộp. Vì vậy, bạn có thể lập trình con rắn để biến khi nó nằm trong một không gian của nó đuôi (hoặc tường) và hướng tới một hướng với khoảng cách lớn nhất giữa nó và các vật cản khác. Ngoài ra, con rắn tôi tin là một trò chơi mà máy tính có thể chơi hoàn hảo và trong bản demo của bạn, bạn có thể không muốn điều đó, vì vậy bạn luôn có thể ném một số ngẫu nhiên chỉ để gia vị mọi thứ nếu mọi thứ trở nên quá y.
Đây không phải là câu trả lời bạn đang tìm kiếm, nhưng tôi đăng nó bởi vì tôi thực sự muốn nhìn thấy bạn khám phá thuật toán này tiếp tục, sửa đổi nó cho đến khi bạn thấy mình với một AI khá hợp lý:
Thuật toán đơn giản nhất để giải quyết vấn đề này là "đi vòng quanh cạnh, và sau đó hạ xuống" tiếp cận. Về cơ bản, bạn bắt đầu với một con rắn, lấy nó để nó di chuyển về phía tây, sau đó ôm bức tường phía tây, rồi trần nhà. Sau đó, bạn đi qua tất cả các hình vuông có thể như một slinky cho đến khi bạn nhận được để phía dưới, đi về phía tây, và bắt đầu lại từ đầu.
Nếu bạn thử, bạn có thể biến điều này thành AI thực sự tuyệt vời: D
- 1. Viết trò chơi cho Nintendo Wii
- 2. Viết thông số chức năng cho các trò chơi
- 3. C++ cho trò chơi
- 4. Liên kết cho các thuật toán trò chơi đơn giản
- 5. Chiến lược thiết kế và kiến trúc trò chơi cho trò chơi nhiều người chơi
- 6. Coroutines cho thiết kế trò chơi?
- 7. Cách tạo bản đồ trò chơi?
- 8. Cách tiếp cận tốt nhất cho trò chơi 2D giống như trò chơi zelda 2D
- 9. Viết Công cụ Trò chơi 3D của riêng tôi
- 10. Phân phối trò chơi PC được viết bằng XNA
- 11. Tìm kiếm trò chơi Nibbles được viết lại trong C#
- 12. Gameloop cho j2me "theo lượt" trò chơi
- 13. Canvas vs SVG cho các trò chơi đơn giản
- 14. Viết một trò chơi đơn giản "Rock Paper Scissors" bot
- 15. Tìm đường dẫn cho trò chơi
- 16. Định dạng tệp 3D cho trò chơi
- 17. Bricket cho trò chơi canvas HTML5
- 18. android opengl trò chơi
- 19. Kiến trúc máy chủ cho trò chơi nhiều người chơi?
- 20. AI cho một trò chơi chiến thuật giống như trò chơi tưởng tượng cuối cùng
- 21. Tạo trò chơi blackjack nhiều người chơi
- 22. Khuôn khổ trò chơi Javascript hoặc thư viện cho các trò chơi trên bàn?
- 23. Cách tốt nhất để xây dựng bản đồ trò chơi
- 24. Hiệu suất trò chơi XNA
- 25. Trò chơi Assembler Assembler Lisp
- 26. Oolong, SIO2 hoặc công cụ Trò chơi thương mại dành cho người mới chơi trò chơi iPhone 3D?
- 27. Phân công mảng Rắn
- 28. Lập trình trò chơi nhiều người chơi
- 29. wxPython hoặc pygame cho một trò chơi bài giản dị?
- 30. Trang web Django, trò chơi python 2d cơ bản
Giải pháp dễ dàng = Làm chậm con rắn! – Mikhail