これはおそらくかなり簡単です。 standard depth-first-search algorithmを使用して迷路を生成します。 (唯一の)パスを形成するセルのリストを、リストの最初から最後まで格納します。
- クリティカルパスに沿った任意のセルを除いて、迷路全体をデフォルト状態(すべての壁が定位置)にリセットします。必要に応じて、迷路全体をリセットします。プレイヤの現在の位置の見通し内のセルはほとんどありません。
- 最初から幅優先探索アルゴリズムを再実行します。変更するには、未探索の探索対象ノードを選択するときに、既に壁を削除したエッジを優先します。
第2ステップの変更により、アルゴリズムがまず既存のパスを探索し、そこからサイドパスなどを追加することが保証されます。あなたが望んでいない場合でもクリティカルパスを保持することは厳密には必要ではありません。ユーザーが立っている場所を除いて迷路全体を再生成し、有効なままにしておくことができます。
I これは、元のアルゴリズムと同じ方法で常に有効なツリーを生成するはずですが、ユーザーの周りにあるセルを保存することの意味については100%確信していません。クリティカルパス。私は再構成された迷路はユーザーの立場からいつでも解決できるということは肯定的です。
これはかなりきちんとしたアイデアです。私は、ユーザーが探していない場所でも、迷路のレイアウトを大幅に変更するというアイデアが大好きです。一人称でこれをやっているのであれば、見ることができないときにカメラの視界を変えることさえ可能です。
自分自身をノックアウトすると、自分で設定した興味深い挑戦のように聞こえます。あなたの質問に答えてくれるようにSOをしたいのであれば、実際には質問する必要があります。投稿が閉じられない場合 –
これは、十分な時間を待って変更を観察するだけで、問題なく主要なルートを推測できることを意味します。 – ruslik
@ruslikはい、しかし別の考えがあります。 3Dで実装する必要があるため、ユーザーは壁や2Dですぐに変化を見ることができず、その角度以外のすべてが空白の「画角」のシミュレーションを追加します。 – baltazar