Ayuda con problema en c++

Iniciado por MM, 1 Junio 2018, 20:14 PM

0 Miembros y 2 Visitantes están viendo este tema.

MM

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.

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MM

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?

SrMcLister

#3
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 (cpp) [Seleccionar]

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!!
Código (cpp) [Seleccionar]

return((u.areHappy() && u.knowIt()) ? u.clapYourHands() : u.goFuckYourself());