次のグリッドがあるとします。
左下隅から始まる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 ループは、この仕事には不適切なツールですか?
以前の値を取得する必要がなく、それらを計算するだけで済むようにする巧妙なアルゴリズムはありますか? ここで間違ったツリーを吠えていますか?別の方法でアプローチする必要がありますか (正しく?)?
編集:
これは、パスを描画する試みです。これがより意味があるかどうかはわかりません:
アイデアは、最初のセルの左下隅から開始することです。セルを 1 つ上に移動し、直角になるように交互にします。完全な直角が形成されたら、1 つのセルを上に移動し、交互に新しい直角を形成します。