Advertisement
Guest User

Untitled

a guest
May 24th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 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.  
  11. int render(int l[15][15], int i, int j, int n, int x, int y);
  12. //variáveis
  13. int main(){
  14.  
  15. srand(time(NULL));
  16. int n=15;
  17. int l[n][n];
  18. int i,j,r,x,y;
  19. x=2, y=2;
  20. //Mapa
  21. for (j=0;j<n;j++){
  22. for (i=0;i<n;i++){
  23. //blocos aleatórios
  24. r=rand() % 3;
  25. if(r == 0){
  26. l[i][j]=PAREDE;
  27. }
  28. else{
  29. l[i][j]=LIVRE;
  30. l[2][2]=LIVRE;
  31. l[n-2][n-1]=LIVRE;
  32. }
  33. //blocos definidos
  34. if(j==0)l[i][j]=PAREDE;
  35. if(j==n-1)l[i][j]=PAREDE;
  36. if(i==0)l[i][j]=PAREDE;
  37. if(i==n-1)l[i][j]=PAREDE;
  38.  
  39. }
  40. //
  41.  
  42.  
  43. }
  44. for (j=0;j<n;j++){
  45. printf("\n");
  46. for (i=0;i<n;i++){
  47. l[x][y]=RATO;
  48. switch (l[i][j]){
  49. case LIVRE:
  50. printf("%c",LIVRE);
  51. break;
  52.  
  53. case VISITADA:
  54. printf("%c",VISITADA);
  55. break;
  56.  
  57. case PAREDE:
  58. printf("%c",PAREDE);
  59. break;
  60.  
  61. case BECO:
  62. printf("%c",BECO);
  63. break;
  64.  
  65. case RATO:
  66. printf("%c",RATO);
  67. break;
  68.  
  69. }
  70. }}
  71. /////
  72. sleep(0.1);
  73. //IA
  74. int saida, passa, breca, x2, y2; saida = 1;
  75. //printf("%d \n",saida);
  76. while(saida==1){passa = 0;breca = 0;
  77. if(l[x-1][y]==LIVRE)x2=x-1, y2=y, passa++;
  78. if(l[x+1][y]==LIVRE)x2=x+1, y2=y, passa++;
  79. if(l[x][y-1]==LIVRE)x2=x, y2=y-1, passa++;
  80. if(l[x][y+1]==LIVRE)x2=x, y2=y+1, passa++;
  81. if(passa==0){
  82. if(l[x-1][y]==VISITADA)x2=x-1, y2=y, breca++;
  83. if(l[x+1][y]==VISITADA)x2=x+1, y2=y, breca++;
  84. if(l[x][y-1]==VISITADA)x2=x, y2=y-1, breca++;
  85. if(l[x][y+1]==VISITADA)x2=x, y2=y+1, breca++;
  86. if(breca<=1){l[x][y]=BECO;}else{l[x][y]=VISITADA;}
  87. }else{l[x][y]=VISITADA;}
  88. x=x2, y=y2;
  89. system("cls");
  90.  
  91.  
  92. for (j=0;j<n;j++){
  93. printf("\n");
  94. for (i=0;i<n;i++){
  95. l[x][y]=RATO;
  96. switch (l[i][j]){
  97. case LIVRE:
  98. printf("%c",LIVRE);
  99. break;
  100.  
  101. case VISITADA:
  102. printf(".");
  103. break;
  104.  
  105. case PAREDE:
  106. printf("%c",PAREDE);
  107. break;
  108.  
  109. case BECO:
  110. printf("%c",BECO);
  111. break;
  112.  
  113. case RATO:
  114. printf("%c",RATO);
  115. break;
  116.  
  117. }
  118. }}
  119. /////
  120. sleep(1);
  121. if(passa==0 && saida==0)saida=0;
  122. }
  123.  
  124. return 0;
  125. }
  126. //compositor do mapa
  127. int render(int l[15][15], int i, int j, int n, int x, int y){
  128. //
  129.  
  130. //
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement