gpt4 book ai didi

C# 是否有一种紧凑的方法来获取二维数组中的多个坐标?

转载 作者:行者123 更新时间:2023-12-03 18:36:54 24 4
gpt4 key购买 nike

尝试创建 connect4 并且我想检查一列(垂直)是否已满,所以最简单的方法是在 if 中使用 [i, 1] ! = O && [i, 2] != O && [i, 3] != O 等等,但是没有更有效的方法来解决这个问题吗?

一 block 板看起来像:

O O O O O O O O
O O O O O O O O
O O O O O O O O
O O O O O O O O
O O O O O O O O
O O O O O O O O

for 循环:

for (int i = row - 1; i > -1; i--)
{
if (board[i, column].ToString() == "O" && beurt % 2 == 0)
{
board[i, column] = (Veld)player1.color;
beurt += 1;
break;
}
else if(board[i, column].ToString() == "O" && beurt % 2 == 1)
{
board[i, column] = (Veld)player2.color;
beurt += 1;
break;
}
else if(???)
{
//???
}
}

最佳答案

bool isRowFull(char[,] array, int row)
{
for(int i=0;i<array.GetLength(0); i++)
if(array[row, i] == 'O') return false;
return true;
}

你可以这样调用它:

bool isFull = isRowFull(board, 3); // check if row 3 is full 

if(isRowFull(board, 3))
{
//your code
}

获取第一个非满行:

int FirstNonFull(char[,] array)
{
for(int i=0;i<array.GetLength(1);i++)
if(!isRowFull(array, i)) return i;
return -1; // -1 indicating that all rows are full (not found)
}

关于C# 是否有一种紧凑的方法来获取二维数组中的多个坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55339776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com