java五子棋判断输赢算法

来源:互联网 发布:伦敦金投资软件 编辑:程序博客网 时间:2024/04/30 22:53

用一个二维数组先将棋盘存储,已下的白棋标为1,已下的黑棋标为2,未下的棋全部为0。

此时,先来判断横向输赢,即当横向有五个1或五个2连在一起即判断为赢

先向右寻找

//棋子数从一开始

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;
  }
   
  }

同理,竖向的就是将y1改变,x1不变


斜向就是将x1,y1同时改变

这样一共分为四种情况:横向相等,竖向相等,左斜相等,右斜相等,每种情况需要分为两个部分的查找




那么,可以用一种更为简单的方法来判断输赢,定义一个三维数组,参数分别为横向需改变的,竖向需改变的,以及斜向需改变的

然后用一个三重循环来对这些改变进行设置,依次实现对横竖斜的判断!







0 0
原创粉丝点击