智能五子棋游戏
设计要求
使用Python语言,结合博弈树启发式搜索和alpha-beta剪枝技术,开发一个人机五子棋博弈游戏
具体要点
- 设计一个15行15列棋盘,要求自行给出估价函数,按极大极小搜索方法,并采用α-β剪枝技术;
- 采用人机对弈方式,对弈双方设置不同颜色的棋子,一方走完一步后,等待对方走步,对弈过程的每个棋局都在屏幕上显示出来;
- 当某一方在横、竖或斜方向上先有5个棋子连成一线时,该方为赢。
PS
能力有限😢,游戏以玩家执黑先下,且忽略禁手为前提进行设计。
更新记录
- Version 0.5 :完成初版核心代码,游戏可以正常运行,满足结束游戏的判定*(即横、竖或斜方向上先有5个棋子连成一线)*时,游戏正常结束,但AI思考时间过长,平均时长80s。
- Version 0.5 _improved:
- 优化评估函数,缩小搜索范围,使得AI更加智能,思考时间更短,平均时长1s;
- 优化游戏结束判断,使玩家和AI胜利输出不同文字;
- AI难度下降,落子效果不佳。
- Version 1.0:
- 增加最大搜索深度,AI智能程度显著提升,对弈难度提升;
- AI思考时间过长,为确保胜利落子速度慢;
- Version 1.0_beta:
- 修改权重,对威胁更大的棋子形式赋予更大权重;
- 修改搜索深度,减少思考时间;
- 增加连续棋子情况的判断,从而判断棋形,使AI具有更优的落子选择;
- 修改评价函数,适应前面的更改;
- 从运行结果来看效果不佳,智能程度不如v1.0版本,落子选择不佳。
- Version 1.5:
- 基于v1.0版本,优化落子位置判断,避免用户选择落子在已有棋子的位置;
- 优化获取当前棋局合法移动位置的函数,缩短AI思考时间,平均时长40s,基本保持AI智能程度不变,对弈难度不降低。
- Version 2.0:史诗级重大更新
- 增加GUI界面,用户选择落子位置方式改为鼠标点击,对弈过程更直观易读;
- 保持原有AI智能程度,难度适中,测试中暂未出现无厘头的落子情况。