下棋顺序
由于在本篇文章中
Ai是后手位下棋(此次ai可以用作先手位 但效果会差)
所以我们把ai的函数放在了玩家后面
这样子一来
每当玩家下了一步之后
若下棋处有子的情况下
就会return掉作废
否则Ai就会接着下棋
故在玩家下完之后且无错
则轮到ai方法开始运行
其中this指的是被点击到的li
2.1 ai方法
在本篇文章中使用了权重
即计算每个格子的权重
然后将棋下在权重最大的格子
所以我们需要给每个格子计算它的权重
于是乎我在这里使用了for方法
用于遍历所有的li标签
并且往里面写入了一个add方法
用于计算权重
2.2 add方法
add方法需要三个参数
当前的格子(i)
棋子的颜色(k)
传入的分数(num)
在上面ai方法的for遍历中的变量i
代表了当前正在遍历的li标签
K的颜色有两种情况
1为玩家的棋
2为ai的棋
故我们需要调用两次
一次传入1 一次传入2
如果条件不符合则不会传入num权重
若符合add方法中的判断
则会往这个格子里面添加num权重
用作与后面的权重计算以及下棋
众所周知
有棋的地方不能下
所有add函数的第一条判断
就是判断当前格子是否有棋子
如果有则不做处理
若无的话则为其计算权重
这里使用a[i].value来判断是否有棋子
通过遍历li的value判断i的位置是否有子
如果结果不等于0(有子)
则这里有棋子 结束
否则无子开始计算