Advertisement
Guest User

Untitled

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