WonderWitch.Com ■TOPネタ
・技その32「迷路で遊ぶ」
Witchに迷路を解かせる。

先日、「マイクロマウス競技会」というコンテストを見させてもらったんですが、出場したロボット達の速いこと、かしこいこと、、、イロイロと感銘を受けましたので、今回はワンダーウィッチで「自動的に迷路を解くプログラム」を作ってみたいと思います(松原拓也)。
◆まず、迷路情報のデータ化。壁の「ある」「なし」を文字列データにしました。壁は「-」「|」、柱は「+」です。

◆とりあえず、作ってみました。
【Download】「その1」(01.lzh)
・前方に壁があったら右に方向転換。
・壁が無かったら前に進む。
、、、。思いつく限り簡単なアルゴリズムです。実行してみると、スタート付近で行ったり来たりを繰り返すだけです。失敗です。

◆さらに、「左側に壁がなかったら左に方向転換」する機能を追加してみました。

【Download】「その2」(02.lzh)
、、、で、実行してみると、「その1」よりも行動範囲が一気に広くなったんですが、外側をグルグル回るだけでゴールに着きません。うーん、これも失敗です。

ただ、やみくもに通路を辿るのではなく、行ったことの無い場所に向かってくように、アルゴリズムを根本的に練り直してみました。
・迷路の分岐地点を記憶する。
・行き止まりに来たら、分岐まで戻る。
、、、というのを考えてみました。ただ、これだと変数が膨大な量に膨らんでしまいます。一体、どうしたらいいのか、、、む、難しい。

◆一応、完成です。まったく資料を見ないで作ったので、結局、5時間ほど費やしてしまいました。
【Download】「その3」(03.lzh)
「その3」の実行結果です。ちゃんとゴールに辿り着きました。

原理ですが、1度通った道を記憶させ(「ルート情報」と名付けた二次元配列)、行き詰まると「戻りモード」、新たなルートを発見すると「いけいけモード」という2種類の行動パターンを考えました。あと、思わぬ発見ですが、ゴール到着後は一気にスタート地点まで戻ります。


*なお、今回、スクリーンショットの撮影にはWitchエミュレータ「MiracleMage」を使わせて頂きました。デバッグ効率も各段にアップできて、大変助かりました。大感謝です。

、、、で、ここからは、突拍子も無い空想ですが、駆動部分はAIモータにして、センサ部分をいろいろ頑張って(できればTreva)、ワンダースワンを使ってマイクロマウスを自作できないでしょうか。誰か作ってみてください。


■TOP ▲BACK >NEXT

2003-11-24 Update /Presented by WonderWitch.Com 運営委員会