c++ - 在 C++ 中循环访问 2D tic-tac-toe 数组的好方法?

标签 c++ arrays validation 2d tic-tac-toe

我有一个函数,用于检查一个数组是否具有三个与井字游戏数组相同的字符。问题是,我的逻辑有问题:

for (int i = 0; i < SIZE; i++){
    for (int j = 0; j < SIZE; j++){
        if (board[i][j] != '*'){
            if (i != j){
                if (board[i][i] == board[i][j]){
                    matches++;
                }
                else if (board[i][j] == board[j][i]){
                    matches++;
                }
                else if (board[i][j] == board[j][j]){
                    matches++;
                }
                else if (board[i][j] == board[j][i]){
                    matches++;
                }
                else {
                    matches = 0;
                }
            }
        }
    }
}

看来我可以检查水平和垂直匹配。但是,我不太清楚如何找到对角线匹配。我认为这段代码可以工作,但到目前为止还没有。

有什么错误的建议吗?

最佳答案

看起来像作业,就不给出代码解决方案了。但是当两个索引相等时 (i == j),或者当索引加起来比矩阵的维数小一时 ( i + j == SIZE - 1.)

在第一种情况下,您位于第一条对角线(从左上角到右下角。)在第二种情况下,您位于第二条对角线(从右上角到左下角。)

这适用于任何大小的方阵。

关于c++ - 在 C++ 中循环访问 2D tic-tac-toe 数组的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042031/

相关文章:

c++ - 来自 QSocket 的 readyRead() 信号的行为

ruby - 如何选择第一个内部数组?

javascript - 表单提交后邮政编码格式错误

javascript - Javascript 中将文本框限制为小数点后两位

jQuery Mobile 中的 jQuery 表单验证

c++ - 使用空的 Boost 累加器

C++,函数参数的多态性与模板化

c++ - 可以多次链接信号和插槽吗?

javascript - 如何将对象数组转换为数组?

javascript - React js 简单获取 json 并列出内容 "TypeError: this.state.items.map is not a function"