gpt4 book ai didi

c - 在 C 中缩短我的代码

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:59 25 4
gpt4 key购买 nike

for (c = 0; c < SIZE-4; ++c)
for (r = 0; r < SIZE; ++r)
if (board[r][c] == cross && board[r][c+1] == cross && board[r][c+2] == cross && board[r][c+3] == cross && board[r][c+4] == cross)
return true;

我正在用 C 编写我的井字棋(使用自定义尺寸的棋盘,连续需要 5 个才能获胜)。我有一个非常非常长的“如果”,我想缩短它。由于行、列、诊断、反诊断,我也有 4 次此代码,因此需要一些修复。

最佳答案

将一些代码移动到函数中可能会有所帮助,如下所示:

bool rowHasNCrosses(int board[][SIZE], int r, int c, int n) {
for (int i = 0; i < n; i++) {
if (((c + i) >= SIZE) || (board[r][c+i] != cross)) return false;
}
return true;
}

for (int c = 0; c < SIZE - 4; ++c) {
for (int r = 0; r < SIZE; ++r) {
if (rowHasNCrosses(board, r, c, 5)) return true;
}
}

然后您可以对列和对角线测试执行类似的操作。但是,我怀疑有比这更有效的算法来确定游戏是否获胜。

关于c - 在 C 中缩短我的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40950038/

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