SHARE
TWEET

Untitled

a guest May 24th, 2019 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <unistd.h>
  5. #define RATO 1
  6. #define LIVRE 32
  7. #define VISITADA 45
  8. #define BECO 176
  9. #define PAREDE 219
  10. int render(int l[15][15], int i, int j, int n, int x, int y);
  11. //variáveis
  12. int main(){
  13.    
  14.     srand(time(NULL));
  15.     int n=15;
  16.     int l[n][n];
  17.     int i,j,r,x,y;
  18.     x=2, y=2;
  19.         //Mapa
  20.     for (j=0;j<n;j++){
  21.         for (i=0;i<n;i++){
  22.             //blocos aleat├│rios
  23.             r=rand() % 3;
  24.             if(r == 0){
  25.                 l[i][j]=PAREDE;
  26.             }
  27.             else{
  28.                 l[i][j]=LIVRE;
  29.                 l[2][2]=LIVRE;
  30.                 l[n-2][n-1]=LIVRE;
  31.             }
  32.             //blocos definidos
  33.             if(j==0)l[i][j]=PAREDE;
  34.             if(j==n-1)l[i][j]=PAREDE;
  35.             if(i==0)l[i][j]=PAREDE;
  36.             if(i==n-1)l[i][j]=PAREDE;
  37.            
  38.         }
  39.         //
  40.        
  41.            
  42.     }
  43.         for (j=0;j<n;j++){
  44.         printf("\n");
  45.         for (i=0;i<n;i++){
  46.         l[x][y]=RATO;
  47.                 switch (l[i][j]){
  48.                     case LIVRE:
  49.                     printf("%c",LIVRE);
  50.                     break;
  51.                    
  52.                     case VISITADA:
  53.                     printf("%c",VISITADA);
  54.                     break;
  55.                    
  56.                     case PAREDE:
  57.                     printf("%c",PAREDE);
  58.                     break;
  59.                    
  60.                     case BECO:
  61.                     printf("%c",BECO);
  62.                     break;
  63.                    
  64.                     case RATO:
  65.                     printf("%c",RATO);
  66.                     break;
  67.                
  68.             }
  69.         }}
  70.         /////
  71.         sleep(3);
  72.         //IA
  73.     int saida, passa, breca, x2, y2; saida = 1;
  74.     //printf("%d \n",saida);
  75.     while(saida==1){passa = 0;breca = 0;
  76.         if(l[x-1][y]==LIVRE)x2=x-1, y2=y, passa++;
  77.         if(l[x+1][y]==LIVRE)x2=x+1, y2=y, passa++;
  78.         if(l[x][y-1]==LIVRE)x2=x, y2=y-1, passa++;
  79.         if(l[x][y+1]==LIVRE)x2=x, y2=y+1, passa++;
  80.         if(passa==0){
  81.         if(l[x-1][y]==VISITADA)x2=x-1, y2=y, breca++;
  82.         if(l[x+1][y]==VISITADA)x2=x+1, y2=y, breca++;
  83.         if(l[x][y-1]==VISITADA)x2=x, y2=y-1, breca++;
  84.         if(l[x][y+1]==VISITADA)x2=x, y2=y+1, breca++;
  85.         if(breca<=1){l[x][y]=BECO;}else{l[x][y]=VISITADA;}
  86.         }else{l[x][y]=VISITADA;}
  87.         x=x2, y=y2;
  88.         system("cls");
  89.        
  90.  
  91.         for (j=0;j<n;j++){
  92.         printf("\n");
  93.         for (i=0;i<n;i++){
  94.         l[x][y]=RATO;
  95.                 switch (l[i][j]){
  96.                     case LIVRE:
  97.                     printf("%c",LIVRE);
  98.                     break;
  99.                    
  100.                     case VISITADA:
  101.                     printf(".");
  102.                     break;
  103.                    
  104.                     case PAREDE:
  105.                     printf("%c",PAREDE);
  106.                     break;
  107.                    
  108.                     case BECO:
  109.                     printf("%c",BECO);
  110.                     break;
  111.                    
  112.                     case RATO:
  113.                     printf("%c",RATO);
  114.                     break;
  115.                
  116.             }
  117.         }}
  118.         /////
  119.         sleep(1);
  120.         if(passa==0 && saida==0)saida=0;
  121.     }
  122.    
  123.     return 0;
  124. }
  125. //compositor do mapa
  126. int render(int l[15][15], int i, int j, int n, int x, int y){
  127.     //
  128.    
  129.         //
  130.     }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top