![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
五子棋AI实现
ZTao-z
这个作者很懒,什么都没留下…
展开
-
五子棋AI算法简易实现(三)
电脑AI篇(1)评估函数对当前局面的评估函数在实现五子棋的AI算法的过程中是十分重要的,它能够帮助电脑很好的进行对当前棋盘中双方优势的评估,以便于电脑采取更优的下棋策略,是后面的minimax算法和AlphaBeta剪枝算法中作为一个节点权值的重要评估标准。当前版本下,我将评估函数分成了五个部分:评估标准、棋盘的切分、评估函数针对各种棋型的定义、对棋盘上每一个位置的点估值、统计...原创 2018-03-06 23:20:24 · 4159 阅读 · 1 评论 -
五子棋AI算法简易实现(四)
电脑AI篇(2)生成落子位置函数这个部分我把它分成了两个函数: 1. 找出双方所有可能下子的位置(generateAllNextPossibleMove函数) 2. 在这些位置中进行挑选,选出能够产生更大优势的下子位置,减少博弈树搜索节点的次数(pointsFilter函数)2.1 找出双方所有可能下子的位置这个函数用于找出相邻两格以内可以下棋的位置 ...原创 2018-03-07 13:05:28 · 1035 阅读 · 0 评论 -
五子棋AI算法简易实现(五)
电脑AI篇(2)生成落子位置的函数这个部分我把它分成了两个函数: 1. 找出双方所有可能下子的位置(generateAllNextPossibleMove函数) 2. 在这些位置中进行挑选,选出能够产生更大优势的下子位置,减少博弈树搜索节点的次数(pointsFilter函数)2.2 落子位置的筛选 这一部分主要参考了 http://blog.csdn....原创 2018-03-07 14:12:10 · 2470 阅读 · 0 评论 -
五子棋AI算法简易实现(六)
电脑AI篇(3)Minimax算法(极小极大值搜索算法)这是五子棋AI进行下子位置判断的基本方法,是整个AI最核心的算法。 A minimax algorithm is a recursive algorithm for choosing the next move in an n-player game, usually a two-player game. A valu...原创 2018-03-07 22:38:58 · 5757 阅读 · 0 评论 -
五子棋AI算法简易实现(七)
电脑AI篇(4)AlphaBeta剪枝算法AlphaBeta剪枝算法的根据说白了其实就是棋手不会选择不利于自己的走法,当一个节点的估值明显不利于自己的时候,就会选择丢弃这个节点。该算法保持两个值,alpha和beta,它们分别表示max层的玩家可以确保的最小分数和min层的玩家可以得到的最大分数。最初,alpha是负无穷,而beta是正无穷,即两个棋手都以最差的分数开始。每当m...原创 2018-03-08 13:43:49 · 1287 阅读 · 0 评论 -
五子棋AI算法简易实现(一)
基础篇(1)胜负判定 五子棋的胜负判定的条件是其中一方下棋以后,横线、竖线、右上斜线或者右下斜线任一方向出现五子相连,即可判定获胜。此处用递归方法即可实现。var is_win = false;var ModuleWinnerCheck = { checkWinner: function(color, num) { var col = n...原创 2018-03-05 22:33:33 · 7318 阅读 · 0 评论 -
五子棋AI算法简易实现(二)
基础篇(2)用户交互 这一部分主要是实现交互功能,实现人和AI的对弈 这个应用是单网页的应用,因此只要使用浏览器打开这个网页即可HTML部分(CSS部分省略,有兴趣可以到我的GitHub上查看):<!DOCTYPE html><html> <head> <meta charset="ut...原创 2018-03-06 15:30:24 · 969 阅读 · 0 评论