2011-12-27 34 views
8

Xin chào, tôi đã chơi trò chơi này "Ghép hình con mèo" http://www.gamedesign.jp/flash/chatnoir/chatnoir.htmlThuật toán "Vòng tròn con mèo" của trò chơi cổ điển?

Tôi đã tự hỏi thuật toán nào làm cho con mèo "thông minh"? Làm thế nào để con mèo quyết định hướng đi?

Một giải pháp xuất hiện trong tâm trí của tôi là tìm kiếm đầu tiên trên bề rộng và đi theo hướng có lối ra ngắn nhất.

Tôi chỉ tò mò ở đây. :-)

+0

Tôi nghĩ rằng nó chỉ sử dụng tìm kiếm hơi thở đầu tiên không có gì khác –

Trả lời

2

Tôi tin rằng nó chỉ sử dụng Djikstra's algorithm (hoặc tương đương) là một thuật toán ngắn nhất không có mã vạch ngắn nhất có thể giải quyết được vấn đề cụ thể này.

Mèo dễ bị bẫy bằng cách chơi một vài điểm phía trước - "trí thông minh" dễ bị đánh lừa :) Con mèo dường như không tính đến các ô không bị chặn phía trước nó trong đường dẫn tiềm năng , điều đó khiến tôi tin rằng đó chỉ là một phép tính khoảng cách đơn giản.

Khi con mèo bị mắc kẹt, dường như chọn một hướng ngẫu nhiên, điều này cũng có thể xảy ra trên cà vạt.

Mèo có thể có thể được thực hiện "thông minh hơn" bằng cách thêm trọng số vào các ô nhất định (chẳng hạn như các ô liền kề với ô chặn).

Mã hóa vui vẻ.

+5

Trước hết, Dijkstra không phải là một thuật toán đường dẫn ngắn nhất không có trọng số, nó nói như vậy ngay trong liên kết của bạn. Thứ hai, bạn không cần Dijkstra hoặc A *, bởi vì vấn đề này làm giảm vấn đề đồ thị không cân đối. Không thực sự có liên quan, nhưng thú vị: miễn là con mèo có nhiều nhất 4 di chuyển ra khỏi lối ra, bạn sẽ không bao giờ có thể bẫy nó nếu bạn chơi đúng. Bất cứ điều gì nhiều hơn (đó là trường hợp của các trò chơi liên kết) và bạn luôn có thể giành chiến thắng, không có vấn đề gì con mèo. Đây là lý do tại sao bạn nghĩ rằng bạn đánh bại "trí thông minh" - trên thực tế, nó đã lừa bạn vài lần đầu tiên, vì bạn luôn có thể thắng. – IVlad

Các vấn đề liên quan