一、课程设计目的
- 掌握Alpha_Beta搜索法
- 用程序设计语言编制博弈游戏
二、软件与编程语言
软件:Pychram
语言:Python3.6
三、程序运行说明
电脑需安装python3.6,将Ai_Gobang.py,Ai_Gobang_Main.py和graphics.py(需自行下载源码)放置在同一项目包导入Pycharm编译软件运行控制台程序
五子棋游戏基本规则:
- 黑先、白后,从天元开始相互顺序落子
- 白棋第一手应在天元为界自己一侧布子,之后双方可任意行子。
- 最先在棋盘横向、竖向、斜向形成连续的相同色五个棋子的一方为胜。
- 黑棋禁手判负、白棋无禁手。黑棋禁手包括“三、三” “四、四” “长连”。黑方只能“四、三”胜。
- 如分不出胜负,则定为平局。
- 对局中中途退场均判为负。
- 五连与禁手同时形成,先五为胜。
四、程序设计方案
1.根据最常见的基本棋形设计评估分数
最常见的基本棋型大体有以下几种:连五,活四,冲四,活三,眠三,活二,眠二。
① 连五:顾名思义,五颗同色棋子连在一起,不需要多讲。
② 活四:有两个连五点(即有两个点可以形成五),图中白点即为连五点。
稍微思考一下就能发现活四出现的时候,如果对方单纯过来防守的话,是已经无法阻止自己连五了。
③ 冲四:有一个连五点,如下面三图,均为冲四棋型。图中白点为连五点。
相对比活四来说,冲四的威胁性就小了很多,因为这个时候,对方只要跟着防守在那个唯一的连五点上,冲四就没法形成连五。
④活三:可以形成活四的三,如下图,代表两种最基本的活三棋型。图中白点为活四点。
活三棋型是我们进攻中最常见的一种,因为活三之后,如果对方不以理会,将可以下一手将活三变成活四,而我们知道活四是已经无法单纯防守住了。所以,当我们面对活三的时候,需要非常谨慎对待。在自己没有更好的进攻手段的情况下,需要对其进行防守,以防止其形成可怕的活四棋型。
⑤眠三:只能够形成冲四的三,如下各图,分别代表最基础的六种眠三形状。图中白点代表冲四点。眠三的棋型与活三的棋型相比,危险系数下降不少,因为眠三棋型即使不去防守,下一手它也只能形成冲四,而对于单纯的冲四棋型,我们知道,是可以防守住的。
2.设计五子棋评估分数和评估函数