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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: [1]
1  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