Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ralg98 en 1 Junio 2013, 11:30 am



Título: un reto, programa que encuentre todas las palabras en el menor tiempo
Publicado por: ralg98 en 1 Junio 2013, 11:30 am
hola se que me incrivi hace poco pero seguia el forum como anonimo, tengo una pregunta que hacerles, de tiempo voy jugando ruzzle y quise hacer un algoritmo que me permita encontrar todas las palabras posibles y asi acumular el mejor score, para los que no conocieran el juego se trata de una matriz de letras 4 x 4 donde, escoges una letra y respecto a ella te puedes mover indistintamente sea acia arriba, abajo izquierda derecha en forma oblicua, de manera que formes una palabra, cuanto mas grande es la palabra mas puntos tienes, el diccionario pienso tenerlo en un file che viene llamado del programa, y que me permite confrontar si la palabra existe o no, espero haber sido claro, el lenguaje que tengo a dispocicion es lenguaje c, la matriz de letras viene caragada da un file y il programa debe generar un file con las palabras encontradas y el escore
gracias anticipadamente por su ayuda

(http://C:\Users\Baci\Pictures\ruzzle.jpg)
(http://C:\Users\Baci\Pictures\matriz.jpg)



Título: Re: un reto, programa que encuentre todas las palabras en el menor tiempo
Publicado por: BlackM4ster en 1 Junio 2013, 14:05 pm
No es dificil:
Una funcion que lea la matriz y otra que vaya leyendo posibles palabras y las guarde en una lista
Ánimo


Título: Re: un reto, programa que encuentre todas las palabras en el menor tiempo
Publicado por: amchacon en 1 Junio 2013, 14:11 pm
Vas cogiendo palabras del diccionario y probando.


Título: Re: un reto, programa que encuentre todas las palabras en el menor tiempo
Publicado por: daryo en 1 Junio 2013, 15:13 pm
bue lo que se me ocurre es lo siguente:
1.el programa primero recorre la matriz de forma horizontal tomando los primeros 4 caracteres
2.los une a todos en una cadena
3. luego con el diccionario que sera un archivo de texto plano supongo yo se buscan subcadenas que son las palabras de el diccionario(hay muchas formas de hacerlo) en caso de encontrarlos ya tienes una palabra encontrada
4. se le da vuelta a la cadena y se repite el proceso para ver si hay palabras al revez
5.toma los 4 caracteres que le siguen de forma horizontal y se repite el proceso
6. el mismo proceso pero de forma vertical
7. en caso de haber diagonales lo unico a cambiar seria que la primera cadena que toma inicia con un caracter la cadena segunda tomaria dos caracteres asi hasta 4 y luego otra vez se le resta  de uno en uno


Título: Re: un reto, programa que encuentre todas las palabras en el menor tiempo
Publicado por: ralg98 en 1 Junio 2013, 20:45 pm
Vas cogiendo palabras del diccionario y probando.

gracias por sus respuestas, mi duda esta en como hacer en codigo, basicamente, para seleccionar las palabras de la matriz y confrontarlas con el diccionario qu tengo desde esta mañana que voy provando y no me viene un resultado