-2
int j = 0;
for (int i = 1; i < 4; i++)
{
  if ((columnIndex + i) > 6 || this.isWinningCondition(columnIndex, i, j, colSlot, isRed))
     {
         break;
     }
  else
     {
        pieces++;
     }
}
for (int i = -1; i > -4; i--)
  {
    if ((columnIndex + i) < 0 || this.isWinningCondition(columnIndex, i, j, colSlot, isRed))
    {
      break;
    }
    else
    {
       pieces++;
    }
}

基本上,它是 Connect4 程序的一部分,该程序在特定列的左侧和右侧连续搜索三个(在这种情况下,它正在搜索水平获胜),因此递增(右侧)和递减(对于左侧)循环。有没有办法可以将这些 for 循环组合成一个,所以我不必重复自己?

4

2 回答 2

0

如果您的MaxValue ( 4 ) 对于两个 for 循环始终相同,则您始终可以这样做:

for( int i = 1; i < 4; ++i)
{
   //verify i version 1
   int i2 = i * -1;
   // verify i2 version 2
}
于 2015-08-18T15:29:35.570 回答
0

尝试混合 for 循环。

for(int i = 0, j = 4; i <= 4 && j >=0; i ++, j --)
{
 System.out.println(i + " " + j);
}

Output:
0 4
1 3
2 2
3 1
4 0
于 2015-08-18T15:33:23.207 回答