假设我有以下网格:
我似乎无法弄清楚如何使用从左下角开始的 for 循环来导航它。单元格的顺序应该是
0,5 => 0,4 => 1,5 => 1,4 => 0,3 => 2,5, => 1,3 => 2,4 => 2,3...
另一种可视化方式:
(1) 0,5 =>
(2) 0,4 => (1,5) (1,4)
(3) 0,3 => (2,5) (1,3) (2,4) (2,3)
(4) 0,2 => (3,5) (1,2) (3,4) (2,2) (3,3) (3,2)
所以这是我看到的模式:
- 要开始每个循环,取前面的循环值 (x,y) 并将其设为 (x, y-1)
- 于是出现了这样的模式: (+1, y) (x,-1) (+1, y) (x, -1) ,因此您可以提取旧值并交替增加 x 和减少 y。
for 循环是这个工作的错误工具吗?
是否有一个聪明的算法可以做到这样我不必提取以前的值并且可以计算它们?我在这里吠叫错误的树吗?我应该以不同的方式处理它(正确吗?)?
编辑:
这是绘制路径的尝试。不确定这是否更有意义:
这个想法是从第一个单元格的左下角开始的。上一个单元格,然后在它们形成直角时交替。形成完整的直角后,向上一个单元格并交替形成一个新的直角。