你需要为给定的状态生成所有有效的移动。然后对于每种可能性,你应该检查对手的可能移动。如果其中至少有一个会使你的位置变差,那么你就不应该跟随那个分支。为了做到这一点,你需要一些评分来确定你的表现如何。象棋已经有一些规则来确定哪个单位值多少分。只需要向前看几步就可以了。打败程序仍然是具有挑战性的。
当然,这远非完美:真正的玩家可以牺牲一些单位来实现长期目标。这个算法不会这样做。
我们在算法和数据结构(大二计算机科学)课程中完成了曼卡拉AI和国际象棋AI。
然而,教授提供了大量的国际象棋引擎代码,我们需要做的是改进决策函数、实现将军等其他功能。
http://www.gnu.org/software/xboard/
XBoard的接口
http://www.tim-mann.org/xboard/engine-intf.html
我不确定这是否能满足您的所有需求,我认为我们的国际象棋引擎必须创建自己的棋盘表示并自行制定移动,但至少它可以为您提供一个知道规则并具有图形用户界面的棋盘。