旗を押して見る スペースキーを押しながら押すと ランダムなmapになる またaキーを押しながら押した場合は 探索の様子が見れる a&スペースも可 画面の見方 白:なにもない 黒:壁 赤色:閉じた領域 マゼンタ(ピンク色みたいな):一番大きい閉じた領域 緑:探索用のカウントの位置 シアン(水色みたいな): 探索したが周りを探索していないタイル 青:探索して周りも探索したタイル 正確にはa-cアルゴリズムとは少し違う まあ計算速度は上がった改良だろうが メモリつまり一時記憶を使う量が増えた 改良点として Not surrounded ristを作った つまり閉じた領域ではないリストを作った まず元のアルゴリズムの場合 閉じた領域ではないとわかった場合は 記録を一切しない つまり閉じた領域ではないと1度わかっても 再びそこを処理する必要性が出てくる そのため閉じた領域ではない領域も調べ記録し 一度閉じた領域ではないとわかった場所をスルーするようにして高速化を図った また別の改良点として リストで毎回cにあるものを aから引くのは非効率と考え タイルの探索毎にa,cにあるかをチェックし a,cに存在したタイルだった場合スルーするようにして コードの短縮と高速化を図った
https://www.youtube.com/watch?v=IAGD0HtdMxk これを参考に作りました