迷路画像作成のWebAPI (2)バグ修正と経路探査

迷路画像を生成するWebAPIを作ってます(前回)。


実際にうごかしてみる
※ リロードする度に新しい迷路が生成されます。


■ 変更点
 迷路作成がバグってたの直しました。
 あと、イメージ作成の見栄えをよくしました。
(生成後の迷路を2倍サイズにして、既存のパーツで構成出来るようにした。multiオプション)


 今回新たに追加された昨日は、経路探索。
 左上をスタート、右下をゴールとして最短経路を探索します(routeオプション)。経路は黄色の点で表示されます。
 また、スタート地点からの距離を床の赤で表現してます(遠くなるほど明るくなる。20段階明るくなると黒にもどる)。
 経路探索はダイクストラ法を使っています。以下の記事を参考にしました。
経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた


 ダイクストラ法だと、迷路全体に特定地点(この場合はスタート地点)への最短経路が計算されます。
 この情報を使えば敵が自分を追いかけるような処理も簡単に作れますね。


API仕様

API URL】
http://labs.dokokano.net/app/webapi/mazeimage/


【パラメーター】
w : 迷路の横サイズ(ブロック数)
h : 迷路の縦サイズ(ブロック数)
out: 出力形式
 image : PNG画像で出力されます
 text : テキスト形式で出力されます(壁="#",通路=" ")
 html : text形式をHTML用に整形して出力します
mazedata:
 迷路のデータ 
 左上から、壁=1,通路=0の形式をつなげた文字列を渡してください。
 ※省略時はランダム生成されます
seed: 迷路をランダム生成する際の乱数のシード(数値) 
 ※省略時は毎回異なる迷路になります
muiti: 迷路の拡大指定。生成された迷路を拡大する倍率。
 道や壁が太くなる。
 主るよく形式をimageにしている場合、2を指定すると見栄えがよくなる
 ※省略時は1
scale: imageの拡大率(%)
 ※省略時は100 (100%)
route: 0以外を指定すると経路探索結果が表示される


ソースは→こちら