Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Soduko .. generar numeros

Estas en el tema de Soduko .. generar numeros en el foro de C/C++ en Foros del Web. Pues eso ke si alguien conoce el juego soduko y lo mas importante, sabe donde encuentro el algoritmo para crear los numeros?? Salu2...
  #1 (permalink)  
Antiguo 02/11/2006, 15:49
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
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/
  #2 (permalink)  
Antiguo 02/11/2006, 21:54
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
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
  #3 (permalink)  
Antiguo 03/11/2006, 03:59
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
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/
  #4 (permalink)  
Antiguo 03/11/2006, 04:24
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
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
  #5 (permalink)  
Antiguo 03/11/2006, 08:17
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
...ill try
Tx
__________________
http://www.flotdesign.dk/
  #6 (permalink)  
Antiguo 03/11/2006, 15:37
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 2 meses
Puntos: 1
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!
  #7 (permalink)  
Antiguo 06/11/2006, 16:12
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
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,
  #8 (permalink)  
Antiguo 07/11/2006, 07:45
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por blackwind Ver Mensaje
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#...
No está pidiendo un algoritmo de resolución de Sudokus, sino un algoritmo generador de 9 números entre 1 y 9 que no se repitan, cosa bastante sencilla que creo que cualquiera debería averiguar por su cuenta.
  #9 (permalink)  
Antiguo 07/11/2006, 11:05
 
Fecha de Ingreso: noviembre-2006
Mensajes: 19
Antigüedad: 17 años, 6 meses
Puntos: 0
Cita:
Iniciado por MaxExtreme Ver Mensaje
No está pidiendo un algoritmo de resolución de Sudokus, sino un algoritmo generador de 9 números entre 1 y 9 que no se repitan, cosa bastante sencilla que creo que cualquiera debería averiguar por su cuenta.
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
  #10 (permalink)  
Antiguo 07/11/2006, 14:45
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por MiToNiOeS Ver Mensaje
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
Bien, eso es otro requisito añadido, que deberías haber dejado claro.

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.
  #11 (permalink)  
Antiguo 08/11/2006, 16:34
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
creo que eso quedaba implicito en el problema que se plantea..... o nO?

saludos,
  #12 (permalink)  
Antiguo 09/11/2006, 07:29
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por blackwind Ver Mensaje
creo que eso quedaba implicito en el problema que se plantea..... o nO?

saludos,
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.
  #13 (permalink)  
Antiguo 10/11/2006, 00:39
 
Fecha de Ingreso: noviembre-2006
Mensajes: 19
Antigüedad: 17 años, 6 meses
Puntos: 0
Cita:
Iniciado por blackwind Ver Mensaje
creo que eso quedaba implicito en el problema que se plantea..... o nO?

saludos,
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....
  #14 (permalink)  
Antiguo 10/11/2006, 06:57
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 2 meses
Puntos: 1
Si no tuviese solucion, no seria un sudoku...
  #15 (permalink)  
Antiguo 13/04/2008, 14:01
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Re: Soduko .. generar numeros

Cita:
Iniciado por blackwind Ver Mensaje
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,
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.
  #16 (permalink)  
Antiguo 14/04/2008, 13:23
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Re: Soduko .. generar numeros

alguien tiene el algoritmo para generar sudoku
  #17 (permalink)  
Antiguo 14/04/2008, 16:31
 
Fecha de Ingreso: abril-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
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....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:21.