8

第6-4课:奥赛罗游戏的棋盘模型和估值算法

 3 years ago
source link: https://blog.csdn.net/orbit/article/details/108729343
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.

在之前的课程中,我一直提到棋类游戏的棋盘模型用一维数组最好,井字棋游戏里用了一次,这一课再用一次。这一次要说的可是大名鼎鼎的“Warren Smith 棋盘模型”,很多棋类游戏都使用的是这个棋盘模型,或者是其衍生出来的改进模型。奥赛罗棋的估值算法有很多种,这一课我们也介绍一种简单的估值算法,为了提高搜索算法的效率,需多棋类游戏都使用空位链表技术,避免在整个棋盘上盲目地搜索,这一课将介绍如何组织空位链表的相关算法。

奥赛罗棋(Othello)

奥赛罗棋(Othello)又称黑白棋、翻转棋(Reversi),在西方和日本非常流行。游戏双方分别执黑白两种颜色的棋子,在 8 × 8 的棋盘上轮流落子,相互翻转对方的棋子,只要落子和棋盘上任一枚己方的棋子在横、竖和斜方向上能夹住对方棋子,就能将对方的这些棋子转变为己方棋子。如果一方在任一位置落子都不能夹住对手棋子,就要让一手,也就是让对手继续落子。如果双方皆不能落子,则游戏结束,游戏结束时棋盘上棋子多的一方取胜。

黑白棋的棋盘是一个 8 × 8 的格子,为了便于识别棋子的位置,用数字 1 ~ 8 标识棋盘的行,用字母 A ~ H 标识棋盘的列,如图(1)所示。为了抵消先手优势,通常开局就会在棋盘中间预置四枚棋子(黑白各两枚)。

83acf220-0748-11e9-846c-df2cdd71336c

图(1)奥赛罗棋示意图


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK