Juego sopa de letras
Publicado por fernanda (10 intervenciones) el 12/02/2021 01:19:05
Debo buscar la palabra de forma horizontal a la derecha, vertical(de arriba hacia abajo) y en diagonal hacia del sureste. Por ejemplo la palabra "kl", aparece en el tablero, a partir de la celda del renglón 2 y columna 0, leyendo hacia la "derecha". En el caso de la palabra "dk" aparece a partir de la celda del reglón 1, columna 0 y leyendo hacia "abajo". En el caso de la palabra "dl" aparece a partir de la celda del reglón 1, columna 0 y leyendo hacia el "sureste". Pero la palabra "al", no se encuentra en el tablero, si consideramos únicamente los 3 sentidos válidos.
Me podrían ayudar, ya tengo un ciclo que busca la palabra hacia la derecha pero no sé como buscar de forma vertical y en diagonal, podrían ayudarme por favor, este es mi código.
Me podrían ayudar, ya tengo un ciclo que busca la palabra hacia la derecha pero no sé como buscar de forma vertical y en diagonal, podrían ayudarme por favor, este es mi código.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#define REN 10
#define COL 10
int main(int argc, char *argv[]) {
int renglon, columna;
char caracter, aux;
int tam;
char matriz[REN][COL];
char palabra1[11];
char palabra2[11];
char palabra3[11];
int bandera,contador,longitud;
gets(palabra1);
gets(palabra2);
gets(palabra3);
scanf ("%d",&tam);
scanf ("%c",&aux);
//CICLO PARA LA CAPTURA DE DATOS
for(renglon=0; renglon<tam; renglon++){
for (columna=0; columna<tam; columna++){
scanf ("%c", &matriz[renglon][columna]);
scanf ("%c", &aux);
}
}
for(renglon=0; renglon<tam; renglon++){
for (columna=0; columna<tam; columna++){
if (matriz[renglon][columna] == palabra1[0]){
//comenzamos a buscar la palabra
//DERECHA (IMPLEMENTAMOS UN CICLO QUE BUSQUE A LA DERECHA LA SUIGUENTE LETRA DE LA PALABRA)
longitud= strlen(palabra1);
bandera=1;
for (contador=1;contador<longitud && columna+contador<tam; contador++);//controla no exceder a la longitud de la palabra
if (matriz [renglon][columna+contador] == palabra1[contador]){
bandera=0; // si la bandera cambia a cero es por que la palabra no se encuentra a la deracha
break;
}
}
//verificar el codigo cuando termine
//si todos los caracteres coincidieron
if (bandera==1 && contador==longitud ){
//imprimir las coordenadas
printf ("%c:%d %d derecha,",palabra1, renglon,columna);
}
//SURESTE
//ABAJO
}
}
return 0;
}
Valora esta pregunta
0