[表示 : 全て 最新50 1-99 2chのread.cgiへ]
Update time : 05/09 22:42 / Filesize : 9 KB / Number-of Response : 45
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 24



1 名前:('A`) mailto:sage [2008/01/23(水) 19:12:56 ]
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 23
pc11.2ch.net/test/read.cgi/tech/1198295362/

教えて欲しいのではなく丸投げしたいならこちらへ
C/C++の宿題を片付けます 103代目
pc11.2ch.net/test/read.cgi/tech/1200318925/

40 名前:デフォルトの名無しさん [2008/01/24(木) 06:17:38 ]
void wall(int p,int q)
{if (meiro[p][q]!=1)
{int dir;
meiro[p][q]=3;
dir = rand()%4+1;
if (dir==1&&meiro[p+2][q]!=3)
{meiro[p+1][q]=3;
wall(p+2,q);}
if (dir==2&&meiro[p-2][q]!=3)
{meiro[p-1][q]=3;
wall(p-2,q);}
if (dir==3&&meiro[p][q+2]!=3)
{meiro[p][q+1]=3;
wall(p,q+2);}
if (dir==4&&meiro[p][q-2]!=3)
{meiro[p][q-1]=3;
wall(p,q-2);
}}}
p,qはmeiro[p][q]に対応していて、meiro[偶数][偶数]の点です。
迷路を自動生成するプログラム作ってます。
色々調べて壁伸ばし法で作ることにして、wall関数なるものを自作しました。
0:道 1:壁 3:作りかけの壁

一応、迷路っぽいものはできるのですが、なんというかすかすかのものができてしまいます。

41 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 10:09:40 ]
続きは?

42 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 18:13:59 ]
>>40
C言語っつーよりアルゴリズムの問題だと思うけど、
どのみちそこだけ出されてもなんとも言えない
wallをどういう風に呼んでるかとか、
どのタイミングと条件でmeiro[x][y]を1にセットするのかとか
わからないと

43 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 20:39:20 ]
しかしみずれえソースだな

44 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 20:45:25 ]
>>40
伸ばす方向に壁ができてたらそれで終わりにしないで、空いている方向を選ぶようにしてみたら?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<9KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef