Advertisement
RMO94

Untitled

Feb 11th, 2016
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. #define INFINITO 999999999
  6. #define MAXCOL 7
  7.  
  8. int camino_mas_corto(int mapa[][MAXCOL], int fila, int columna, int pasos);
  9.  
  10.  
  11. int main(){
  12. //Mapa de ejemplo del enunciado.
  13. //Crea tus propios mapas de prueba. Recuerda que:
  14. // - Los -1 son celdas de muro
  15. // - Los 0 son celdas que se pueden recorrer
  16. // - El -2 es la celda inicial que usamos para comenzar a buscar la salida
  17. // - El -3 es la salida que debes buscar usando la funcion camino_mas_corto()
  18. int mapa[18][MAXCOL] = {
  19. {-1,0,0,0,0,0,0},
  20. {0,-1,0,0,0,0,0},
  21. {0,0,-1,0,-1,0,0},
  22. {-2,0,-1,0,-1,0,-3},
  23. {0,0,-1,0,-1,0,0},
  24. {0,0,-1,0,-1,0,0},
  25. {0,0,0,0,-1,0,0},
  26. {0,0,-1,0,-1,0,0},
  27. {0,0,-1,0,-1,0,0},
  28. {0,0,-1,0,-1,0,0},
  29. {0,0,0,0,-1,0,0},
  30. {0,0,0,0,-1,0,0},
  31. {0,0,0,0,-1,0,0},
  32. {0,0,0,0,-1,0,0},
  33. {0,0,0,0,-1,0,0},
  34. {0,0,0,0,-1,0,0},
  35. {0,0,0,0,-1,0,0},
  36. {0,0,0,0,0,0,0}
  37. };
  38.  
  39.  
  40. //Tu programa sigue aqu�
  41.  
  42. return 0;
  43. }
  44.  
  45. int camino_mas_corto(int mapa[][MAXCOL], int fila, int columna, int pasos){
  46.  
  47. //T� c�digo en C++ para la funci�n recursiva va aqu�
  48. /*
  49. int arriba, abajo, dcha, izda;
  50.  
  51. Si estamos en la celda de la salida
  52. Devolver pasos;
  53.  
  54. //anotamos los pasos que hemos dado hasta llegar aqu�
  55. mapa[fila][columna] = pasos;
  56.  
  57. Si podemos avanzar a la celda de la izquierda Y mapa[fila][columna-1] > pasos+1
  58. izda = camino_mas_corto(mapa, fila, columna-1, pasos+1);
  59. Si podemos avanzar a la celda de la derecha Y mapa[fila][columna+1] > pasos+1
  60. dcha = camino_mas_corto(mapa, fila, columna+1, pasos+1);
  61. Si podemos avanzar a la celda inferior Y mapa[fila+1][columna] > pasos+1
  62. abajo = camino_mas_corto(mapa, fila+1, columna, pasos+1);
  63. Si podemos avanzar a la celda superior Y mapa[fila-1][columna] > pasos+1
  64. arriba = camino_mas_corto(mapa, fila-1, columna, pasos+1);
  65. Si no podemos avanzar a ning�n lado
  66. Devolver INFINITO;
  67.  
  68. //Han terminado las llamadas recursivas, debemos devolver
  69. //el camino m�s corto encontrado por todas
  70. Devolver minimo(izda, dcha, arriba, abajo);
  71. */
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement