五子棋是一款休闲益智类的游戏,老少皆宜。游戏的玩法很简单,即在棋盘的一条线上连成颜色相同的五子及获胜,可你知道在游戏的制作的内部,是怎么判定五子棋获胜的吗?
我们先来看一张图 ,该图是五子棋的棋盘,五子棋的棋盘是 x为(0,14),y为(0,14)既 x, y各为15行
以该图的中心棋子为例,我们知道要五子连珠,无非就是四种可能 ,如图所示红线,绿线,蓝线,黑线,连成5子
这就有了四种扫描棋子的方式,(1,0)红线方向 1是扫描一颗棋子的偏移量
(0,1)绿线方向
(1,1)蓝线方向
(1,-1)黑线方向
这些是扫描棋子的偏移量offset
在开始可以定义数组来存储棋子的位置//生成棋子的位置 int[] pos = new int[2];
int [,]grid = new int [15,15];//记录棋子的信息
int linkNum //记录同色棋子连在一起的数量
我们假定下黑子 grid[pos[0],pos[1]] =1;白子为grid[pos[0],pos[1]] =2;
假设从中间的棋子开始扫描,从红线这条线开始扫描可以分为左边和右边,右边是(1,0),左边则是(-1,0)
,那么AI(电脑)是怎么判定的呢?</