Advertisement
alexarcan

Probl_LABIRINTULUI

Dec 11th, 2014
386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.04 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int dx[4] = {-1,0,0,1};
  4. int dy[4] = {0,-1,1,0};
  5. int Px , Py , Ex, Ey, Sx,Sy;
  6. int A[4][4];
  7.  
  8.  
  9. int acceptable(int k){
  10.  
  11.     if ((Px + dx[k] >= 0) && (Py + dy[k] >= 0))
  12.     if ((Px + dx[k] <= 3) && (Py + dy[k] <= 3))
  13.     if (A[Px + dx[k]][Py + dy[k]] == 0)
  14.         return 1;
  15.     return 0;
  16.  
  17.  
  18. }
  19.  
  20. int solution(int k, int i){
  21.     if (Px == Ex && Py == Ey)
  22.         return 1;
  23.     return 0;
  24. }
  25.  
  26. void printsolution(){
  27.  
  28.     for (int i = 0; i < 4; i++)
  29.     {
  30.         for (int j = 0; j < 4; j++)
  31.             printf("  %d  ", A[i][j]);
  32.         printf("\n");
  33.     }
  34. }
  35.  
  36. void back(int i){
  37.  
  38.     for (int k = 0; k < 4; k++)
  39.     if (acceptable(k)){
  40.         A[Px + dx[k]][Py + dy[k]] = 1;
  41.         Px = Px + dx[k];
  42.         Py = Py + dy[k];
  43.  
  44.         if (solution(k, i)){
  45.             printsolution();
  46.             printf("\n");
  47.         }
  48.  
  49.         else
  50.             back(i + 1);
  51.  
  52.         A[Px][Py] = 0;
  53.         Px = Px - dx[k];
  54.         Py = Py - dy[k];
  55.     }
  56.  
  57. }
  58.  
  59.  
  60. int main(void){
  61.     Sx = 0; Sy = 0;
  62.     Ex = 3; Ey = 3;
  63.     Px = 0; Py = 0;
  64.  
  65.     A[Px][Py] = 1;
  66.  
  67.     A[1][0] = 99;
  68.     A[1][1] = 99;
  69.     A[2][1] = 99;
  70.     A[2][2] = 99;
  71.     A[3][2] = 99;
  72.     A[0][3] = 99;
  73.    
  74.  
  75.     back(1);
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement