您的位置:首页 > 编程语言 > Java开发

java五子棋判断输赢算法

2016-07-08 00:41 1316 查看
用一个二维数组先将棋盘存储,已下的白棋标为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同时改变

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

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

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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息