- 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:作りかけの壁 一応、迷路っぽいものはできるのですが、なんというかすかすかのものができてしまいます。
|

|