問題タブ [maze]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
10527 参照

data-structures - 迷路を表すデータ構造

私はダイナミック迷路のゲームを書いています。このゲームでは、毎回迷路の構造が変化します(一部のドアが閉じられ、一部のドアが開きます。HP4のTriwazardのようなものです)。これを表すのに最適なデータ構造を教えてもらえますか?

0 投票する
3 に答える
556 参照

java - 紛らわしいJava構文

次のコード(ウィキペディアから)をJavaからJavaScriptに変換しようとしています:

とにかく、私が理解できないビットに到達したとき、私はかなり速く動き回っていました:

「迷路」は4次元配列ではなく、2次元配列であるため、「迷路」パラメータの後に2セットではなく4セットの角かっこがあるのはなぜですか。

これには正当な理由があると確信しています。問題は、私はそれを理解できないということです。

ありがとう!

0 投票する
1 に答える
928 参照

java - 配列で訪れた座標をどうにかして追跡する必要がある

配列 (2 次元配列) の要素座標を格納する必要があります。これは Java 迷路プロジェクト用です。私のプログラムは int plyrX と plyrY の変数を使用して、位置、つまり 0 1 を格納します。プレイヤーが迷路の周りを移動すると、x と y の値は、プレイヤーが移動することを決定した場所に変化します。

私の問題は、たとえば、プレーヤーが 0 1 から開始して 10 1 に移動した場合、位置を配列に格納できないように見えることです。これらの値を配列に格納できるようにして、再利用できるようにする必要があります。最後のゲームのリプレイを作成すると、問題は、配列要素に格納されている値が常に x と y の最後の値 (この場合は 24 37) であるように見えることです。

これは、移動メソッドとスペース メソッドのコードの一部です。プレイヤーは、移動する必要がある文字とスペースの量を選択できます。スペースであり、これがプレーヤーを迷路の周りに移動させるものです。私が理解できないのは、個々の移動の後に x と y の値を保存することです。

0 投票する
1 に答える
285 参照

javascript - ビット演算-一体何が起こっているのですか?

2D迷路を生成するための次のJavaScriptスクリプトがあります。

6軸の3D迷路を作成するようにスクリプトを拡張したいと思います。ただし、そのためには、ビット演算とその使用目的を理解する必要があります。誰かが私に、元の作者がビット単位の演算を使用することを選択した理由と、スクリプトで正確に何をしているのかを説明してもらえますか?

ありがとう!

[編集-結論]問題が解決されたので、参考までに、スクリプトの3Dバージョンを次に示します。

0 投票する
1 に答える
4067 参照

java - Javaで3D迷路を作る

ゴール


3D 迷路を生成するプログラムを作成していますが、作成アルゴリズムに少し問題があります。相互作用を容易にするために、入口と出口が 1 つずつある四角柱になります。

アルゴリズム


問題は、アルゴリズムの実際のコーディングです。これを使用する最善の方法はMazeBlock、迷路の方向を示す 6 つのブール値状態 (上、下、左、右、イン、アウト) を持つというクラスを作成することだと考えました。次に行ける。s の3D 配列を使用してMazeBlock、迷路を塗りつぶしたいと考えています。塗りつぶしの各反復で、ブロックの左、右、上、下、前、後ろをチェックして、その側に開口部があるかどうかを確認します。添付する。

迷路の内側に向かってランダムな開いたスロットを配置して、エッジを作成するものを既に持っています。私が問題を抱えているのは、実際の内部であり、迷路に 1 つの入り口、1 つの出口、およびそれを通過するための 1 つの解決策があることを確認することです (私はかつて、ポップアップブックの「難しい」3D 迷路を、意図した反対の数歩だけ進むことで解決しました)。方向。

質問


私が言っているように、アルゴリズムの基本的なアイデアはあると思いますが、それをコーディングする方法がわかりません。誰かがこのタスクを比較的迅速に達成する Java アルゴリズムを考え出すことができますか?

ソリューションでは、外部ライブラリを使用してはなりません。

0 投票する
2 に答える
2560 参照

python - Pythonで迷路のグラフを作成する

ねえ、私はPythonの辞書を使用してグラフを作成しようとしています。私はtxt迷路(壁の場合はb、パスの場合はb)を含むファイルを使用しており、迷路で実行できるすべての移動(完全なパスではなく単純な手順)をリストした辞書を作成しようとしています。どこから始めるべきかについて何かアイデアはありますか?私は辞書を使ったことがありません。

助けてくれてありがとう、それは私を素晴らしいスタートに導いた。もう1つ質問があります。私は、1つの有効な家から始めて、考えられるすべてのパスをチェックしています。その後、病気は別の家に移動し、その上の道を確認する必要があります。無限ループが発生しないことを確認したり、すでにチェックされている家のiveを再チェックしたりするにはどうすればよいですか?

0 投票する
1 に答える
762 参照

java - Java動的マトリックス

わかりました。タイトルはほとんどわかりませんが、迷路のようなエディターを作成したいと思っています。迷路ソルバーを作るという任務がありました。私はファイルを読むことによってこれを行いました。最初の行には行と列の数があります。その後、迷路を作るのはシンボルの迷路です。私はそれぞれの場所を駆け巡り、シンボルに応じて、そこに何があったかを表す数字のマトリックスを作成しました。

それが出てくる私のマトリックスです。今、私はこれを解決しているので、それは問題ではありません。しかし、行数と列数を尋ね、そのサイズの長方形を描き、画面に収まるすべて0の行列[行] [列]を大きくし、行列に基づいてグリッド化してから、彼らはmatrix[0][0]用のボックスをクリックし、それを1に変更し、マトリックス内のスポットを表すグリッドボックスごとに1つ変更します。

そうすれば、私は彼らに迷路を作ってもらい、それをプログラムに解決させるか、彼らにそれを保存させることができます。

もちろん、これは私が問題を抱えているところです。行と列の数に基づいてグリッドを持つ長方形を描画し、それを作成して、クリックした場所を知るにはどうすればよいですか......

どんな助けでも素晴らしいでしょう。

編集:OK私は与えられた行と列に基づいて迷路を描いています。クリックを検出して、クリックした場所に正方形を置くことができます。ただし、マトリックス全体を変更してから、全体を再描画するわけではありません。

0 投票する
2 に答える
30318 参照

python - List.append() すべての要素を追加項目に変更する

Python で作成した迷路生成プログラムに問題があるようです。選択したポイントで分岐するパスをランダムに作成しようとしています。ポイントは進行するにつれて保存されます。迷路が行き止まりに達すると、行き止まりではない場所に到達するまで、それをポップして次の値に進むのではなく、一番上の値をテストすることによって、訪問したポイントを並べ替えます。しかし、行ったスペースを保存するために使用しているリストにアイテムを追加しようとすると、実際に見たことがない奇妙なことが起こります。これがコードです。それを確認する最善の方法は、最後まで実行するまで何度も実行することです。私は行き止まりの問題に対抗する方法を実際に見つけていないので、誰かが私を助けてくれれば、それは素晴らしいことです.

ご覧のとおり、0,0 から開始し、可能なパスを計算します。それらからランダムに選択し、部屋のその側の値を 0,0 から 1 に設定します。これは通路を意味します。2 は壁を意味し、0 は範囲外を意味します。迷路が完全に生成されるまでにすべての値が入力される必要があるため、4 は単なるプレースホルダーです。

誰かが私を助けることができれば、それは素晴らしいことであり、非常に感謝しています. 前もって感謝します。

0 投票する
2 に答える
793 参照

python - 迷路がランダムではない

こんにちは、迷路を生成するプログラムを作成しているので、後でパスをグラフィカル パーツに変換できます。私はそれのほとんどを機能させていますが、東と南のルートをたどることができれば、最後まで行くことができます. 幅を 64 に設定しても、迷路は 64*64 になりますが、これら 2 つのオプションを選択して、毎回最後まで到達することができます。なぜそれがそうしているのか、私には本当にわかりません。コードは以下のとおりです。かなり理解しやすいです。

ご覧のとおり、問題は迷路を生成するポイントにあると思いますが、現在のポイントが最後になるまでそのままにしておくと、すべての迷路がいっぱいになるわけではなく、通常は 1 つの直線的なパスになります。 . 助けてくれてありがとう。

更新: 迷路を生成する for ループを単純な while ループに変更したところ、はるかにうまく機能するようです。for ループが実行されたときは再帰的に実行されなかったようですが、while ループではまったく問題ありません。ただし、すべてのマスが埋まらないようになりました。

0 投票する
2 に答える
2668 参照

java - ウォールフォロー迷路ソルバー

迷路を解くアルゴリズムに問題があります。左手の法則を実装しようとしています。

方向は常に、迷路ソルバーが向いている現在の方向に設定されます。

turnX は、現在向いている方向に基づいて方向を変更します

move 関数は、迷路ソルバーがその方向に 1 スペース移動する方向を返します。

誰かが私を正しい方向に向けることができますか? これを実装できる単純な再帰的な方法があると確信していますが、うまくいかないようです。

現在、次の 2 つのテストで失敗しています。

ここに画像の説明を入力

どんな助けでも大歓迎です。