1

これをどこから始めればよいかわかりません。他の誰かにそれをやってもらうように頼んでいるわけではありませんが、どうすればよいかわかりません。誰かが私を正しい方向に向けることができれば、それは素晴らしいことです。グーグルを使って何かを見つけることはできません。ここに私が必要なものがあります:

グリッドの片側から反対側へのパスを作成する必要がありますが、ランダムな方法で最短ではありません。パスがパスの別の部分と平行である場合、少なくとも 2 ユニット離れていることを確認する必要があります。 .

前もって感謝します

4

2 に答える 2

4

次のように迷路を通るパスを作成することから始めた迷路ジェネレーターを一度書きました。

y 軸の 2 つのランダム オフセット y1 と y2 を両側に 1 つずつ選択し、次に x 軸のランダム オフセット x を選択します。次に、(0, y1) から (x, y1)、(x, y1) から (x, y2)、(x, y2) から (w-1, y2) の直線で 2 点を結びます。ここで、w は幅:

     x
   .....
y1 XXX..
   ..X..
   ..XXX y2
   .....
   |-w-|

次に、元の長さの 2 倍など、必要な長さになるまで、最初のパスに「バンプ」を繰り返し追加しました。

バンプは次のようになります。

前:

 .....
 XXXXX
 .....
 .....

後:

 .....
 XX.XX
 .XXX.
 .....

このタイプの変換は、使用可能なスペースがあれば、現在のパスの 4 つの方向のどこにでも適用できます。

(私の ASCII アートのスキルには、多くの要望が残されています。理解していただければ幸いです)。

于 2012-06-23T01:39:15.287 に答える
1

これは良い出発点のようです:http ://www.csharpcity.com/reusable-code/a-path-finding-library/これはあなたのニーズに簡単に適用できる良い基盤です。

于 2012-06-23T01:18:55.237 に答える