Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #define MAX 50
  6. using namespace std;
  7.  
  8. void preencher(char m[][MAX],int n,int &X,int &Y);
  9. void imprimir(char m[][MAX],int n);
  10. int mover(char m[12][MAX],int X,int Y);
  11.  
  12. int main()
  13. {
  14. int X=0;
  15. int Y=0;
  16.  
  17. int n=12;
  18.  
  19. char m[MAX][MAX];
  20.  
  21. srand(time(NULL));
  22.  
  23. preencher(m,n,X,Y);
  24.  
  25.  
  26.  
  27. mover(m,X,Y);
  28. if(mover(m,X,Y)==2){
  29. cout<<"O Laberinto possui saida"<<endl;
  30. }
  31.  
  32. cout<<"linha @ x"<<X<<endl;
  33. cout<<"coluna @ y"<<Y<<endl;
  34.  
  35. return 0;
  36. }
  37. void preencher(char m[][MAX],int n,int &X,int&Y)
  38. {
  39. int x=0,c=0,r=0;
  40. int f=0,F=0,d=0;
  41. int f1=0;
  42. for(int i=0; i<n; i++)
  43. {
  44. for(int j=0; j<n; j++)
  45. {
  46. m[i][j]='#';
  47. }
  48. }
  49.  
  50.  
  51.  
  52. for( int k = 0; k <130; k++ )
  53. {
  54. int x = rand()%10 + 1;
  55. int y = rand()%10 + 1;
  56.  
  57. m[x][y] = '.';
  58. }
  59.  
  60. c = rand()%4;
  61. r = rand()%10+1;;
  62.  
  63.  
  64.  
  65.  
  66. if(c ==0 )
  67. {
  68. m[0][r] = 'E';
  69. m[1][r] = '@';
  70. X=1;
  71. Y=r;
  72. m[2][r] = '.';
  73. }
  74. if(c==1)
  75. {
  76.  
  77. m[r][0]='E';
  78. m[r][1] = '@';
  79. X=r;
  80. Y=1;
  81. m[r][2] = '.';
  82.  
  83. }
  84. if(c==2)
  85. {
  86.  
  87. m[11][r] = 'E';
  88. m[10][r] = '@';
  89. X=10;
  90. Y=r;
  91. m[9][r] = '.';
  92. }
  93. if(c==3)
  94. {
  95.  
  96. m[r][11] = 'E';
  97. m[r][10] = '@';
  98. X=r;
  99. Y=10;
  100. m[r][9] = '.';
  101. }
  102.  
  103.  
  104.  
  105. f = rand()%4;
  106. F = rand()%10+1;;
  107.  
  108. if(f==c)
  109. {
  110. while(f==c)
  111. {
  112. f = rand()%4;
  113.  
  114. }
  115. }
  116.  
  117.  
  118. cout<<f<<endl;
  119.  
  120.  
  121. if(f ==0 )
  122. {
  123. m[0][F] = 'F';
  124. if(m[1][F]!='@')
  125. {
  126. m[1][F] = '.';
  127. }
  128. m[2][F] = '.';
  129.  
  130. }
  131. if(f==1 )
  132. {
  133.  
  134. m[F][0]='F';
  135. if(m[F][1]!='@')
  136. {
  137. m[F][1] = '.';
  138. }
  139. m[F][2]='.';
  140.  
  141. }
  142. if(f==2 )
  143. {
  144.  
  145. m[11][F] = 'F';
  146.  
  147. if(m[10][F]!='@')
  148. {
  149. m[10][F] = '.';
  150. }
  151. m[9][F] = '.';
  152. }
  153. if(f==3 )
  154. {
  155.  
  156. m[F][11] = 'F';
  157. if(m[F][10]!='@')
  158. {
  159. m[F][10] = '.';
  160. }
  161.  
  162. m[F][9] = '.';
  163. }
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. }
  171.  
  172. int mover(char m[12][MAX],int X,int Y)
  173. {
  174.  
  175.  
  176. if(m[X][Y]=='F'){
  177. return 2;
  178. }
  179.  
  180. if(m[X][Y-1]!='#'|| m[X][Y-1]!='E'||m[X][Y-1]!='@')
  181. {
  182. m[X][Y-1]='@';
  183. imprimir(m,12);
  184. usleep(100000);
  185. return mover (m,X,Y-1);
  186.  
  187.  
  188. }
  189.  
  190. else if(m[X-1][Y]!='#'||m[X-1][Y]!='E'||m[X-1][Y]!='@')
  191. {
  192. m[X-1][Y]='@';
  193. imprimir(m,12);
  194. usleep(100000);
  195. return mover (m,X-1,Y);
  196. }
  197. else if(m[X][Y+1]!='#'||m[X][Y+1]!='E'||m[X][Y+1]!='@')
  198. {
  199. m[X][Y+1]='@';
  200. imprimir(m,12);
  201. usleep(100000);
  202. return mover (m,X,Y+1);
  203. }
  204. else if(m[X+1][Y]!='#'||m[X][Y+1]!='E'||m[X][Y+1]!='@')
  205. {
  206. m[X+1][Y]='@';
  207. imprimir(m,12);
  208. usleep(100000);
  209. return mover (m,X+1,Y);
  210. }
  211.  
  212. }
  213.  
  214.  
  215. //linha movimentar para cima baixo
  216. //coluna movimentar esquerda direita
  217.  
  218. void imprimir(char m[][MAX],int n)
  219. {
  220. for(int i=0; i<n; i++)
  221. {
  222. for(int j=0; j<n; j++)
  223. {
  224. cout<<m[i][j]<< " ";
  225.  
  226. }
  227. cout<<endl;
  228. }
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement