我有一个代表棋盘的二维数组 - t[8][8]
现在假设我们在 t[4][7]
如何使用该皇后引用坐标绘制对角线?
我已经尝试过:
- 2 个嵌套 for 循环,从第二个循环的
xQueen
位置和yQueen
位置开始,条件如下if (i == (xQueen - i) && j == (yQueen - j))
- 相同,但从
1
开始到8
- 使用
while
循环,直到达到棋盘的限制
如果棋盘上的任意一点位于皇后的对角线上,如何定位?
谢谢
最佳答案
让我们对数组进行编号,使其从 0 开始。
假设您有一位女王,地址为 (4, 7)
。您可能会发现您要查找的位置包括 (3, 6)
, (2, 5)
和(5, 6)
.
把它们画在纸上,你就会发现你想要的其实很简单。
如果皇后在位置(x, y)
,那么所有位置 (i, j)
与 (i + j == x + y || i - j == x - y
就是答案。为了更清楚地说明,您可能需要表示每个位置 (i, j)
与 i + j
,并将它们放入矩阵中。你会发现同一条对角线上的位置具有相同的结果。如果您代表(i, j)
,这个事实是相同的。与 i - j
.
关于C++ 使用一个点作为引用打印二维数组中的对角线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34706756/