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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con función recursiva.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con función recursiva.  (Leído 2,476 veces)
Javi.24

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con función recursiva.
« en: 15 Junio 2012, 12:32 pm »

Buenas!

Tengo que hacer un trabajo de programación en C y teniendo un dibujo como este (tratándolo como una matriz) tengo que hacer que el usuario ponga una coordenada, y que en el punto donde ha seleccionado, se tiene que llenar de asteriscos(*) hasta encontrar frontera con otros asteriscos. Vamos como la función del paint de rellear una región con un color.

El dibujo es este: http://i.imgur.com/PMesd.png

Así que si el punto que el usuario ha seleccionado está dentro de una de las ventanas de la casa, esa ventana debería llenarse de asteriscos.

He estado probando algunas ideas pero lo máximo que puedo hacer es esto:
Donde q[a][.b] es la matriz, y "a" es el número de filas y "b" columnas.
(Pongo el punto antes de la "b" porque sino lo pone en negrita XD)

void rellenar(int a, int b, char **q){

if(q[a][.b]=='*'){
return;
}
if(q[a][.b]!='*'){
q[a][.b]='*';

   if(q[a][b+1]!='*'){
   q[a][b+1]='*';
   }
       if(q[a][b-1]!='*'){
       q[a][b-1]='*';
       }
           if(q[a-1][.b]!='*'){
           q[a-1][.b]='*';
           }
               if(q[a+1][.b]!='*'){
               q[a+1][.b]='*';
               }
                   if(q[a+1][b+1]!='*'){
                   return rellenar(a+1,b+1,q);
                   }
}
}


Tengo que entregar el trabajo el lunes y estoy desesperado.
Agradecería cualquier ayuda, gracias!


En línea

GuzmanG

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con función recursiva.
« Respuesta #1 en: 16 Junio 2012, 05:41 am »

Hola como andas?

Por lo que yo veo, con la solución que planteas no estarías cubriendo todos los casos que podrían presentarse.

Quizás puedas encararlo por el lado de solamente preguntar si hay * o no en la celda que te llega como parámetro (en este caso a y b) y despues tratar de ver como podes llegar a hacerlo recursivo para las celdas circundantes (las 8 celdas a sus lados).

Yo tuve que hacer algo similar para la solución de un Buscaminas (cuando descubris una celda vacía) y creo que con algo del estilo pude resolverlo.


Intentá sacarlo por este lado si queres y y cualquier consulta avisa.
Saludos,


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema función factorial recursiva
Java
Oblivi0n 1 2,282 Último mensaje 4 Octubre 2012, 19:03 pm
por die_guito
AYUDA Función Recursiva
Programación C/C++
dvigon 6 3,302 Último mensaje 20 Diciembre 2013, 02:13 am
por dvigon
Programacion con Funcion Recursiva Ayuda
Programación C/C++
DRinoa 2 1,776 Último mensaje 11 Octubre 2015, 12:53 pm
por user-marcos
ayuda con este programa con funcion recursiva
Programación C/C++
mikany 3 2,145 Último mensaje 7 Febrero 2017, 11:18 am
por do-while
ayuda.funcion recursiva
Java
jkaszr 1 1,562 Último mensaje 21 Abril 2017, 01:08 am
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines