以前のリビジョンの文書です
足立法や最短経路の導出には必須だと思います。
目標値から何マス離れているかを表すマップです。
①歩数マップ用に、16×16(迷路区画分)のchar型配列を用意します。
②歩数マップを255で初期化し、目標座標(ゴール位置)の歩数を0にします。
③for文とif文を使って、歩数マップが0の所を探します。
④0の所を見つけたら、その周囲4マスで歩数が255の所を1に変えます。
⑤全部探したら、今度は1の所を探します。
⑥1の所を見つけたら、その周囲4マスで歩数が255の所を2に変えます。
⑦全部探したら、今度は2…
これを歩数マップが更新できなくなるまで繰り返します。
最初のうちは、紙に書いてイメージを掴んでから作ってみるといいかもしれません。
上記方法でも問題なく走れますが、迷路が複雑になるほど計算に時間がかかってしまいます。
まだ絶対に更新しない部分や、更新済みの部分も調べてしまうため、非常に効率が悪いです。
そこで、更新した座標を覚えさせ、その部分だけ順番に調べていくのが今回の方法です。
詳しくは気が向いたら書きます。
電通大ロボメカ工房マイクロマウス部門さんのブログに書いてた方法なので、そちらを参照して下さい。
うまくいけば桁違いに速くなります。