Sopa de letras

Hola, necesito el código fuente del programa sopa de letras, este debe poder crear una sopa nueva i guardarla en un fichero i ademas debemos poder jugar. ¿Alguien me puede ayudar?
Gracias de antemano.

1 respuesta

Respuesta
1
Aquí tienes un programa de sopa de letras que te puede servir mucho, el resto es solo jugar y modificarles una cositas.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char matriz[10][10];
char palabra[11], paso[11];
int i, j, r;
void main()
{
srand(rand());
for(i = 0; i < 10; i++)
{
for(j = 0; j < 10; j++)
{
sprintf(paso, "%c", (65 + (int)(24.0 * rand() / (RAND_MAX + 1.0))));
matriz[j] = paso[0];
printf("%c ", matriz[j]);
}
printf("\n");
}
printf("\nIngrese la palabra: ");
scanf("%s", palabra);
/////////////////////Busqueda horizontal////////////////////////
for(i = 0; i < 10; i++)
{
for(r = 0; r < 10; r++)
paso[r] = matriz[r];
paso[10] = '\0';
if(strstr(paso, palabra) != NULL)
{
printf("La palabra fue encontrada en la fila %d: %s\n", (i + 1), paso);
break;
}
}
////////////////////Busqueda vertical//////////////////////////
for(i = 0; i < 10; i++)
{
for(r = 0; r < 10; r++)
paso[r] = matriz[r];
paso[10] = '\0';
if(strstr(paso, palabra) != NULL)
{
printf("La palabra fue encontrada en la columna %d: %s\n", (i + 1), paso);
break;
}
}
///////////////////Busqueda diagonal superior////////////////////
for(i = 0; i < 10; i++)
{
for(r = 0; r < (10 - i); r++)
paso[r] = matriz[r + i][r];
paso[10 - i] = '\0';
if(strstr(paso, palabra) != NULL)
{
printf("La palabra fue encontrada en la %d diagonal superior: %s\n", (i + 1), paso);
break;
}
}
/////////////Busqueda diagonal inferior//////////////////////////
for(i = 0; i < 10; i++)
{
for(r = 0; r < (10 - i); r++)
paso[r] = matriz[r][r + i];
paso[10 - i] = '\0';
if(strstr(paso, palabra) != NULL)
{
printf("La palabra fue encontrada en la %d diagonal inferior: %s\n", (i + 1), paso);
break;
}
}
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas