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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  juego de suduku en lenguaje c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: juego de suduku en lenguaje c  (Leído 9,110 veces)
chivis cristian

Desconectado Desconectado

Mensajes: 11


Ver Perfil
juego de suduku en lenguaje c
« en: 9 Diciembre 2011, 03:45 am »

pliss ayudaa tengo este codigo fuente y compila todo bien pero lo que pasa es que da 6 conbinaciones posibles del sudoku.
 y quiero solo que me de una sola donde sera que esta la falla..


#include <stdio.h>
#include <stdlib.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
  • [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]==0) sudoku[a]=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
  • !=0)
if(sudoku
  • ==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[y]!=0)
if(sudoku[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[c]!=0)
if(sudoku[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
  • [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
  • [y]=a;
correcto=comprobar(x,y);
if(correcto)
resolver_sudoku(x,y+1);
else
sudoku
  • [y]=0;
}
}
}

int main() {
int x,y,correcto;
for(x=0;x<9;x++)
for(y=0;y<9;y++)
tablero
  • [y]=sudoku
  • [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);
}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
En que lenguaje esta hecho este juego??
Juegos y Consolas
Codename!! 0 3,822 Último mensaje 13 Agosto 2011, 01:35 am
por Codename!!
necesito crear un juego en lenguaje c
Programación C/C++
chivis cristian 9 15,778 Último mensaje 18 Noviembre 2011, 23:28 pm
por Unbr0ken
juego en lenguaje c
Programación C/C++
chivis cristian 2 4,885 Último mensaje 3 Diciembre 2011, 03:38 am
por do-while
Si tuviese que hacer un juego en que lenguaje lo haría? « 1 2 »
Dudas Generales
z3nth10n 18 8,795 Último mensaje 7 Junio 2013, 17:28 pm
por z3nth10n
Crear juego de 2048 en lenguaje C con Codeblocks
Programación C/C++
Carlos.Martinez 2 3,525 Último mensaje 18 Noviembre 2015, 03:36 am
por furciorifa
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines