五子棋小游戏-tkinter版
目录
五子棋小游戏-tkinter版 1
一、实现内容 1
游戏规则 2
博弈树 2
极大极小搜索 6
井字游戏 10
打分函数 12
代码实现 24
二、工作量 27
基本原理 27
Alpha Beta 剪枝 29
触发剪枝的条件 29
参考资料 33
Zobrist 散列算法 33
基本过程 34
代码实现 34
参考资料 38
1. 维基百科 38
2. Zobrist缓存 38
3. Zobrist哈希 38
迭代加深 38
评分表 40
代码实现 40
三、结果 43
五、总结 58
其他说明 58
附录 58
1. 引言 58
2. 评分函数 58
3. 极大极小值搜索 58
4. alpha-beta剪枝 58
5. Zobrist散列 58
6. 启发式搜索 58
7. 迭代加深 58
参考资料 58
一、实现内容
图形界面
局域网联机
人机对战
悔棋
先后手
重新开始
导出/导入棋盘
游戏规则
假设俩个人轮流报数,可以报 1、2、3 这三个数,然后积分榜累加这俩个人报的数,最先加到 6 的人输
这个游戏存在先手优势,即谁最先报数,就有必胜的方案
博弈树
博弈树的树叶表示游戏的结局
下图中方块表示乙报完数后的局面(此时甲要开始报数了),圆圈表示甲报完数后的局面,由图可知甲先报数