eduardovp97

Rat in Maze

Sep 20th, 2016
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define N 4
  4.  
  5. void printArray(int lab[N][N]);
  6. int ratInMaze(int lab[N][N], int x, int y);
  7. int isValid(int lab[N][N], int x, int y, int i);
  8.  
  9. int mov[2][2];
  10.  
  11. int main(){
  12.  
  13.     mov[0][0] = 0;
  14.     mov[0][1] = 1;
  15.     mov[1][0] = 1;
  16.     mov[1][1] = 0;
  17.  
  18.     int lab[N][N] = {{0,1,1,1},{0,0,1,1},{1,0,1,1},{1,0,0,0}};
  19.     if(ratInMaze(lab,0,0)){
  20.         printArray(lab);
  21.     }else{
  22.         printf("No existe solucion.\n");
  23.     }
  24.  
  25.     return 0;
  26. }
  27.  
  28. void printArray(int lab[N][N]){
  29.     int i;
  30.     int j;
  31.     for(i=0; i<N; i++){
  32.         for(j=0; j<N; j++)
  33.             printf("%d ",lab[i][j]);
  34.         printf("\n");
  35.     }
  36. }
  37.  
  38. int ratInMaze(int lab[N][N], int x, int y){
  39.     if(x == N-1 && y==N-1){
  40.         lab[0][0] = 2;
  41.         return 1;
  42.     }
  43.     int i;
  44.     for(i=0; i<2; i++){
  45.         if(isValid(lab,x,y,i)){
  46.             int newx = x + mov[i][0];
  47.             int newy = y + mov[i][1];
  48.             lab[newx][newy] = 2;
  49.             if(ratInMaze(lab,x + mov[i][0],y + mov[i][1])){
  50.                 return 1;
  51.             }else{
  52.                 lab[newx][newy] = 0;
  53.             }
  54.         }
  55.     }
  56.     return 0;
  57. }
  58.  
  59. int isValid(int lab[N][N], int x, int y, int i){
  60.     int newx = x + mov[i][0];
  61.     int newy = y + mov[i][1];
  62.  
  63.     if(lab[newx][newy] == 0)
  64.         return 1;
  65.     return 0;
  66. }
Add Comment
Please, Sign In to add comment