Code:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#define n 25
void cargar(char sopa[n][n])
{
int i,j;
srand(time(NULL));
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)sopa[i][j]=(rand()%26)+97;
}
printf("NUEVA SOPA CARGADA");
}
void mostrar(char sopa[n][n])
{
int i,j;
printf("SOPA DE LETRAS\n");
printf("--------------------\n\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{if(j==n-1)
printf("%c\n",sopa[i][j]);
else
printf("%c ",sopa[i][j]);
}
}
}
void invertir(char palabra[])
{
int aux, i, j;
for (i=0, j=strlen(palabra)-1; i<j;i++, j--)
{
aux= palabra[i];
palabra[i] =palabra[j];
palabra[j] =aux;
}
}
int buscacol(char palabra[n],char sopa[n][n])
{
int i,j,aux=0,aux2,encuentra,coord[2];
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if(palabra[aux]==sopa[i][j])
{
for(aux2=1,aux=0;palabra[aux]!='\0' && aux2;aux++)
{
if(palabra[aux]==sopa[i][j+aux])
{
coord[0]=i;
coord[1]=j;
encuentra=1;
}
else
{
aux2=0;
aux=-1;
}
}
if (palabra[aux]=='\0') return (encuentra);
}
}
}
if(encuentra=1)
{
printf("Palabra encontrada en fila:%d Columna:%d",coord[0],coord[1]);
}
}
int buscafil(char palabra[n],char sopa[n][n])
{
int i,j,aux=0,aux2,encuentra,coord[2];
for(j=1;j<n;j++)
{
for(i=1;i<n;i++)
{
if(palabra[aux]==sopa[i][j])
{
for(aux2=1,aux=0;palabra[aux]!='\0' && aux2;aux++)
{
if(palabra[aux]==sopa[i][j+aux])
{
coord[0]=i;
coord[1]=j;
encuentra=1;
}
else
{
aux2=0;
aux=-1;
}
}
if (palabra[aux]=='\0') return (encuentra);
}
}
}
if(encuentra=1)
{
printf("Palabra encontrada en fila:%d Columna:%d",coord[0],coord[1]);
}
}
void main ()
{
char sopa[n][n], palabra[n];
int menu,i,j,h,aux;
printf("Bienvenido, tipee el numero de la opcion que desea\n");
do
{
printf("\n1.-Cargar sopa\n2.-Mostrar sopa\n3.-Buscar palabra\n4.-Salir\n");
scanf("%d",&menu);
switch(menu)
{
case 1:
cargar(sopa);
break;
case 2:
mostrar(sopa);
break;
case 3:
printf("ingrese la palabra que desea buscar y presione enter. \n");
scanf("%s",palabra);
printf("Palabra a buscar:\n");
printf("%s",palabra);
h=strlen(palabra);
printf("\nPalabra de %d letras",h);
printf("\nBuscando...\n");
for(aux=0;aux<1;0)
{
if(buscacol(palabra,sopa))
break;
else{aux++;}
invertir(palabra);
if(buscacol(palabra,sopa))
break;
else{aux++;}
invertir(palabra);
if(buscafil(palabra,sopa))
break;
else{aux++;}
invertir(palabra);
if(buscafil(palabra,sopa))
break;
else{aux++;}
}
if(aux=4)
printf("\nPalabra no encontrada, pruebe con otra.\n");
break;
case 4:
printf("\nCerrando aplicacion\n");break;
default:
printf("\nEntrada invalida, vuelva a intentar.\n");
break;
}
}
while(menu!=4);
}