問題
簡単な1DRTSゲームを書いて、次のパスファインディングの問題があります。1次元の線がたくさんあり、線の間を移動するだけでなく、現在の線の内部を移動するために使用できるテレポーターがどこにでもあります。テレポーターは、回線間を移動する唯一の方法です。行li1の位置po1からli2のpo2までの最短経路を決定するために使用できるアルゴリズムまたは擬似コードは何ですか?ゼロのコストで相互に接続されたテレポーターTのセット(それぞれにpoとliがあります)があります。
なぜA*またはダイクストラアルゴリズムではないのですか?
これは、1Dではやり過ぎだと思うからです。
明確化
- 少し二次元に聞こえるかもしれませんが、1行で左または右にしか移動できないためではありません。
- テレポーターへの移動には費用がかかりますが、ある場所から別の場所へのテレポートには費用がかかりません。このアスキーアートを参照してください:
... 0 .... s..0 ......0.x..。
ここで、最短は開始sからターゲットxまでの方法です。
- 正しいテレポーターに行く
- 1行下にテレポートします(この図のみ。実際には飛行機は順序付けられていません)
- そして目標に向かって右に行きます(最終コスト= 5)