私は現在、乱数を含む 2 次元配列でタスクを実行する必要があるプロジェクトに取り組んでいます。配列は、山の頂点 (高さ) を表すグリッドを形成します。最後のタスクを除くすべてのタスクを解決しました。
最後のタスクは、最小のピークから最大のピークに至る経路が存在するかどうかを見つけることです (最短である必要はありません)。道は絶え間なく成長するピークで構成されている必要があり、それより低いピークを踏むことはできません。
簡単にするために、3x3 グリッドで表した例を次に示します (元のサイズははるかに大きく、正方形である必要はありません。ユーザーが望むように生成され、数字は完全にランダムです)。
2 4 5
1 3 8
9 7 10
可能な方法は、1-3-7-10、1-3-8-10、1-2-4-5-8-10 です。
ある種の再帰を使用する必要があると確信しています。*パスファインダーについて読みましたが、それを使用するには、「障害物」(ステップできないノード=小さなピーク)を含む「マップ」が必要であり、それはまさに私が作成できないものです。あなたは外出先でそれを見つけるだけです。
つまり、7 番を「例外リスト」に入れることができるということです。手順 1-9-7 は禁止されていますが、手順 1-3-7-10 は完璧なので、例外リストに 7 を入れるのは間違いです。