- 535 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 20:06:23 ]
- >>534 右手沿い
#include<stdio.h> #include<stdlib.h> #include<string.h> int main(int argc, char *argv[]){ int width[100]={0}, height, try_count=0, i, j, x=-1, y=0, d, pd=0; int vx[4]={ 1, 0,-1, 0}, vy[4]={ 0,-1, 0, 1}; if(argc<2) return 1; height=argc-1; for(i=0;i<height;i++){ try_count+=(width[i]=strlen(argv[i+1])); for(j=0;argv[i+1][j];j++) printf("%c ", argv[i+1][j]); printf("\n"); } for(i=0;i<try_count;i++){ for(j=0;j<4;j++){ d=(pd+j+3)%4; if(x+vx[d]<0 || x+vx[d]>=width[y] || y+vy[d]<0 || y+vy[d]>=height) continue; if(argv[y+vy[d]+1][x+vx[d]]!='0') continue; x+=vx[d]; y+=vy[d]; pd=d; break; } if(x==width[y]-1 && y==height-1) break; } if(i<try_count) printf("\nゴールに達した\n"); return 0; }
|

|