2009-01-30 34 views

Trả lời

98

Từ tài liệu lưu trữ của tôi:

+4

Wiki lập trình cờ vua khá thú vị. –

+0

Liên kết thứ hai bây giờ là: http://archive.gamedev.net/reference/programming/features/chess1/ – Grandpa

+0

Cảm ơn, Grandpa - liên kết đã được sửa. – RoadWarrior

7

Tổng quan về nhiều thuật toán hữu ích trong cờ - http://www.frayn.net/beowulf/theory.html - phải là một điểm khởi đầu tốt để hiểu được thước đo của sự cố và một số cách để đơn giản hóa công việc tính toán.

-Adam

1

Đây là cơ bản trong lĩnh vực Artificial Intelligence (AI).

Cách phổ biến nhất để tạo ra một máy tính "suy nghĩ" trong trò chơi cờ vua đang sử dụng mini-max method nơi máy tính "nghĩ" bằng cách phân tích các kết quả từ thực hiện các bước đi khác nhau trước thời hạn từ trạng thái hiện tại.

Điểm "tốt" của các kết quả từ các bước di chuyển khác nhau có thể được xác định từ nhiều tiêu chí như số điểm, số lượng kẻ thù còn lại, trạng thái chiến thắng, chẳng hạn. Ví dụ, nếu bạn di chuyển người chơi sang bên phải và bạn giành chiến thắng trong trò chơi, đó là một trạng thái rất tốt. Nhưng nếu bạn di chuyển nó sang bên trái bạn sẽ không nhận được gì. Nó là hợp lý để di chuyển sang phải. Hàm này xác định "tốt" thường được gọi là Chức năng Heuristic.

Quá trình này được thực hiện đệ quy cho nhiều lượt. Số lượt rẽ càng lớn, bạn càng cần nhiều thời gian hơn. Và số lần lượt càng lớn, phần mềm của bạn càng thông minh hơn. Suy nghĩ trước chỉ trong một lượt chỉ có thể dẫn đến việc lựa chọn tham lam. Phần mềm cờ thông minh có chức năng heuristic tuyệt vời và suy nghĩ trước nhiều lần.

ps. Có một số chi tiết của thuật toán mini-max tôi đã không giải thích ở đây nhưng điều này nên bao gồm các ý tưởng cơ bản.

3

Claude Shannon của 1949 paper (cảnh báo: PDF) về đề tài này là một nơi khởi đầu tốt

2

tốt nhất chương trình hướng dẫn chơi cờ vua cho người mới bắt đầu là tại GameDev. Nó rất dễ hiểu trong khi nó đi rất nhiều vào chi tiết.

26

Khi tạo công cụ cờ vua, tôi đã dành hàng tháng để thu thập tài nguyên tốt mô tả một số khía cạnh khó khăn hơn trong việc tạo trò chơi cờ vua. Dưới đây là danh sách những người tôi thấy hữu ích nhất:

Cờ Lập trình bởi François Dominic Laramee

Đây là bài viết mà đã cho tôi vào cờ vua máy tính, Đó là một cái nhìn tổng quan về cách thức các máy tính chơi cờ. Nó rất dễ đọc và nó sẽ giới thiệu bạn với tất cả các thuật ngữ và từ khóa.

http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/chess-programming-part-i-getting-started-r1014

Computer cờ wiki, điều này đã thực sự mở rộng trong vài tháng vừa qua. Nó là một tài nguyên tuyệt vời cho tài liệu tham khảo.

http://chessprogramming.wikispaces.com/

Louis Kessler của máy tính Cờ Liên kết

Khi bạn đi qua các nguồn lực trên phần còn lại có thể được tìm thấy tại trang liên kết sau đây.

http://www.lkessler.com/cclinks.shtml

Cuối cùng nhưng không kém phần quan tôi viết một Computer Chess Blog đó sẽ đưa bạn qua tất cả các bước của việc viết một engine cờ vua trong C# từ đầu, nó bao gồm một cờ vua máy tính liên kết phần và một trò chơi cờ vua khởi động bộ dụng cụ.

http://www.chessbin.com

Adam Berent

+0

Tôi chắc chắn phải upvote bạn về điều này! – lkessler

1

Tôi đã tham gia các giải đấu cùng Paul Wicks (ở trên), tôi cũng muốn viết một engine cờ vua cho việc học vì lợi ích riêng của mình, chỉ có hạn chế là công việc của tôi (mà là để làm việc trên các dịch vụ web nhàm chán và các công cụ ..) nhưng giá trị của nó là nỗi đau.

Tôi quyết định xây dựng nó bằng cách sử dụng cách tiếp cận từng lớp. Tôi gần như hoàn thành phần đa người chơi, tức là (HUMAN vs HUMAN).

Khi tôi đã hoàn tất việc này, tôi rất thích kết hợp lớp AI để hỗ trợ chương trình phát (COMPUTER vs HUMAN).Đây là một phần mà tôi lo lắng nhất, tôi đã tìm thấy những lời khuyên giúp đỡ rất tốt đẹp ở đây trong chủ đề này, một lời cảm ơn lớn đến tất cả các bạn.

Hiện tại ngôn ngữ mà tôi thạo tiếng là Java, trong trường hợp có hiệu suất đạt được thì tôi có thể chuyển nó sang C++.

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