首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用C语言使我的代码更短

用C语言使我的代码更短
EN

Stack Overflow用户
提问于 2016-12-03 16:39:40
回答 1查看 122关注 0票数 1
代码语言:javascript
复制
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;

我是工作在我的Tic-Tac-脚趾在C(与定制的大小板,5需要在一个连续的胜利)。我有一个非常非常长的“if”,我想把它变短。我也有4次这个代码,因为行,列,诊断,反诊断,所以它需要一些修复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-03 17:05:58

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

代码语言:javascript
复制
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;
  }
}

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40950038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档