


通过g.setColor(Color.BLACK);//画笔颜色设置成黑色,g.drawOval(); g.fillOval()来完成棋子的绘制。
先假定假定坐标,可以看一下是否在棋盘上绘制出了棋子。
3 玩家点击落子
mouseClicked(),获取鼠标点击坐标,判断是否合理,然后将chessFlag[][]数组的相应位置进行记录。然后重绘该组件
其中computerDo()是电脑落子,会根据算法来选择位置。
4 电脑落子算法
实现思路:设置棋盘上每个空点的权重,将权重最大的点作为电脑的落子位置。
记录所有的获胜情况,例如19*19时有1020种获胜方式,遍历棋盘,根据下棋情况,初始化所有的获胜情况,将不能再获胜的情况标记,一个空点上,有一种获胜方式加一分,如果这种获胜方式的五个位置上已经有了两子,三子,甚至四子,可以给五个位置中剩余的空点设置更高的权重。
这里加多少分是自己设置的,并不一定。
看到这里也发现如果连珠数Num==5就胜利了,第五步也很容易就解决了。至于searchKeyNum()就是查找一个数组中某一key的个数,addScore()是对某一点进行权重设置
运行效果: