Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: MM en 1 Junio 2018, 20:14 pm



Título: Ayuda con problema en c++
Publicado por: MM en 1 Junio 2018, 20:14 pm
Hola, soy nuevo en esto de la programación si me pueden ayudar
Tengo que hacer un programa en donde busque si una palabra existe en una sopa de letras, tengo que mostrarla si esta a la derecha y hacia abajo y en que posición. Por ejemplo la palabra casa esta en la posición [5][5] hacia la derecha.


Título: Re: Ayuda con problema en c++
Publicado por: engel lex en 1 Junio 2018, 20:34 pm
recorres toda la matriz buscando la primera letra que coincida, al conseguir, exploras alrededor por la segunda (por ejemplo si solo es abajo y derecha revisas la posición de abajo o derecha por esa posibilidad) luego repites en esa dirección por el resto de la palabra


Título: Re: Ayuda con problema en c++
Publicado por: MM en 1 Junio 2018, 21:39 pm
Para recorrer la matriz se utiliza un for anidado que quedaria en
void Derecha () {
    for(int i=0; i<filas;i++){
   for (int j=0; j<columnas;j++){
}
}
}
Lo que no entiendo es como capturar cuando encuentro la palabra, tengo que crear una variable?


Título: Re: Ayuda con problema en c++
Publicado por: SrMcLister en 2 Junio 2018, 00:17 am
Buenas MM!
Primero, tendrías que tener en algún string la palabra a buscar, luego llamas a la funcion Derecha que has creado y en esa función deberías retornar:
1. O un bool que diga si la palabra está (aunque esto yo lo haría en otra función a parte)
2. i y j, ya que esas dos posiciones son las que te van a indicar donde se encuentra la palabra.

Y la lógica de tu programilla, sería, recorro la matriz hasta que encuentre la primera letra, imagínate que estás buscando "Casa", pues recorres la matriz hasta que

Código
  1. matriz[i][j] == 'C'

A partir de ahí sigues mirando hacia todas direcciones, si encuentras la A, sigues en esa dirección y abandonas la búsqueda en las demás.
Acostúmbrate a usar bools, no escatimes en ellos, ya que para una sopa de letras es una solución muy rápida para saber por donde vas.

Un Saludo y animo!!