- 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
伸ばす方向に壁ができてたらそれで終わりにしないで、空いている方向を選ぶようにしてみたら?
|

|