用一个二维数组先将棋盘存储,已下的白棋标为1,已下的黑棋标为2,未下的棋全部为0。
此时,先来判断横向输赢,即当横向有五个1或五个2连在一起即判断为赢。
同理,竖向的就是将y1改变,x1不变。
先向右寻找
//棋子数从一开始
int count=1;
while(true)
{
x1= x1+1;
int value = chess[x1][y1];
//如果相同,则继续向后对比
if(value == chess[x][y];)
{
count++;
}
else
{
break;
}
x1 =x;
y1 = y;
然后向右边寻找
while(true)
{
x1 = x1-1;
// xiangzuohuoqu
int value =chess[x1][y1];
//颜色不一致
if(value == chess[x][y])
{
count++;
}
else
{
break;
}
}
//如果数目达到5或者大于五,就判定为赢
if(count >= 5)
{
return true;
}
}
斜向就是将x1,y1同时改变
这样一共分为四种情况:横向相等,竖向相等,左斜相等,右斜相等,每种情况需要分为两个部分的查找。
那么,可以用一种更为简单的方法来判断输赢,定义一个三维数组,参数分别为横向需改变的,竖向需改变的,以及斜向需改变的。
然后用一个三重循环来对这些改变进行设置,依次实现对横竖斜的判断!