Advertisement
Guest User

Untitled

a guest
May 24th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement