6

ゲームに深さ優先探索アルゴリズムを実装しようとしています。私はこの Web ページを研究してきました: http://www.mazeworks.com/mazegen/mazetut/index.htm、壁の代わりにブロックで使用できないことがわかりました。ブロックとは、エッジだけでなく、セル全体を覆う正方形のことです。この方法の方が簡単だと思っていましたが、今はよくわかりません。誰かがこれをしましたか?もしそうなら、どのように?(疑似コードは問題ありません)。または、簡単な場合は、壁の方法を使用する必要がありますか?

4

1 に答える 1

4

あなたが実際に達成したいことに応じて、私はあなたのために2つの解決策を持っています. どちらも基本的に、参照した Web サイトで提示されているアルゴリズムです。

1.) 迷路内の事前定義された位置にブロックがあります

  • 2*k+1グリッド上でアルゴリズムを実行します
  • セルの番号付けが左上から (0,0) で始まるとします。2 つの奇数座標 ( (2*p+1, 2*q+1); p,q < k) を持つすべてのセルをブロックとしてマークします。
  • 残りのセル (「偶数セル」) で、ソースから変更されたアルゴリズムを実行します。変更は次のとおりです。
    • ランダムに選択された偶数セルから開始
    • 「隣接セル」は、任意のグリッド方向で 2 番目から 2 番目のセルです。つまり、レンガを「ジャンプ」します。
    • セルの間の壁を倒す代わりに、ブロックをアクセス可能なセルに変えます。ただし、このセルは選択とバックトラックでは考慮されません

2.) セルを区切る壁の代わりに、ブロックが必要です。

アルゴリズムを開始する前に、任意の数のセルをブロックとしてマークします。ソースに概説されているとおりに進めますが、ブロックセルは考慮しないでください。迷路内での完全なアクセシビリティを保証したい場合は、特別な予防措置を講じる必要があります。簡単な方法は、隣接するブロックが 1 つを超えるブロックとしてセルをマークしないことです。

これらのアイデアがあなたのニーズに合っていることを願っています。

よろしく、カルテン

于 2011-05-26T08:46:38.057 に答える