問題タブ [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 投票する
4 に答える
349 参照

java - Java で記述したこのメソッドをクリーンアップするにはどうすればよいですか?

私は迷路ジェネレーターの作成に取り組んでいます。次のような「セル」クラスがあります。

私のプログラムの迷路は、単純にセルの 2 次元配列です。配列を作成した後、手動で入力し、隣接するセル (北、南、東、西) へのすべての参照を設定します。

私がクリーンアップしようとしているのはremoveRandomWall()です。訪問済みフラグが false に設定されている隣接セルをランダムに選択し、このセルとそれらを接続する隣接セルの両方の壁を削除するとします。

そのため、訪問されていないすべての隣接するセルを考慮し、ランダムに 1 つを選択してから、このセルと隣接するセルの壁を false に設定して、それらの間にパスが存在するようにする必要があります。上記で試してみましたが、非常にぎこちないようです。

誰でも私を助けることができますか?

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

java - アスキー迷路で壁の両面を印刷するのをやめるにはどうすればよいですか?

迷路を生成するコードをいくつか作成しました。迷路は(nxn)セルで構成され、各セルには壁(北、南、東西)を表すブール値があります。

正常に動作しており、迷路を印刷するために以下の関数を記述しました。

ただし、セルは壁を共有しているため、印刷機能で一種の二重壁の廊下の外観を作成します。

印刷機能を次のように変更するにはどうすればよいですか。

最終的にASCIIではなく実際のグラフィックを使用して迷路を描き始めると、同様の問題に直面するのではないかと心配しています。

printMazeメソッドを変更して、最初の例から2番目の例に変更するにはどうすればよいですか?

誰かがこれらを生成するための私のクラスのソースコードに興味がある場合は、ここにあります。

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

java - Java:ドローアブルクラスの実装

Javaで迷路ゲームを作ろうとしています。

Explorerクラスはユーザーを表し、DrawableExplorerはユーザーをグラフィカルに表すコードです。DrawableExplorerは、以下を含むDrawableインターフェイスを実装します。

これは正常にコンパイルされますが、DrawableExplorerクラスが正しくない理由を理解できません。

リターンタイプを要求していますが、私のメソッドは無効ではありませんか?

コンパイラのエラーメッセージには、「メソッド宣言が無効です。戻り型が必要です」と表示されます。

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

user-agent - NetLogoで迷路の壁を作成するにはどうすればよいですか?

2つの出口がある5x5グリッドを作成し、その中にいくつかの壁を配置しようとしています。つまり、迷路や迷路を作りたいのです。

境界線を太くしたり、パッチの片面だけの色を変えたりする方法はないかと思いました。

私はエージェントを1人だけ中に入れて、いくつかのポイントで彼に報酬を与えることによって彼に出口を見つけさせたいと思います。(Q学習アルゴリズム)

誰かアイデアがありますか?

これが不可能な場合は、同等のコードを提案できますか?

これが私が作成したいものの例です:

代替テキスト

尋ねられたように、私は自分の仕事のいくつかを投稿しました(これを手動で行うのは非効率的ですが)。これが私がこれまでに持っているものです:

繰り返しますが、これは非効率的な方法です。この方法を続行する場合、4つのパッチを1つにマージして、エージェントを内部に入力して中央に配置するにはどうすればよいですか?

前もって感謝します。

0 投票する
4 に答える
2154 参照

algorithm - 迷路を抜けるアルゴリズム

私たちは現在、ゲームをプログラミングしています (これはかなり未知の言語です: modula 2)。遭遇した問題は次のとおりです: 17 x 12 のグリッドに迷路があります (完全な迷路ではありません)。コンピュータは、始点 (9, 12) から終点 (9, 1) までの道を生成する必要があります。いくつかのアルゴリズムを見つけましたが、ロボットが戻らなければならないときに機能しません。

また:

最初の例のタイプの解決策を見つけましたが、2 番目のタイプは解決できず、2 番目のタイプの解決策を作成すると、ロボットが最初のタイプの状況でスタックしてしまいます。

それはたくさんのコードなので、私はアイデアを与えます:

WHILE (最終目的地に到達していない) DO { 障害物がない場合は右に進みます: 障害物に遭遇した場合は右に進みます, 右に行けるまで試してください. もう上がれない場合は右に行けるまで下ってみてください. (最初にブロックされた場所から始めて)、もう下に行けない場合は、左に 1 歩進んで、テストしたスペースをブロックで埋めます。}

これは、最初のタイプの問題では機能しますが、2 番目の問題では機能しません。今では、私が間違って始めた可能性があるので、特にアルゴリズムを改善する方法について、より良いアルゴリズムまたはソリューションを求めています。

どうもありがとう!!

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

c# - WinForms.NETでランダムに生成された迷路をレンダリングする

私は迷路ジェネレーターを作成しようとしています。このために、C#でランダム化プリムのアルゴリズムを実装しました。

ただし、生成の結果は無効です。それが私のレンダリングなのか、それとも無効な実装なのかわかりません。したがって、最初に、誰かに実装を見てもらいたいと思います。

迷路は細胞のマトリックスです。

レンダリングされた結果の例を次に示します。

レンダリングされた迷路http://dl.dropbox.com/u/1744224/Upload/primrecur.png

[OK]を編集して、レンダリング部分を見てみましょう。

そして、これを理解するには、MazeCellクラスとMazeWallクラスを確認する必要があると思います。

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

java - ルンバを使用したプレーヤー ステージでの迷路ナビゲーション

これが私のコードです:

私は、ルンバがわずかに右に曲がるように連続して移動させようとしましたが、レーザーで認識された場合、接近した各壁からすばやく離れました。この 1 つのロボットには、laser_data[360] と laser_data[0] しか使用できません。これは最終的に迷路をナビゲートすると思います。

ただし、私は Player Stage プラットフォームを使用しており、このコードを使用して Roomba が壁に近づくと Stage がフリーズします。その理由はわかりません。

また、より良い迷路ナビゲーション アルゴリズムを考えられる場合は、お知らせください。

ありがとうございました!

0 投票する
6 に答える
3715 参照

algorithm - セグメント迷路を生成するアルゴリズム

次のような迷路を生成したいと思います。 代替テキスト

つまり、一方向のパスで構成され、その後接続されます。私はこのような迷路を生成するアルゴリズムを探しましたが、成功しませんでした。

具体的には、次のような迷路は必要ありません。

迷路

一方向にしか「走らない」からです。

また、この迷路の解決策で、プレイヤーが「バックトラック」する必要がある場合、つまり、常に上に移動するだけではない場合も便利です。

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

java - Java を使用して迷路を作成する

私はJavaを使用して、指定された「行」と「列」の迷路を互いの上に作成して、グリッドのように見せています。深さ優先の再帰的方法を使用して、部屋 (行と列によって作成されたボックス) の間の「ドアを開く」ことを計画しています。

部屋間のリンクを解除する openDoor メソッドを作成するのに助けが必要です。

0 投票する
14 に答える
88393 参照

algorithm - プログラミング理論:迷路を解く

迷路を解決するための可能な方法は何ですか?
私は2つのアイデアを持っていますが、それらはあまりエレガントではないと思います。

基本的な状況:マトリックスがあり、このマトリックスの要素は、迷路を表すように順序付けられており、1つの方法で1つの方法で、1つの方法で順序付けられています。

私の最初のアイデアは、迷路の外に出るまで、ロボットを迷路の片側に沿って送ることでした。これは非常に遅い解決策だと思います。

2つ目は、1でマークされたすべての連続するアイテムを通過し、どこに移動できるか(上、右、下、左)をチェックして、1つの方法を選択し、そこにパスを続行します。これは最初のものよりもさらに遅いです。

もちろん、すべてのジャンクションで2つのボットをマルチスレッド化すると少し速くなりますが、それも最善の方法ではありません。

迷路を介してボットを送信するには、より良いソリューションが必要です。

最初に編集
:いい答えをありがとう!

私の質問の2番目の部分は、多次元グラフがある場合にどうするかということです。そのための特別な慣行はありますか、それともジャスティンL.の答えはそのためにも使用できますか?
この場合、それは最善の方法ではないと思います。

3番目の質問:
これらの迷路ソルバーアルゴリズムのどれが最速ですか?(純粋に仮説的に)