Algoritmia - Algoritmo Sudoku

 
Vista:

Algoritmo Sudoku

Publicado por cdrg (1 intervención) el 12/11/2005 03:38:47
hola a todos.

conocen el juego del sudoku?
para quien lo conozca les pido el favor de que me lo ayuden a implementar de manera algorítmica utilizando la estrategia de backtracking, implementado en c.

es urgente gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Algoritmo Sudoku

Publicado por Lel (1 intervención) el 22/11/2005 20:23:54
A mi me iria tambien muy bien tener la implementación algorímica de resolución del Sudoku por backtracking. La implementación que necesito es Java, pero eso puedo apañarlo yo, creo.

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Alberto (1 intervención) el 06/01/2006 17:02:08
Yo tambien necesitaria implementar el algoritmo del sudoku en Java si alguien pudiera ayudarme se lo agradeceria eternamente muchas gracias.
Mandar email con el algoritmo pelase a [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por MALO (1 intervención) el 06/12/2009 19:33:34
VAYANSE A LA VERGA BOLA DE PENDEJOS -.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por armando (1 intervención) el 14/05/2007 22:53:05
da para corregir este codigo:

#include <stdio.h>

int sudoku[9][9]={{8,0,0,0,0,0,6,0,0},
{0,2,9,6,7,0,0,1,0},
{0,0,0,0,1,4,0,5,0},
{6,0,0,3,9,1,5,0,2},
{0,5,1,0,0,0,9,0,0},
{9,0,2,0,0,6,0,0,0},
{0,6,0,4,3,0,0,0,0},
{0,9,0,0,8,7,1,6,0},
{0,0,7,0,0,0,0,0,3}};

int tablero[9][9];

int cont=0;

void imprimir_sudoku() {
int x,y;
for(x=0;x<9;x++) {
for(y=0;y<9;y++) {
printf("%d", sudoku[x][y]);
if(y==2||y==5)
printf("|");
}
printf("\n");
if(x==2||x==5) {
printf("---+---+---");
printf("\n");
}
}
printf("\n");
}

void inicializar(int x, int y) {
int a,b;
a=x;b=y+1;
while(a<9) {
if(tablero[a][b]==0) sudoku[a][b]=0;
b++;
if (b>8) { b=0;a++; }
}
}

int comprobar(int x, int y) {
int a,b,c,correcto,retorno,contador,x2,y2;

correcto=1;
for(a=1;a<=9 && correcto;a++) {
contador=0;
for(b=0;b<9 && correcto;b++) {
if(sudoku[x][b]!=0)
if(sudoku[x][b]==a)
contador++;
}
if (contador>1) correcto=0;
}

retorno=correcto;

if(correcto) {
for(a=1;a<=9 && correcto;a++) {
contador=0;
for(b=0;b<9 && correcto;b++) {
if(sudoku[b][y]!=0)
if(sudoku[b][y]==a)
contador++;
}
if(contador>1) correcto=0;
}
retorno=correcto;
}

if(correcto) {
for(a=1;a<=9 && correcto;a++) {
x2=(x-(x % 3));
y2=(y-(y % 3));
contador=0;
for(b=x2;b<x2+3;b++) {
for(c=y2;c<y2+3;c++) {
if(sudoku[b][c]!=0)
if(sudoku[b][c]==a)
contador++;
}
}
if(contador>1) correcto=0;
}
retorno=correcto;
}

return retorno;
}

int resolver_sudoku(int x, int y) {
int a, correcto;

if (y>8) { y=0;x++; }
while(x<9 && tablero[x][y]!=0) {
y++;
if (y>8) { y=0;x++; }
}
if(x==9) {
if(!comprobar(8, 8)) {
printf("Sin solucion");
exit(-1);
} else {
imprimir_sudoku();
cont++;
if(cont==100)
exit(-1);
}
} else {
for(a=1;a<=9;a++) {
inicializar(x,y);
sudoku[x][y]=a;
correcto=comprobar(x,y);
if(correcto)
resolver_sudoku(x,y+1);
else
sudoku[x][y]=0;
}
}
}

int main() {
int x,y,correcto;
for(x=0;x<9;x++)
for(y=0;y<9;y++)
tablero[x][y]=sudoku[x][y];

correcto=1;
for(x=0;x<9 && correcto;x++)
for(y=0;y<9 && correcto;y++) {
correcto=comprobar(x,y);
}

if(!correcto)
printf("Datos de entrada incorrectos\n");
else
resolver_sudoku(0,0);

printf("Combinaciones : %d\n", cont);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayudenme

Publicado por Hile (1 intervención) el 26/09/2007 15:29:46
Hola a todos, necesito el codigo del sudoku en C, estoy como loca haciendolo please ayudenme.... se los agradecere de todo corazon Gracias.....!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Paco (1 intervención) el 03/01/2006 13:48:23
¿Conseguisteis el algoritmo para el sudoku?

Me da igual el lenguaje. ¿Alguien lo puede pasar?

Enviarlo a [email protected] por favor

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por david (1 intervención) el 01/04/2006 18:35:00
pues si ya has conseguido el algoritmo del sudoku enviamelo a mi tambien porfa. Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Sara (1 intervención) el 25/04/2006 16:00:38
Necesitaría urgente el algoritmo del Sudoku en C++ porfi!! Me haríais un favor gigante.

Muchas gracias.
Sara.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Cristina (1 intervención) el 20/05/2006 12:46:50
Si has conseguido el algoritmo del sudoku (en java, c++ o pascal) enviamelo a mi también porfi. Lo necesito urgentemente. Muchísimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por juan Gabriel (2 intervenciones) el 25/06/2006 08:44:21
por favor si alguien puede enviarme el algoritmo para crear un sudoku para ntes del martes 27 de junio de 2006. muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por juan Gabriel (2 intervenciones) el 25/06/2006 08:44:51
por favor si alguien puede enviarme el algoritmo para crear un sudoku para ntes del martes 27 de junio de 2006. muchas gracias mandarlo a [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Serkka (1 intervención) el 31/07/2006 16:04:10
holas, yo ni siquiera necesito el algoritmo, solo que alguien me diga una tècnica para crear sudokus, porque el algoritmo lo puedo hacer yo, solo necesito la técnica, si alguien me puede ayudar, por favor respondame a [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por amparo (2 intervenciones) el 01/11/2006 19:09:37
Necesito un algoritmo en lenguaje C que resuelva sudokus por backtraking

Enviarmelo a [email protected]

muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por amparo (2 intervenciones) el 01/11/2006 19:09:50
Necesito un algoritmo en lenguaje C que resuelva sudokus por backtraking

Enviarmelo a [email protected]

muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por carlos (1 intervención) el 23/11/2006 23:22:38
necesito un programa con matrices el juego de sudok ku.
es urgente gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por jamel (1 intervención) el 04/06/2007 22:56:30
sudoku
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Sergio (1 intervención) el 16/05/2007 00:58:50
Necesito un algoritmo en lenguaje C que resuelva sudokus por backtraking
de forma iterativa o recursiva u ambas

Envienmelo a [email protected] , gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por velazquez rodriguez antonia (1 intervención) el 10/02/2007 19:26:15
hola espero me hagna favor de poderme enviar mi homoclave mi fecha de nacimiento es el 03/03/1986 gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Mastuero (1 intervención) el 13/06/2007 07:39:19
que onda??? todos quieren una solucion del sudoku, pero nadie da una respuesta, nomas uno de los cuates dio una respuesta, y todavia ponen sus correos, que no pueden ni siquiera estar checando la pagina, ni en eso quieren batallar? asi, queriendo todo en la mano no obtendran nada, no tiene gran chiste lo del sudoku, nomas piensenle un pokito y veran que esta muy facil

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por juan garces (1 intervención) el 25/09/2007 14:26:40
gas den una respuesta....hp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Roberto (1 intervención) el 24/11/2007 22:50:07
Encuéntrenlo en nosoloc.wordpress.com. Está implementado en Java y también puedo darlo en C
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por mayerly (1 intervención) el 24/04/2008 15:46:02
por favor nesecito que me ayudes con un algoritmo de un sudoku en java te agradeseria bastante grasias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Jeiner (1 intervención) el 21/09/2008 05:52:33
Hola tengo el juego de sudoko en java si desean me escriben a [email protected], saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por rubyism (1 intervención) el 24/03/2009 23:11:42
aqui esta en ruby .............. hij os de p u ta


def read_matrix
matrix = []

(0..8).each { |i|
l = readline
matrix[i] = []
(0..8).each { |j|
matrix[i][j] = l[j..j].to_i
}
}
matrix
end

def permissible(matrix, i, j)
ok = [true,true,true,true,true,true,true,true,true]
# Same as another in the column isn't permissible...
(0..8).each { |i2|
next if matrix[i2][j] == 0
ok[matrix[i2][j] - 1] = false
}
# Same as another in the row isn't permissible...
(0..8).each { |j2|
next if matrix[i][j2] == 0
ok[matrix[i][j2] - 1] = false
}
# Same as another in the 3x3 block isn't permissible...
igroup = (i / 3) * 3
jgroup = (j / 3) * 3
(igroup..(igroup + 2)).each { |i2|
(jgroup..(jgroup + 2)).each { |j2|
next if matrix[i2][j2] == 0
ok[matrix[i2][j2] - 1] = false
}
}
# Convert to the array format...
ret = []
(0..8).each { |i2| ret.push(i2 + 1) if ok[i2] }
ret
end

def deep_copy_sudoku(matrix)
newmat = []
(0..8).each { |i|
newmat[i] = []
(0..8).each { |j|
newmat[i][j] = matrix[i][j]
}
}
newmat
end

def solve_sudoku(matrix)
while true
options = []
(0..8).each { |i|
(0..8).each { |j|
next if matrix[i][j] != 0
p = permissible(matrix, i, j)
# If nothing is permissible, there is no solution at this level.
return false if (p.length == 0)
options.push({:i => i, :j => j, :permissible => p})
}
}
# If the matrix is complete, we have a solution...
return matrix if options.length == 0

omin = options.min { | a, b |
a[:permissible].length <=> b[:permissible].length
}

# If there is an option with only one solution, set it and re-check permissibility
if omin[:permissible].length == 1
matrix[omin[:i]][omin[:j]] = omin[:permissible][0]
next
end

# We have two or more choices. We need to search both...
omin[:permissible].each { |v|
mtmp = deep_copy_sudoku(matrix)
mtmp[omin[:i]][omin[:j]] = v
ret = solve_sudoku(mtmp)
if ret != false
return ret
end
}

# We did an exhaustive search on this branch and nothing worked out.
return false
end
end

def print_matrix(matrix)
if (matrix == false)
print "Impossible "
return
end

(0..8).each { |i|
(0..8).each { |j|
print matrix[i][j]
}
print " "
}
end

print_matrix(solve_sudoku(read_matrix()))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por Chris Huerta (1 intervención) el 10/12/2013 17:02:16
Existe el Sudoku en C#; generando a la vez 3 niveles y al mismo tiempo se generan los archivos.txt para que se guarden los registros (Scores) ordenados de cada dificultad_?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por cr4ck (2 intervenciones) el 06/04/2010 05:35:07
si deseas te puedo ayudar con el algoritmo,
primero creé una estructura o registro que tenga los parametros valor y una Lista
(valor =el valor que corresponde inicializado en 0
lista= una coleccion de los posibles valores que pueda tomar la casilla)
lo que hice con un algoritmo voraz, completar la lista segun las condiciones del sudoku
(solo debe de existir un valor en fila, columna y grupo)
luego vi si se podian completar algunos casilleros, ya que seria aquellos que posean una lista de longitud 1,(la mayoria de sudokus que resolvi con el algoritmo en niveles intermedio no hubo necesidad de hacer con backtracking).
luego de completar la lista e intentar rellenar los casilleros, se usa un modulo que pruebe con cada valor de la lista (ingeniate para crearlo con la idea de que si agrego un valor de la lista del casillero a la tabla el problema esta en resolver el sudoku con la nueva tabla) luego de probar llegaras al caso en el que no sea posible poner algun valor a la casilla, es alli donde hace backtracking regresando a la llamada anterior, restableciendo los valores e intentando con el siguiente valor posible de la lista.
Espero que te haya ayudado en algo
Te aconsejo jugar antes unos sudokus de diferentes niveles para que puedas comprender el mecanismo del juego, ojo que un informatico debe de ser capaz de analizar, interpretar y conceptualizar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por cr4ck (2 intervenciones) el 06/04/2010 05:35:55
si deseas te puedo ayudar con el algoritmo,
primero creé una estructura o registro que tenga los parametros valor y una Lista
(valor =el valor que corresponde inicializado en 0
lista= una coleccion de los posibles valores que pueda tomar la casilla)
lo que hice con un algoritmo voraz, completar la lista segun las condiciones del sudoku
(solo debe de existir un valor en fila, columna y grupo)
luego vi si se podian completar algunos casilleros, ya que seria aquellos que posean una lista de longitud 1,(la mayoria de sudokus que resolvi con el algoritmo en niveles intermedio no hubo necesidad de hacer con backtracking).
luego de completar la lista e intentar rellenar los casilleros, se usa un modulo que pruebe con cada valor de la lista (ingeniate para crearlo con la idea de que si agrego un valor de la lista del casillero a la tabla el problema esta en resolver el sudoku con la nueva tabla) luego de probar llegaras al caso en el que no sea posible poner algun valor a la casilla, es alli donde hace backtracking regresando a la llamada anterior, restableciendo los valores e intentando con el siguiente valor posible de la lista.
Espero que te haya ayudado en algo
Te aconsejo jugar antes unos sudokus de diferentes niveles para que puedas comprender el mecanismo del juego, ojo que un informatico debe de ser capaz de analizar, interpretar y conceptualizar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Sudoku

Publicado por is (1 intervención) el 25/12/2010 02:33:25
por favor si alguien tiene el sudoku en algoritmo avise
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Algoritmo Sudoku

Publicado por chaires (1 intervención) el 16/07/2012 15:25:00
yo tambien lo necesito pero a mi me la dejaron si lo conseguiste pasamelo plis lo tengo que hacer en consola de c++ es un sudoku de 4x4 plissssss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Algoritmo Sudoku

Publicado por Carlos (1 intervención) el 05/11/2014 00:05:31
Yo también andaba estrujandome la cabeza con el código este, pero al final lo encontré!!
Les dejo este enlace con el código del programa, espero que les sea de utilidad, a mi me fue bien útil:
http://cypascal.blogspot.com.es/2012/09/resolver-sudokus-en-cc.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar