Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





NJ Sudoku

Iniciado por AgeR, 09 de Julio de 2007, 01:44:32 PM

« anterior - próximo »

Mars Attacks

Vale, entonces la versión chachi: cuando el jugador añade un número, lo envías a la red, donde tu servidor lo recoge y lanza un programa en prolog que resuelve recursivamente todas las posibilidades para el sudoku. Luego, eliges una pista al azar y se la devuelves al jugador :D

En fin, si sabes cómo resolver el sudoku con los datos que das al comienzo, el dar pistas sólo se basa en eso, ¿no? A medida que el player introduzca un número, compruebas si existe una solución para lo que él ha hecho. Si la hay, te quedas con esa solución como "solución original", y la pista será uno de los valores de esa solución que aún no esté descubierto. Si no la hay, el número estaba mal (por cierto, por curiosidad, ¿qué haces si han puesto un número mal?) y la pista será uno de los valores de la última solución posible.

Lo malo es que supongo que, incluso con backtracking, el tiempo de cálculo puede ser un poco alto.

synchrnzr

CitarPero eso puede llevar un tiempo de generación de pistas bastante elevado, y tampoco permite regular facilmente la dificultad del sudoku

Regular la dificultad de un Sudoku bien es bastante complejo, te lo digo por experiencia. En su dia me lo curré mucho para que los PCSudokus pudieran evaluar la dificultad del problema con precisión, dado que, almenos en su día, era donde fallaban todos los demás Sudokus.

Todo depende de cuanto te lo quieras currar y (aunque a priori no te parezca que tenga relación) de lo óptimo que sea tu código. La dificultad se evalua solucionándolo, cuantas más veces puedas probar un tablero durante la generación, mejor podrás precisar su dificultad. Mi consejo es que primero te estudies bien las técnicas para solucionar un Sudoku a mano y luego las utilices en tu solucionador para evaluar la dificultad de cada problema. Por desgracia, me temo que hasta aquí puedo leer, por temas de confidencialidad.

sync

AgeR

Ey sync, ya había leído todos los post en los que hablabas del PCSudoku y demás y lo que comentas lo tengo más o menos claro. El problema no es hacer el algoritmo (me refiero al generador de pistas), sino hacer un algoritmo que sea eficiente, no ya en el PC, sino en un movil.

Sobre la dificultad, me pondré con ello cuando acabe el tema de las pistas y la solución única. La verdad es que me temo que o se hace alguna chapuza, o el tiempo de generación en los moviles va a ser insufrible  :(

Sigo leyendo y buscando info a ver qué soluciones hay  :D

synchrnzr

CitarEl problema no es hacer el algoritmo (me refiero al generador de pistas), sino hacer un algoritmo que sea eficiente, no ya en el PC, sino en un movil.

Para móvil es más jodido porque con CPUs de hasta 200/300MHz... y con Java imagino que el tema del rendimiento aun está peor. En mi opinión sólo tienes 2 opciones: o pregenerar los problemas o generar sudokus con menor grado dificultad.

sync

AgeR

Sync en efecto, el problema es la velocidad de los móviles. He probado el sudoku este en mi movil (Nokia 6103 roñoso) y va a pedales el juego, aunque no tarda excesivamente en generar el sudoku.

También he leído por varias páginas que dando 17 pistas ya te aseguras de que exista una única solución. Lo habitual es situar unas 28 pistas. Peeeero, mayor número de pistas no significa que el sudoku sea más fácil de resolver, así que tendré que jugar con los números que abro como pistas y tal... en fin, un engorro, pero es lo que hay y para moviles creo que será lo más factible.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.