left.c

00001 #include <stdio.h>
00002 #include <stdlib.h>
00003 #include <math.h>
00004 #include <time.h>
00005 
00006 #define MAX 5
00007 
00008 int map2[MAX][MAX]= { 
00009   { 1,1,1,1,1},
00010   { 2,0,0,0,1},
00011   { 1,0,1,0,1},
00012   { 1,0,1,0,3},
00013   { 1,1,1,1,1} };
00014   
00015 int map[MAX][MAX]={
00016   {1,2,1,1,1},
00017   {1,0,0,0,3},
00018   {1,0,1,1,1},
00019   {1,0,0,0,1},
00020   {1,1,1,1,1}
00021 };
00022 
00023 int now_x=0,now_y=0;
00024 char dir='R';
00025 
00026 
00027 int getWall(){
00028   //printf("getDir\n");
00029   switch (dir){
00030     case'R':if(now_y-1<0 ||map[now_x][now_y-1]!=1)return 0;break;
00031     case'U':if( (now_x-1<0) || map[now_x-1][now_y]!=1)return 0;break;
00032     case'L':if ( map[now_x][now_y+1]!=1)return 0;break;
00033     case'D':if(map[now_x+1][now_y]!=1)return 0;break;
00034   }
00035   return 1;
00036 }
00037 
00038 void turnLeft(){
00039   //printf("Left\n");
00040   switch (dir){
00041     case'R':dir = 'U';now_y--;break;
00042     case'U':dir = 'L';now_x--;break;
00043     case'L':dir = 'D';now_y++;break;
00044     case'D':dir = 'R';now_x++;break;
00045     default:
00046     ;
00047   }
00048   
00049 }
00050 
00051 void turnRight(){
00052   //printf("Right\n");
00053   switch (dir){
00054     case'R':dir = 'D';break;
00055     case'U':dir = 'R';break;
00056     case'L':dir = 'U';break;
00057     case'D':dir = 'L';break;
00058     default:
00059     return ;
00060   }
00061 }
00062 
00063 int main(){
00064   int i,j;
00065   
00066   for(i=0;i<MAX;i++){
00067     for(j=0;j<MAX;j++){
00068       if(map[i][j]==2){
00069         now_x=i;now_y=j;
00070       }
00071       //printf("i = %d,j = %d\n",i,j);
00072     }
00073   }
00074   
00075   printf("start!!\n");
00076   
00077   while(!(map[now_x][now_y]==3)){
00078     printf("dir=%c now_x = %d,now_y = %d \n",dir ,now_x,now_y);
00079     if(getWall()){
00080       turnRight();
00081     }else{turnLeft();}
00082     
00083     //getchar();
00084   }
00085   printf("clear!!\n");
00086 }
00087 

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