六子棋博弈系统设计与实现作者:周新林等来源:《软件导刊》第 03 期 摘要:六子棋作为计算机博弈比赛项目越来越受到重视
从棋局表达、估值函数设计、搜“索算法、走法生成器以及开局库几个方面介绍了六子棋博弈系统的设计与实现
该系统在 成”理杯 全国大学生计算机博弈大赛六子棋项目比赛中,获得了一等奖的好成绩
大量模拟实验证明,该算法含有一定的有效性和实用性
核心词:六子棋;估值函数设计;走法生成器;开局库 中图分类号:TP319 文献标记码:A 文章编号:1672-7800()003-0092-03 0 引言 人工智能是研究智能的理论、办法、技术及应用系统的科学,其最关心的是知识表达与搜索,也是计算机博弈要解决的问题
计算机博弈也称为机器博弈,最早来源于博弈论思想
现在计算机博弈研究重要针对人机对战的棋盘类游戏,因而人工智能有关技术在计算机博弈游戏中被广泛应用
六子棋由五子棋演变而来,由台湾新竹交通大学吴毅成专家提出,其规则简朴、游戏公平、玩法复杂,受到玩家欢迎,逐步得到推广
六子棋原则棋盘为 19×19,黑白双方轮流下棋,除了第一次由黑方先下一颗子外,其后各方每轮下两颗棋子,连成六子(或以上)者获胜,如图 1 所示
六子棋没有禁手,长连(连成六子以上)即算赢棋,若全部棋盘填满仍未分出胜负则算和棋
图 1 六子棋棋盘 本文重要从棋盘表达、走法生成器、估值函数设计、搜索算法实现以及开局库几个方面介绍六子棋博弈系统的设计与实现
1 棋盘表达 棋盘的表达普通有数组表达法和比特表达法,比特表达法又称为位棋盘
六子棋棋盘普通为 19×19,若用二维数组表达棋盘即为 Board[19][19]
采用位棋盘的作用就是统计棋盘上的某些布尔条件,根据布尔值放入对应的棋子
位棋盘如今广泛应用在六子棋中,因素是效率高、占用空间小
本文程序采用 64 位长度的变量,与数组表达法相比较,位棋盘