勝ち負けのアルゴリズムを判断するJavaGobang

2次元配列を使用して、最初にチェス盤を格納します。再生された白いチェスは1としてマークされ、再生された黒いチェスは2としてマークされ、未再生の動きはすべて0です。

このとき、まず横の勝ち負けを判断します。つまり、5つの1または5つの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を同時に変更することです

このように、4つのケースがあります:水平等しい、垂直等しい、左斜め等しい、右斜め等しい、各ケースは検索の2つの部分に分割する必要があります。

次に、より簡単な方法を使用して勝ち負けを判断し、3次元配列を定義できます。パラメーターは、水平、垂直、および斜めに変更する必要があります。

次に、トリプルループを使用してこれらの変更を設定し、水平方向と垂直方向の傾斜の判断を順番に実現します。

 

 

 

 

 



おすすめ

転載: blog.csdn.net/dream_18/article/details/51857420