maze.c

00001 #include<stdio.h>
00002 
00003 int A[5][5]={{1,1,1,1,1},
00004              {2,0,0,0,1},
00005              {1,0,1,0,1},
00006              {1,0,1,0,1},
00007              {1,3,1,1,1}};
00008 
00009 int B[5][5]={{0,0,0,0,0},
00010              {0,0,0,0,0},
00011              {0,0,0,0,0},
00012              {0,0,0,0,0},
00013              {0,0,0,0,0}};
00014 
00015 int main(void){
00016   int i,j;
00017   int Si,Sj;
00018   int s,k,a;
00019 
00020   for(i=0;i<5;i++){
00021     for(j=0;j<5;j++){
00022       if(A[i][j]==2){
00023         B[i][j]=1;
00024         Si=i;
00025         Sj=j;
00026         break;
00027       }
00028     }
00029   }
00030   i=Si;
00031   j=Sj;
00032 
00033   for(s=0;s<8;s++){
00034     int  C[4]={0,0,0,0};
00035 
00036     if(A[i][j]==3){
00037       printf("GOAL\n");
00038       break;
00039     }
00040     //up
00041     if(i==0 || A[i-1][j]==1 || B[i-1][j]>0 )
00042       C[0]=1;
00043     //right
00044     if(j==5 || A[i][j+1]==1 || B[i][j+1]>0)
00045       C[1]=1;
00046     //down
00047     if(i==5 || A[i+1][j]==1 || B[i+1][j]>0)
00048       C[2]=1;
00049     //left
00050     if(j==0 || A[i][j-1]==1 || B[i][j-1]>0)
00051       C[3]=1;
00052     for(k=0;k<5;k++){
00053       if(k==4)
00054         a=4;
00055       else if(C[k]==0){
00056         a=k;
00057         break;
00058       }
00059     }
00060 
00061     printf("%d\n",a);
00062     //idou
00063     if(a==0){
00064       i=i-1;
00065     }
00066     if(a==1){
00067       j=j+1;
00068     }
00069     if(a==2){
00070       i=i+1;
00071     }
00072     if(a==3){
00073       j=j-1;
00074     }
00075     if(a==4){
00076       B[i][j]=9;
00077       //back
00078       //up
00079       if(i!=0 && B[i-1][j]==1)
00080         i=i-1;
00081       //right
00082       if(j!=5 && B[i][j+1]==1)
00083         j=j+1;
00084       //down
00085       if(i!=5 && B[i+1][j]==1)
00086         i=i+1;
00087       //left
00088       if(j!=0 && B[i][j-1]==1)
00089         j=j-1;
00090     }
00091     printf("%d %d\n",i,j);
00092     B[i][j]=1;
00093     
00094   }
00095   
00096   for(i=0;i<5;i++){
00097     for(j=0;j<5;j++){
00098       printf("%d",B[i][j]);
00099     }
00100     printf("\n");
00101   }
00102 
00103   return 0;
00104 }
00105 

Generated on Mon Apr 13 22:52:01 2009 by  doxygen 1.5.7.1