ぱわぷろ活動日誌

ゆったりまったり技術を学んでいます。備忘録代わりのブログです。書いてあることは私見が多いので参考程度にしてください。

歩数マップと最短経路~WMMC秘伝のタレ 後編~

初めましての方は初めまして。

そうでない方はお疲れ様です。

主力のPCがSSD破損,マウス関係ほぼ全てのデータを消失したぱわぷろです…。

(バックアップは面倒くさくてもコマ目に取りましょうね…お兄さんとの約束です) 

マウス合宿やプチ大会でお世話になった方々に感謝を。そのことは別記事でまた述べたいと思います。 

 

前回に引き続き、迷路関係のことをつらつらと述べていきます。

メインは歩数マップと最短経路の導出です。

歩数マップ

歩数マップはゴール座標から各地点までの歩数を表す地図のことです。

マイクロマウス、クラシックマウスの迷路は共にxy座標系の格子点で表せることは前回述べました。ここで迷路を移動することは、x座標(y座標)をインクリメントすることと同義ですね。これを一歩と定義します。

マウスが空間を飛び越えられるなら別ですが、物理的にx座標とy座標はどちらか1つ、かつ1ずつしか増えません。

したがって、座標の変化の回数=歩数と呼べるわけです。

ならば、ゴール座標から逆算して各座標からゴールまでの歩数を記録した歩数マップが作れますね。(当然壁も考慮しますが…)

 

具体的には次のような感じ

1.歩数変数、歩数マップ配列を初期化(変数は1、配列は254)

2.ゴール座標での壁情報から行ける区画を確認

3.行ける区画に歩数を書き込む

4.現座標の区画が埋まるまでループ

 

最短経路導出

探索で認識できた壁情報から最短経路を導出する話。

といっても上の歩数マップでほとんど説明しちゃったんですね…。未知壁は「壁あり」として上の歩数マップを再生成するだけですね。

エセ最短といってもいいレベルかもしれませんが,歩数の観点では最短経路はでますね。

本来は最短経路用の歩数マップ作成の際に,直線と方向転換で優先度を設定してマップを作ることで「機体の最速経路」を出すことができるはずです。

ゼミでも言っていますが「最短経路≠最速経路」なので,自分の機体にあった最短経路作成(のコーディング)が大事です。

 

まだ斜めとかやってないからその辺は分からんちんですが,ぜひ機体を完成させて一緒に学んでいきましょう。

 

内容がいつもより薄い気がしますが今回はここまでです。

…東日本間に合う気がしない笑