wfGo 是笔者大学毕设作品这几天有時间把它整理一下。该项目已在github开源有需要的小伙伴可以看第一篇博客的末尾获取git地址:
本文介绍了 wfGo的 AI对弈模式 。
使用VS2017+打开项目即可
艏先进入到client主界面,并点击 【AI对弈模式】 按钮 后进入下面界面。 依次点击菜单栏的 绿色开始按钮选择执黑,难度选择3最后点击 开始AI對局 按钮。
此时会弹窗显示 read in weight ok , 这个弹窗表明ANN的节点参数文件被读入在高难度AI对弈时,ANN算法会使用读入的weight文件数据来构造神经网络并进行計算。读入的文件位于exe文件同目录下weight.txt . 该文件使用AI训练模式来生成。关于AI训练模式将在下一篇博客进行介绍。
开始AI对局后点击棋盘落孓,即可以与AI进行对局
菜单栏的按钮,与单人打谱模式下对应按钮的功能一致不了解的小伙伴可以查看文章开始时给出的链接地址。
目前AI对弈的神经网络部分不是太完善存在一定问题。 代码仅供参考
关于AI对弈的难度与对应的算法:
使用随机与概率来解决问题的一种方法。 比如下图求解不规则图形的面积时,可以通过随机掷点用落在图形内的概率来计算不规则图形的面积。
由 蒙特卡洛方法衍生出來的 蒙特卡洛树搜索 方法 在围棋中的应用 大概如下:
蒙特卡洛树搜索 图解:
若蒙特卡洛树的宽度为w深度为d,则有下面的粗略计算:
本项目封装了AIPlayer 可以轻易的扩展出 AI vs. AI 的模式,有兴趣的小伙伴可以尝试