クラスタリングによる迷路自動生成プログラムです。
ほしい方はどうぞ。
maze.zip
↑修正しました
仕事の関係でCをやることになりそうなので、久々にCを使ってならしをしようと思い作成
ただし、2日で書いたのでわけの分からんプログラムになってます
というかここ数年はオブジェクト指向ばっかだったので、関数の名前の付け方が。。。
センスねぇorz
それと迷路のレイアウトを変えたいって時は、
327行目、328行目の
roadWidth //道の幅
wallWidth //壁の厚さ
を変えてあげればいいです。
あと容量が気になる人は、bmp画像生成後にpngにでもしてください。
それかzipとかでもかなり容量減りますね
一応どんなサイズの迷路にも対応できるように作りました
が、、、、
↑どんなサイズは無理でしたw
unsigned longの許す限りですかね
wallWidth=1;
roadWidth=5;
でやれば9258×9258位は出来そう?
因みに、
1000×1000でやるとやばいですね
時間掛かりすぎますorz
しかも出力がbmpで12000px×12000px(wallWidth=1; roadWidth=10;のとき)なので
アホみたいに容量食いますw(まぁ8bitなんでましですが)
ただ、1000×1000で作ったら、迷路が困ったことになっているので、修正の必要がありそうですね
↑修正済み
死に場所ができていないので、アルゴリズム自体にミスはないがしかし、、、というところ
500×500でもダメだった。。。
randってもともとはintの最大値までしか値返さないんだよねw
500×500の迷路(以前のやつ)
ダメだった古いやつ
以下は100×100迷路
ちょっとプログラムの概要おば
・作成できる迷路サイズは2×2~
・出力はtxtとbmp(8bitビットマップ)(どちらにするか、どっちもか選べます)
・クラスタリングという考え方を使って迷路作成してます
・なので、死に場所が出来ないそうです(いけない所がない)
・あとライブラリとかは使ってないです
因みにマスと壁のナンバリング法則は以下の通りです。
緑・・・マスのインデックス
赤・・・縦の壁のインデックス
黄・・・横の壁のインデックス
ソースに関して分からないことがあれば聞いてください。
以上です。