你的这个问题不是几句话或者10k以内的程序可以说清楚的,建议还是到网上搜索一下相关的文章。
http://www.smiling.com.cn 有几个棋类算法小组(电脑围棋、电脑五子棋、电脑象棋),其中有的
文章非常好,值得研究。
电脑象棋AI的编写难度仅次于几乎根本无法计算的围棋AI。棋类游戏AI的基本思路无非是根据盘面
情况计算己方所有可能的走步——有N种可能的情况,然后在每种情况中再模拟对手的可能走步(这就有
差不多N*N种情况了),如此递归分析。每走一步,都要分析这一步对双方有什么意义(比如象棋中的
吃车、将军等等),根据分析的结果,选择最有利的走法。
递归分析的算法并不复杂,难的在于如何减小“组合爆炸”——如果双方的可能走步有40种,不加删减
的计算4步(双方各4步,共8次行棋)就要大约40^(4*2)(六万亿种局面)的计算量。现在流行的好像是
α-β剪枝算法,你可以搜索一下这方面的文章。
Good Luck!