基于人类经验的五子棋人机–原理及引导(使棋盘数据化)
现在,需要来实现一个五子棋人机,首先该干什么谁也不知道,似乎在不用决策树等类似这样的算法实现无从下手,不如换个思路,把人的经验写成代码(如看见自己要成5子了),这样是可以,但那肯定是基于什么东西来的,而且计算机本身只对数据有反应,所以还要想办法把这些转换为数据,随后,还需要使这些数据有所联系,再添加一些规则之类的。
所以第一步要使棋盘上的状态数据化
基于纳升均衡
(文章不介绍纳升均衡的全部,只拿些对于接下来的代码实现有帮助的)
表格画得不好,不过现在看下说明:
有选手ABCDE,他们只能在各自所在的竖轴上选择一个地方,格子里的数值越大,这个格子就越好,每个选手只能选择一个格子。
这很简单,比如A可以选择9;C可以选择8;而对于B,它有2个选择。显然,我们只需要去可选的格子中去找最大数值的格子好了,如果多个选择,就随便选一个。按照这个规则,而棋盘的的样子,它也是像这样格子式的,如果能够使棋盘上每个格子都有属于自己的数字,那么只需要找出最大的那一个,也就是最优点。
棋盘上每个格子都有数值,可以用int类型来做,用数组或容器来保存它们。
对于棋盘上格子的状态,有