elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Sopa de letras que recorra una matriz de direcciones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Sopa de letras que recorra una matriz de direcciones  (Leído 12,483 veces)
amgarciac

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Sopa de letras que recorra una matriz de direcciones
« en: 19 Agosto 2013, 15:56 pm »

Buenas tardes, me gustaría saber cómo podría hacer una sopa de letras que recorra una matriz de direcciones sabiendo que la palabra a buscar es una sola (en todas las direcciones posibles): "OIE". Me gustaría elaborarlo como el siguiente, pero no entiendo el código, es decir, la forma de hacerlo: http://foro.elhacker.net/programacion_cc/sopa_de_letras_respuesta_erronea-t286627.0.html;msg1417535#msg1417535

Así que os agraderceía enormemente cualquier ayuda.

Un saludo.


« Última modificación: 19 Agosto 2013, 23:59 pm por amgarciac » En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Cómo programar una sopa de letras basada en matrices de direcciones
« Respuesta #1 en: 19 Agosto 2013, 16:20 pm »

¿Las salidas son correctas y te da error?: Problema de eficiencia (los jueces online te suelen exigir que los programas se ejecuten en un determinado tiempo), no has seguido las instrucciones de entrada/salida que te indican en la web (el Juez es un programa y tiene implementado un método para leer e imprimir que hay que seguir a rajatabla o no te comprende), etc.

En el link que has añadido te explican que debes comparar letra por letra según la entrada. Te hago un esquema en pseudocódigo:

Código:
SI (i+2 no nos salimos de la cadena) Y (cadena[i] == 'O') Y (cadena[i+1] == 'I') Y (cadena[i+2] == 'E') -> contador++;
i++;

Empieza horizontalmente línea por línea de izquierda a derecha y viceversa hasta el final de la entrada; después lo mismo pero verticalmente y por último en diagonal.

Si no funciona ayudaría que indicaras cuál es exactamente el error que te señala el juez online. Un saludo.


« Última modificación: 19 Agosto 2013, 16:23 pm por Alien-Z » En línea

amgarciac

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Cómo programar una sopa de letras basada en matrices de direcciones
« Respuesta #2 en: 19 Agosto 2013, 16:29 pm »

Disculpe pero el link al que me refería no era ese (había corregido mal el hipervínculo, pq había olvidado cambiar la URL), sino este: http://foro.elhacker.net/programacion_cc/sopa_de_letras_respuesta_erronea-t286627.0.html;msg1417535#msg1417535.

Si observas la respuesta, se juega con una matriz de direcciones, la cual no entiendo en cuanto a los números (0,-1,1) tal y como se colocan para hacer posiciones (digo yo).

Así, que lo que quiero es que me lo expliques con matrices, única manera aceptada. Que con comparaciones sin más ya lo he efectuado de "mil maneras", algo que explicaban en el link que te había puesto al principio equívocamente (el de hispabyte).
« Última modificación: 19 Agosto 2013, 16:31 pm por amgarciac » En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Cómo programar una sopa de letras basada en matrices de direcciones
« Respuesta #3 en: 19 Agosto 2013, 18:45 pm »

¡Buenas!

Olvídate del tema de la OIE, de la UVA o de cualquier otro juez online. Hay problemas en los que por mucho que cambies el formato de salida (muchas veces la causa del error es esta), aunque esta sea correcta te dan errores de respuesta incorrecta.

Hace mucho que los mandé a freír espárragos...

¡Saludos!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
amgarciac

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Cómo programar una sopa de letras basada en matrices de direcciones
« Respuesta #4 en: 19 Agosto 2013, 18:57 pm »

Lo sé, pero quiero comprender la solución de matrices del enlace anterior, que es la única que me ha admitido; mejor dicho, comprender el código para futuras ocasiones pues es la 1ª vez que me enfrento a una matriz de direcciones.

Que por el juez da igual, pues estando bien las salidas de prueba me conformo, y que el de la OIE es tan superestricto que no sé ni lo que decir.

Así que si supieses como va ese código, explícamelo, por favor. Te lo agradecería.
En línea

ghastlyX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.900



Ver Perfil
Re: Sopa de letras que recorra una matriz de direcciones
« Respuesta #5 en: 23 Agosto 2013, 04:19 am »

Primero de todo, lo siento. Todo este tema ha sido porque mi código (precioso, por cierto xDD) no se ha entendido.

A ver, no es que el problema se tenga que hacer con matrices de direcciones, si lo haces BIEN con ifos te entrará, el problema es que el código a base de ifos es generalmente horrible, largo y casi siempre sale un bug.

El código mío en sí es muy simple, sólo que si nunca has visto la idea se hace rara. Hay 8 direcciones posibles para que una palabra aparezca, así que para cada dirección, me creo dos arrays de tamaño 3 con los incrementos de fila y de columna asociados a cada posición en dicha dirección. Para simplificar el código, estos arrays los meto en dos arrays, uno para la fila o y otro para las columnas. De esta manera puedo iterar de manera genérica sobre todas las direcciones con un simple for.

Sé que en el foro los concursos de programación algorítmica y los jueces online son en general bastante odiados, pero he de romper una lanza en su favor xDD. Primero decir que aunque un programa que enviéis de Wrong Answer y a vosotros os vaya bien con los ejemplos que probáis, el error va a ser vuestro, no del juez. Aparte de los casos públicos que se dan en los problemas, los jueces utilizan múltiples casos de prueba privados, buscados especialmente para cazar los errores que el código pueda tener.

Y además de ser divertidos, en estos concursos y jueces se aprende mucho: primero algoritmia y segundo a pensar de manera totalmente abstracta, cosa muy útil para resolver otros tipos de problemas. Además, si se os da bien y se obtienen buenos resultados en concursos, las empresas grandes suelen envíar ofertas de trabajo y cuando digo grandes me refiero a tales como Google o Facebook.
En línea

amgarciac

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Sopa de letras que recorra una matriz de direcciones
« Respuesta #6 en: 23 Agosto 2013, 20:17 pm »

Muchas gracias por su respuesta, aunque al final ya había logrado entender el código comprendiendo la relación filas-columnas con los arrays.

Respecto al planteamiento en base a estructuras condicionales del problema, cierto que puede estar mal planteada según el juez, y sería el caso (si no me equivoco) por sobrepasarse en el análisis del cumplimiento de la condición de celdas inexsistentes.

Por último, me gustaría saber si para este mismo problema así como para otros similares, vamos, sopas de letras cualesquiera, bastaría con meter en las celdas números del -1 al 1, siendo los arrays unidimensionales.

Un saludo.
Buenas tardes.
« Última modificación: 23 Agosto 2013, 20:19 pm por amgarciac » En línea

ghastlyX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.900



Ver Perfil
Re: Sopa de letras que recorra una matriz de direcciones
« Respuesta #7 en: 23 Agosto 2013, 20:32 pm »

La verdad, no entiendo tu pregunta. No sé a qué te refieres con poner números del -1 al 1 en las celdas.
En línea

amgarciac

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Sopa de letras que recorra una matriz de direcciones
« Respuesta #8 en: 24 Agosto 2013, 18:56 pm »

Me explicaré mejor. Quiero saber si esos dos arrays que almacenan direcciones, servirían si fuesen unidimensionales.
En línea

ghastlyX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.900



Ver Perfil
Re: Sopa de letras que recorra una matriz de direcciones
« Respuesta #9 en: 24 Agosto 2013, 20:43 pm »

Sí que puedes. Simplemente tendrías que poner un sólo valor por dirección, que sería el incremento inicial. Entonces desde el código, habría que mantener la suma acumulada en lugar de sumar directamente el valor como hago yo. Las dos maneras son igual de buenas y en un concurso yo haría esta opción, ya que no depende de la longitud de la string y el array es menos engorroso de crear. Hice la otra en aquel momento porque pensé que se entendería mejor el código.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema kon sopa de letras en consola
.NET (C#, VB.NET, ASP)
thedios 4 5,800 Último mensaje 24 Enero 2010, 20:09 pm
por MANULOMM
Sopa de letras
Programación C/C++
Ivanovic 1 3,404 Último mensaje 11 Mayo 2010, 01:32 am
por .:BlackCoder:.
porfa sopa de letras en netbeans
Java
vero2508 7 12,203 Último mensaje 7 Julio 2010, 22:59 pm
por Debci
Sopa de letras
Ejercicios
andrewzsz 1 3,565 Último mensaje 9 Julio 2015, 16:54 pm
por Eleкtro
Haciendo Sopa de Letras
Java
ITenZangetsuB 0 3,775 Último mensaje 28 Octubre 2017, 14:04 pm
por ITenZangetsuB
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines