elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Laberinto C++ en: 30 Septiembre 2016, 08:30 am
Bueno, gracias por la ayuda, hice varias modificaciones y ahora ya consigo que me genere un camino, pero ahora que lo ejecuto no me muestra automáticamente la solución.
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <iostream.h>
  4. #include <stdlib.h>
  5. #include <time.h>
  6.  
  7. int lab[12][12];
  8. int iniciocol=0, iniciofila=0, caminfila=0, camincol=1, decidir=0, pared=1, espacio=0, yapaso=2, novolver=3;
  9.  
  10. main(){
  11. /*se asignan paredes*/
  12.   for(int i=0; i<12; i++){
  13.    for(int j=0; j<12;j++){
  14. lab[i][j] = pared;
  15.         }
  16.      }
  17.  
  18. /*se genera el inicio*/
  19. srand(time(NULL));
  20. iniciofila = (1+rand()%(6-1));
  21.  
  22. /*Asignamos la entrada y declaramos el pasillo de entrada*/
  23. lab[iniciofila][iniciocol] = espacio;
  24. caminfila = iniciofila;
  25. lab[caminfila][camincol] = espacio;
  26.  
  27.   /*Creamos el camino*/
  28. while(caminfila < 11 && camincol < 11){
  29. decidir = rand()%3;
  30. if (decidir == 0){ /*camino se fabrica a la izquierda*/
  31. camincol = camincol-1;
  32. if(camincol < 1){
  33. camincol = camincol+1;
  34. } else {
  35. lab[caminfila][camincol] = espacio;
  36. camincol++;
  37. }
  38. }
  39.  
  40.     if(decidir ==1 ) { /*camino para abajo*/
  41. caminfila++;
  42. lab[caminfila][camincol] = espacio;
  43. } else if (decidir == 2){   /*camino a la derecha*/
  44. camincol++;
  45. lab[caminfila][camincol] = espacio;
  46. }
  47.  
  48. }
  49.  
  50. /*Se crean caminos falsos*/
  51. for(int i=1; i<11; i++){
  52. for(int j=1;j<11;j++){
  53. if (lab[i][j] != espacio) {
  54. decidir = rand()%2;
  55. if(decidir==0){
  56. lab[i][j] = espacio;
  57. }
  58. }
  59. }
  60. }
  61.  
  62. /*Se resuelve el laberinto*/
  63. lab[iniciofila][iniciocol] = yapaso;
  64. caminfila = iniciofila;
  65. camincol = iniciocol;
  66. while(caminfila<12){
  67. if(lab[caminfila+1][camincol] == espacio){
  68. caminfila++;
  69. lab[caminfila][camincol] = yapaso;
  70. } else if(lab[caminfila][camincol+1] == espacio){
  71. camincol++;
  72. lab[caminfila][camincol] = yapaso;
  73. } else if(lab[caminfila-1][camincol] == espacio){
  74. caminfila--;
  75. lab[caminfila][camincol] = yapaso;
  76.  
  77. } else if(lab[caminfila][camincol-1] == espacio){
  78. camincol--;
  79. lab[caminfila][camincol] = yapaso;
  80. } else if((lab[caminfila+1][camincol] != espacio) && (lab[caminfila][camincol+1] != espacio) && (lab[caminfila-1][camincol] != espacio)){
  81. lab[caminfila][camincol] = novolver;
  82. camincol--;
  83. } else if((lab[caminfila+1][camincol] != espacio) && (lab[caminfila][camincol+1] != espacio) && (lab[caminfila][camincol-1] != espacio)){
  84. lab[caminfila][camincol] = novolver;
  85. caminfila--;
  86. } else if((lab[caminfila+1][camincol] != espacio) && (lab[caminfila][camincol+1] != espacio) && (lab[caminfila-1][camincol] != espacio)){
  87. lab[caminfila][camincol] = novolver;
  88. camincol++;
  89. } else if((lab[caminfila-1][camincol] != espacio) && (lab[caminfila][camincol+1] != espacio) && (lab[caminfila-1][camincol] != espacio)){
  90. lab[caminfila][camincol] = novolver;
  91. caminfila++;
  92. }
  93. }
  94.  
  95.  
  96.   /*muestra el laberinto*/
  97.   for(int i=0; i<12; i++){
  98.     for(int j=0; j<12;j++){
  99. if(lab[i][j] == pared){
  100. cout<<"#";
  101. cout<<" ";
  102. } else if((lab[i][j] == espacio) || lab(lab[i][j] == novolver)) {
  103. cout<<".";
  104. cout<<" ";
  105. } else if (lab[i][j] == yapaso){
  106. cout<<"X";
  107. cout<<" ";
  108. }
  109.  }
  110.   cout<<"\n";
  111.   }
  112.   getchar();
  113. }
2  Programación / Programación C/C++ / Laberinto C++ en: 25 Septiembre 2016, 08:03 am
¿Alguien me podría ayudar con este código?

Necesito que se genere solo una entrada y una salida.
En el código actual se genera más de un camino a la vez y necesito que sea solo uno conectado con la entrada y salida.  :-\

Agrego: Estoy compilando en Borland C++

Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <iostream.h>
  4. #include <stdlib.h>
  5. #include <time.h>
  6.  
  7. int lab[11][11];
  8. int iniciocol=0, iniciofila=0, fincol=0, finfila=0, caminfila=0, camincol=0, decidir=0, pared=1, espacio=0;
  9.  
  10. main(){
  11. /*se asignan paredes*/
  12.   for(int i=0; i<12; i++){
  13.    for(int j=0; j<12;j++){
  14. lab[i][j] = pared;
  15.         }
  16.      }
  17.  
  18.  
  19. /*se genera el inicio*/
  20.   srand(time(NULL));
  21.   iniciocol = (1+rand()%(11-1));
  22.   if (iniciocol == 0) {
  23.     iniciofila = (1+rand()%(11-1));
  24.   } else {
  25.     iniciofila = 0;
  26.   }
  27.  
  28.   /*Asignamos la entrada y salida y declaramos para empezar a crear el camino*/
  29.   lab[iniciofila][iniciocol] = espacio;
  30.   caminfila = iniciofila++;
  31.   camincol = iniciocol;
  32.   lab[caminfila][camincol] = espacio;
  33.  
  34.   /*Creamos el camino*/
  35. while(caminfila < 11 && camincol < 11){
  36. decidir = rand()%4;
  37. if (decidir == 0){ /*camino se fabrica a la izquierda*/
  38. camincol = camincol-1;
  39. lab[caminfila][camincol] = espacio;
  40. } else if(decidir ==1 ) { /*camino para abajo*/
  41. caminfila++;
  42. lab[caminfila][camincol] = espacio; /*camino a la derecha*/
  43. } else if (decidir == 2){
  44. camincol++;
  45. lab[caminfila][camincol];
  46. }
  47.  
  48. }
  49.  
  50.   /*muestra el laberinto*/
  51.   for(int i=0; i<12; i++){
  52.     for(int j=0; j<12;j++){
  53. if(lab[i][j] == pared){
  54. cout<<"#";
  55. cout<<" ";
  56. } else {
  57. cout<<".";
  58. cout<<" ";
  59. }
  60.      }
  61.   cout<<"\n";
  62.   }
  63.   getchar();
  64. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines