C++ 如何检查其他游戏板对角线
我有工作代码,可以检查当对角线从右上角到左下角时,玩家是否赢了。然而,我似乎不知道如何使它适用于左上角到右下角的对角线 此代码起作用:右上角到左下角对角线C++ 如何检查其他游戏板对角线,c++,C++,我有工作代码,可以检查当对角线从右上角到左下角时,玩家是否赢了。然而,我似乎不知道如何使它适用于左上角到右下角的对角线 此代码起作用:右上角到左下角对角线 for(int x = boardSize, y = 0; x > 0; x--, y++){ playerCount = 0; for(int row = y, col = 0; col < x; row++, col++){ if(gameBoard[col][row] == '_')
for(int x = boardSize, y = 0; x > 0; x--, y++){
playerCount = 0;
for(int row = y, col = 0; col < x; row++, col++){
if(gameBoard[col][row] == '_')
playerCount = 0;
if(gameBoard[col][row] == playerSign)
playerCount++;
if(playerCount == winningSize)
return true;
}
}
我需要如何更改代码以使其适用于左上角到右下角的另一条对角线。提前感谢您的代码太复杂了。要测试从0,0到尺寸-1(包括尺寸-1)的对角线:
for (int z = 0; z < size; ++z) {
if (board[z][z] == ' ')
count = 0;
else if (board[z][z] == p) {
++count;
if (count == s)
return true;
}
}
请注意,扫描对角线不需要嵌套的二维循环,因为对角线本质上是一维的。此代码适用于第二条对角线:
for (int y = 0, x = size-1; y < size; y++, x--){
if (board[y][x] == ' '){
count = 0;
}else if (board[y][x] == p){
count++;
if (count == s)
return true;
}
}
谢谢,它对第二条对角线有效!