Pues eso ke si alguien conoce el juego soduko y lo mas importante, sabe donde encuentro el algoritmo para crear los numeros??
Salu2
| ||||
Soduko .. generar numeros Pues eso ke si alguien conoce el juego soduko y lo mas importante, sabe donde encuentro el algoritmo para crear los numeros?? Salu2
__________________ http://www.flotdesign.dk/ |
| ||||
SI, lo conozco. Una de las formas mas aleatorias de obtener numeros aleatoreos, es obtener las ultimas cifras del contador de tiempo del sistema. Existen funciones que te devuelven la cantidad de tiempo en milisegundos que apso, desde una fecha predeterminada, si tomas las ultimas cifras de ese numero, puedes obtener un numero bastante aleatoreo.
__________________ http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux |
| ||||
gracias por la respuesta tola, el problema (y quiza lo exprese mal), no es el generar los numeros en forma aleatoria. Para eso uso una funcion Random desde un numero minimoo a un numero maximo y ya tengo los parametros que en este caso son desde el 1 al 9. El problema es crear los numeros de tal forma que no se repitan en sus respectivas filas y columnas (osea las reglas basicas del soduko). Salu2 y se aceptan mas propuestas...
__________________ http://www.flotdesign.dk/ |
| ||||
Si mal no lo recuerdo, halguien ya pregunto sobre esto en el foro, y creo que le respondieron, usa el buscador del foro para dar con el hilo
__________________ http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux |
| ||||
...ill try Tx
__________________ http://www.flotdesign.dk/ |
| |||
Podrias hacer que dado un sudoku realizar X numeros de permutaciones aleatorias que no modiquen las reglas del juego. Un ejemplo seria trasponer la matriz, otro cambiar un numero por otro etc... Yo hice un sudoku que generaba sudokus aleatorios ya mirare. Un saludo! |
| |||
que tal, el algoritmo no es tan sencillo como para decirlo en unas cuants palabras. Yo hace como 1 año hice ese programa, y mi resolvedor era muy bueno (jeje, que presumido sone) nunca tardaba mas de .5 segundos en resolver hasta los de mas alta dificultad. Si te interesa, lo tengo hecho en c#... saludos, |
| |||
Cita: no es tan sencillo, si aces eso te encontraras con montones de caso en los k los numeros k generes no tengan solucion, y tendras un juego casi injugablehay multitud de paginas en las que se explica eso, prueba a usar google que seguro k encuentras, compañeros mios an hecho ese juego pero no te puedo decir de donde sacaron la informacion pq yo estaba con otro trabajo y no me entere de mucho, pero si se k seguian un algoritmo ke desde el principio ya sabian k iva a tener solucion |
| |||
Cita: Bien, eso es otro requisito añadido, que deberías haber dejado claro.
Iniciado por MiToNiOeS no es tan sencillo, si aces eso te encontraras con montones de caso en los k los numeros k generes no tengan solucion, y tendras un juego casi injugable hay multitud de paginas en las que se explica eso, prueba a usar google que seguro k encuentras, compañeros mios an hecho ese juego pero no te puedo decir de donde sacaron la informacion pq yo estaba con otro trabajo y no me entere de mucho, pero si se k seguian un algoritmo ke desde el principio ya sabian k iva a tener solucion Supongo que, como bien dices, viene en Google. Si no lo encuentras, hay programas GPL del juego, de donde puedes ver soluciones ya codificacas a todos los problemas que se te planteen. Prácticamente copiar el código. |
| |||
Cita: Hum, bueno, yo lo entendí en un principio como que sólo no se debían repetir los números en sus filas, columnas, etc. Luego, que tuviesen o no solución... es otro cantar :/No sé, no me planteé que pidiese además que había que saber si tiene o no solución. |
| |||
como dice MaxExtreme, no tiene pq estar implicito... Si es un trabajo pa ti en tu casita como hobby seguramente kieras acerlo bien y estara implicito. Si es un trabajo que te an mandado pos te ajustaran a los requisitos, y si entre esos requisitos no dice nada pues lo mejor es acerlo completamente aleatorio ya que es lo mas rapido, y el tiempo es dinero. Este tipo de cosas debe de quedar claro antes de empezar, sino pasa lo k pasa.... |
| |||
Re: Soduko .. generar numeros Cita: Disculpa fijate que yo nesecito el codigo del sudoku en c# te molesto si me lo podes mandar a mi correo [email protected] te lo agradeceria muchisimo gracias.
Iniciado por blackwind que tal, el algoritmo no es tan sencillo como para decirlo en unas cuants palabras. Yo hace como 1 año hice ese programa, y mi resolvedor era muy bueno (jeje, que presumido sone) nunca tardaba mas de .5 segundos en resolver hasta los de mas alta dificultad. Si te interesa, lo tengo hecho en c#... saludos, |
| |||
Re: Soduko .. generar numeros Hola pulento: Claro q en el buscador del foro sale, se va a bucar a google páginas de forosdelweb. Encontré dos códigos, espero q te sirvan: 1er código: var i:Number = 0; var maximo:Number = 10; var matriz:Array = new Array(); while (i<maximo) { var aleatorio:Number = 1+Math.floor(Math.random()*maximo); var tmp = matriz.join(","); if (tmp.indexOf(aleatorio) == -1) { matriz.push(aleatorio); trace(aleatorio); i++; } } Este código calcula numeros aleatorios entre 1 y 10 (máximo=10) y va guardando los resultados en una matriz para controlar que no se repitan. 2do código: total=10 // aqui se muestra el total de numeros que se eligen al azar necesitar=10 // esta es la cantidad que se necesita capturar matriz= new Array(); // creamos un arreglo for(fa=0; fa<=total-1; fa++){ // mediante el ciclo for llenamos matriz[fa]=0; //el arreglo con el valor 0 } for(p=0; p<=total-1; p++){ // repetimos esta operacion la cantidad de veces como numeros tengamos repetido=1 // agregamos como valor por defecto 1 a la variable repetir para que se cumpla el while while(repetido==1){ //repetiremos el siguiente script hasta que el numero no conicida con ningun otro repetido=0; //damos valor 0 a "repetido" para que no se repita de nuevo el script a menos de que sea necesario k=random(total)+1; //creamos el numero aleatoreo for(j=0; j<=total-1; j++){ //hacemos un ciclo para ver los numeros de los arreglos if(k==matriz[j]){ // y asi comprobar que un numero no se repite repetido=1; // de repetirse le damos valor 1 a la variable repetido y asi se cumple }// el metodo while y lo hara hasta que genere un valor que no se encuentre } } matriz[p]=k;// introducimos el valor generado a la matriz } for(p=0; p<=necesitar-1; p++){ // mostramos en pantalla los numeros generados trace(matriz[p]); } ojo: en este scrip si deseas eje: 5 numeros aleatorios los genera del 1 al 5, de necesitar del 0 al 4 solo resten -1 al resultado final.... |