gpt4 book ai didi

c - N x N 井字棋检查获胜

转载 作者:行者123 更新时间:2023-11-30 16:09:40 26 4
gpt4 key购买 nike

在过去的两天里,我一直在尝试制作 N x N Tic Tac Toe 游戏,但我遇到了一个问题,我不明白为什么会发生这个问题,如果有人可以提供帮助,我会很高兴我解决这个问题。问题是当我检查 Horizo​​ntal Win 时,我的程序仅检查第一行而不检查其他行。这是我用来检查水平获胜的函数:

void HorizontalWin()
{
for(int i=0; i<size; i++){
for(int j=0; j<size; ++j){
if(board[i-1][j-1]==board[i-1][j] && board[i][j]!='_')
horizontal=1;
else {
horizontal=0;
break;
}
}
if (horizontal==1)
break;
}
}

大小:是网格的大小,它取自用户。

最佳答案

对于初学者来说,当函数使用全局变量时,这是一个坏主意,尽管它可以在不访问全局变量的情况下进行定义。

尽管如此,您的函数可以通过以下方式定义

void HorizontalWin()
{
horizontal = 0;

for ( int i = 0; !horizontal && i < size; i++ )
{
if ( board[i][0] != '_' )
{
int j = 1;
while ( j < size && board[i][j] == board[i][0] ) j++;
horizontal = j == size;
}
}
}

至于你的函数实现,它具有未定义的行为,因为至少在这个 if 语句中

if(board[i-1][j-1]==board[i-1][j] && board[i][j]!='_')

当 i 或 j 等于 0 时,会尝试访问数组之外​​的内存。

关于c - N x N 井字棋检查获胜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59079282/

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