P

Poygu

Usuario (Perú)

Primer post: 23 jul 2010Último post: 23 jul 2010
1
Posts
15
Puntos totales
3
Comentarios
Sudoku en C++
Sudoku en C++
Hazlo Tu MismoporAnónimo7/23/2010

hOla a toda esa gente taringuera kmo estan, espero q muy bien, continuando con mis aportaciones aqui les traigo un Sudoku implementado en dev-C++. Estaba yo sentado comiendo mis alimentos y preocupado pensando en un trabajo q me habian dejado q consistia en crear un programa, haciendo uso de algoritmo del tipo backtraking, y en eso vi a mi hermano resolviendo la sección de entretenimiento de esos diarios q siempre compramos en casa y vi q tenia dificultad para llenar el Sudoku y me dije xq no hacerlo en computadora?. y fruto de un arduo trabajo de investigacion pruebas y demas aki les traigo el codigo exo por mi. Ojo: haciendo uso de tecnicas y métodos q encontre al navegar en la red, lei varias paginas donde mostraban como deberia funcionar el algoritmo pero en ninguna estaba implementado. #include<iostream> #include<conio2.h> #define COLOR1 system("color 8f"; #define SELLO {gotoxy(70,2); cout<<"by Mc Pool"<<endl;} #define t "t" using namespace std; int sudoku[9][9] = { {6,0,1,0,0,4,0,8,0}, {0,4,9,7,3,0,0,0,0}, {8,2,3,0,0,0,0,4,9}, {0,0,4,0,0,0,0,9,6}, {0,0,7,0,0,0,2,0,0}, {9,8,0,0,0,0,3,0,0}, {4,1,0,0,0,0,9,6,5}, {0,0,0,0,4,1,8,3,0}, {0,5,0,2,0,0,4,0,7} }; void Sudoku(); void resSudoku(int,int); bool buscaCeldaVacia(int&,int&; bool puedoColocar(int,int,int); void impSudoku(); main() { SELLO; COLOR1; Sudoku(); resSudoku(0,0); getch(); } void Sudoku(void) { int i,j; cout<<t<<" /****************************/"<<endl <<t<<" SUDOKU "<<endl <<t<<" /****************************/"<<endl; for(i=0;i<9;i++) { cout<<endl<<t<<t; for(j=0;j<9;j++) { cout<<sudoku<<" "; if(j==2 || j==5) cout<<" "; } cout<<endl<<t<<t; if(i==2 || i==5) cout<<endl; } cout<<endl; } void resSudoku(int x,int y) { bool hayVacia = buscaCeldaVacia(x,y); if(!hayVacia) impSudoku(); else { for(int nro=1;nro<=9;nro++) if(puedoColocar(x,y,nro)) { sudoku = nro; resSudoku(x,y+1); sudoku = 0; } } } bool buscaCeldaVacia(int& x,int& y) { for(;x<9;x++) { for(;y<9;y++) if(sudoku == 0) return true; y = 0; } return false; } bool puedoColocar(int f,int c, int nro) { int i,j; //chequeo fila for(j=0;j<9;j++) if(sudoku == nro) return false; //chequeo columna for(i=0;i<9;i++) if(sudoku == nro) return false; //chequeo subcuadrado int iniCol = (c/3)*3; int finCol = iniCol + 3; int iniFil = (f/3)*3; int finFil = iniFil + 3; for(i=iniFil;i<finFil;i++) for(j=iniCol;j<finCol;j++) if(sudoku == nro) return false; return true; } void impSudoku(void) { int i,j; SELLO; cout<<t<<" /****************************/"<<endl <<t<<" SOLUCION "<<endl <<t<<" /****************************/"<<endl; for(i=0;i<9;i++) { cout<<endl<<t<<t; for(j=0;j<9;j++) { cout<<sudoku<<" "; if(j==2 || j==5) cout<<" "; } cout<<endl<<t<<t; if(i==2 || i==5) cout<<endl; } cout<<endl<<t<<t; } POSDATA: Cualquier duda, sugerencia o error en el code consultarme via MP, a para compilar necesitan instalar la libreria conio2, q se encuentra en mi post anterior.

15
9
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.