忍者ブログ

姉好き変態プログラマーの備忘録

色んな言語に手を出そうとする自分へのメモ・・・

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

迷路自動生成プログラム クラスタリング

クラスタリングによる迷路自動生成プログラムです。
ほしい方はどうぞ。

拍手

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ビットマップ)(どちらにするか、どっちもか選べます)
・クラスタリングという考え方を使って迷路作成してます
・なので、死に場所が出来ないそうです(いけない所がない)
・あとライブラリとかは使ってないです

因みにマスと壁のナンバリング法則は以下の通りです。

緑・・・マスのインデックス
赤・・・縦の壁のインデックス
黄・・・横の壁のインデックス


ソースに関して分からないことがあれば聞いてください。
以上です。

PR

Comment

お名前
タイトル
E-MAIL
URL
コメント
パスワード

Copyright © 姉好き変態プログラマーの備忘録 : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]

管理人限定

プロフィール

HN:
うみ
性別:
男性
趣味:
ソフト開発、ゲーム、機械弄り
自己紹介:
色んな言語に手を出そうとしています
よくわからないことを自分のためにメモします
たまに別のこともつぶやきます
姉しよっ!の海お姉ちゃんが大好きです
・・・変態です

最新コメント

[04/25 Smithe385]
[04/12 名無しの弟]
[04/08 名無しの弟]
[03/29 名無しの弟]
[03/21 名無しの弟]

カレンダー

06 2017/07 08
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

ブログ内検索