c - 遍历矩阵中的不同对角线并在 C 中建立它的起点和终点?
问题描述
我正在尝试创建一个函数,该函数在类似国际象棋的游戏中迭代对角线,并在任何位置不为空时返回一个值。下面的代码用于水平移动。我只是不知道如何将其翻译为对角线运动。
我想 [r] 和 [c] 的增量必须同时发生,以便它沿对角线移动。我怎样才能做到这一点?
int checkHorizontal(int fromr, int fromc, int toc){
if (fromc < toc){
for(int c = fromc + 1; c < toc; c++){
if ((tablero[fromr][c]) != &empty){
return 0;
}
}
}
else if (fromc > toc){
for(int c = toc + 1; c < fromc; c++){
if ((tablero[fromr][c]) != &empty){
return 0;
}
}
}
return 1;
}
如果其中一个空格不为空,我希望函数返回 0,如果所有空格都为空,则返回 1。
解决方案
左对角线可以索引如下:
Matrix[i][i]
其中i从0开始到((matrix size)-1)并且每个循环递增 1
右对角线可以索引如下:
Matrix[j][i]
其中i从0开始,每次循环递增 1,j从(matrix-1)开始,每次循环递减 1。
注意:此索引仅适用于方阵
推荐阅读
- python - Problems to downgrade scipy to 1.1.0
- ios - 是否可以仅覆盖表单的暗模式?
- excel - 从excel中读取特定单元格,同时保留该单元格中值的数据类型
- c++ - 为什么从模板类和抽象类继承 C++ 类会导致类成员重复?
- slack - 是否可以在 Slack 中添加具有不同肤色的自定义表情符号?
- javascript - Javascript:从对象数组创建二维数组
- flutter - Flutter - 带有 CupertinoSliverNavigationBar 的 ScrollController,largeTitle 到 smallTitle 不起作用
- javascript - ReactJs,this.setState 没有像我期望的那样工作
- python - Tensorflow 中的 KFold 交叉验证
- python-3.x - 在 Matplotlib 中按数字顺序显示轴单位