5

第6-5课:五子棋游戏的相关算法

 3 years ago
source link: https://blog.csdn.net/orbit/article/details/108729342
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

第6-5课:五子棋游戏的相关算法

五子棋的复杂程度要超过之前介绍的奥赛罗棋,它不仅规则多,概念也多,比如“冲二”、“冲三”、“活二”、“三三禁手”、“四四禁手”等,对这些模型的判断其算法非常重要,如果不能正确判断这些型,估值函数就无法实现。这一课我们将介绍一些五子棋游戏的算法,当然,也包括棋盘的数据模型设计。

五子棋(Five In a Row,FIR)流行非常广泛,在不同的国家有不同的名称,标准的五子棋棋盘是 15 × 15 大小,用数字 1 ~ 15 标识棋盘的行,用字母 A ~ O 标识棋盘的列,棋子和围棋一样有黑白两种颜色,一般可以用围棋的棋盘玩五子棋。下棋的双方轮流在 15 × 15 条线的交叉点上落子,先在横、竖和斜线方向上形成五子连线的一方获胜。

上一课介绍奥赛罗棋游戏的棋盘数据模型时,使用了 Warren Smith 棋盘状态模型,现在五子棋游戏也继续使用这个模型,五子棋游戏的棋盘和奥赛罗棋游戏的棋盘有很大的差异,需要对 Warren Smith 的模型做适当的修改。标准的五子棋游戏是 15 × 15 的棋盘,但是我们演示 AI 算法的程序使用 9 × 9 的小棋盘,一方面是为了便于展示算法的实现效果,另一方面是加快计算机“象棋”的速度,毕竟棋盘减小了,需要的计算量会呈几何级数减少。9 × 9 的小棋盘用 Warren Smith 模型表示,需要一个长度为 111 的一维数组表示黑白棋的棋盘与棋子状态,其中 81 个是棋盘上的位置,30 个是标志位或哨兵位。111 个数组元素中前 10 个和后 11 个是标志位,中间每间隔 9 个 x 位置插入一个标志位 d,这个模型各个位置的逻辑结构如下面的阵列所示:<


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK