「拡張左手法」で迷路を探索するマイクロマウスのシミュレーターです.
メインプログラムは,SS$に指令を入れて呼び出すサブルーチンです.
MAP0配列に迷路の答えが入っています.16×16区画の迷路.
スタートとゴール位置はわかっているものとして,1区画ずつ進む.
指令は,”F”で1歩前進,"R"/"L"で90度旋回です.進めないと”N”.
壁の探索は,”S”で前の壁の有無;壁ありで”1”が返値になります.
<趣味画像 9760> 手動で動かすのはたいへんです
手動で動かしてみて,メインルーチンの動作を確認しました.
そして,指令を自動生成する部分が「拡張左手法」です.
MAP1に認識した壁のDATA,MAP2に通過済み区画のチェック,
MAP3に,その区画から出た方向を記録します.
<趣味画像 9761> 拡張左手法でゴールできました
「左手法」ですから,左に壁がなければその区画に進むのが基本です.
これだけでは,迷路の外周しか探索が出来ません.
一度通った区画へ入ったときに(MAP2),同じ探索をしない(MAP3),
そのルールを入れる事で,だんだん内側を探索して,ゴールに着きます.
そのまま探索を続けてゴールからスタートへ戻ると,全面探索ができます.
<趣味画像 9762> 全面探索ができます
実際のマイクロマウス競技では,全面探索しないで最短経路を見つけるので,
そのプログラムも勢いで作ってしまいましたが,またの機会に.
それにしても,BASIC処理も早くなりましたね.Switch優秀です.
Wait を入れないで計算させると,32×32区画迷路が1秒もかかりません.
探索歩数で比較しないと,探索能力は比べられないかもしれません.
<趣味画像 9763> 32×32区画迷路を最短経路計算法で探索する
Switchは,ワンタッチで30秒動画や画面キャプチャーができるので,
動画で探索の様子を見せたいのですが,このブログには重たいので,
別のホームページで,迷路探索の特集をしようと思っています.
迷路を動画で解説してYouTubeにしたり,迷路特集を電子本にしても良いな.
<関連記事>


最後まで読んでいただいて,ありがとうございます.
ほかの記事も読んでくださると,うれしいです.
Programming in BASIC to use the Switch (2020, No.3): Private Material Life.