0

Image Analyst http://www.mathworks.com/matlabcentral/fileexchange/27175-mazesolutionの maze_solution 関数をしばらく問題なく使用しています。いくつかの制限があります: 迷路は完全で、円形の経路がない必要があります。

そうは言っても、テストすると通常は非常にうまく機能します。出力の例を2つ紹介します。

迷路-1 ->解決策-1 (明らかにうまく機能します)

maze-2 -> solution-2 (あまり良くない)

ここで、迷路について明らかではないいくつかのルールを設定しましょう。

  1. 円形の経路はありません (壁に閉じ込められている経路もありますが、迷路ソルバーが遭遇する経路はありません)。
  2. それらは常に左上から始まり、毎回同じ座標に 4 つの出口があります。
  3. 出口はいつも一つ。

それで、私がやりたいのは、最初のスクリーンショットを考えてみましょう。それはうまく機能し、出口を「見つけます」。mat lab にメッセージボックスをポップアップさせて (たとえば、msgbox() を使用して)、「やあ、ユーザー、解決策を見つけました! A です!」のようなことを言う方法はありますか? 私はすでにこれについて長い間考えていましたが、これを行う方法が見つかりませんでした. 私が考えた解決策の 1 つは、疑似コードで次のとおりです。

if CertainCoordinate = red pixel
    return A

一方、特定の座標は、A、B、C、および D の変更不可能な座標 (x および y) である可能性があります (その場合、4 つの「if」を使用します)。アイデアや... 正しい方向に私を向けるためのものはありますか?

つまり、要約すると、現在、出口への赤いパスを生成するアルゴリズムがあります (提案があれば、より良いアルゴリズムを受け入れます)。私をイメージで。たとえば、最初の画像では、赤いパスが表示された画像を表示する代わりに、MessageBox を開いて、「やあ、ユーザー! 出口を見つけました。D です!」と言うようにします。問題は、MatLab に「D はどこにあるのか」を教える方法と、彼が「D」を見つけたことを認識させる方法がわからないことです。それで、それを行う方法について何か提案はありますか?

前もって感謝します!

4

1 に答える 1

0

maze出口の可能なx座標と対応する出口の座標のセットと呼ばれる画像があるとしますy。また、迷路を解くプログラムが使用する色を確認することもできますRed

解決策は非常に簡単です。最初に迷路ソルバーを実行してから、次のことを確認してください

isRed = maze(x,y) == Red;
exitxCoordinates = x(isRed)
exityCoordinates = y(isRed)

これにより、x 座標と y 座標が得られます。(解決策が見つからない場合、それらは空です)。ここから、指定した文字の 1 つにそれらを接続するのはそれほど難しくありません。

于 2013-03-04T11:16:24.457 に答える