完整代码可以在 我的AI学习笔记 - github 中获取
游戏规则
棋局开始时黑棋位于 E4 和 D5 ,白棋位于 D4 和 E5,如图所示。
黑方先行,双方交替下棋。
一步合法的棋步包括:
在一个空格处落下一个棋子,并且翻转对手一个或多个棋子;
新落下的棋子必须落在可夹住对方棋子的位置上,对方被夹住的所有棋子都要翻转过来,
可以是横着夹,竖着夹,或是斜着夹。夹住的位置上必须全部是对手的棋子,不能有空格;
一步棋可以在数个(横向,纵向,对角线)方向上翻棋,任何被夹住的棋子都必须被翻转过来,棋手无权选择不去翻某个棋子。
如果一方没有合法棋步,也就是说不管他下到哪里,都不能至少翻转对手的一个棋子,那他这一轮只能弃权,而由他的对手继续落子直到他有合法棋步可下。
如果一方至少有一步合法棋步可下,他就必须落子,不得弃权。
棋局持续下去,直到棋盘填满或者双方都无合法棋步可下。
如果某一方落子时间超过 1 分钟 或者 连续落子 3 次不合法,则判该方失败。
使用Alpha-Beta 剪枝搜索实现
class AIPlayer:
"""
AI 玩家
"""
weight = [
[70, -20, 20, 20, 20, 20, -15, 70],
[-20,-30,5,5,5,5,-30,-15],
[20,5,1,1,1,1,5,20],
[20,5,1,1,1,1,5,20],