Vous êtes sur la page 1sur 4

#include <iostream>

#include <stdlib.h>

using namespace std;

void ImprimirTablero(int Sudoku[][9]){

for(int i = 0; i <= 8; i++){


for(int j = 0; j <= 8; j++){
if(i == 0 && j == 0){
cout<<endl<<" ___________________ ___________________
___________________"<<endl;
cout<<" | | | | | | | |
| | | |"<<endl;
cout<<" | "<<Sudoku[i][j]<<" |";
}
else if(i == 0){
cout<<" "<<Sudoku[i][j]<<" |";
if(j == 2 || j == 5){
cout<<" |";
}
}
else if(j == 0){
cout<<" | | | | | | | | |
| | |"<<endl;
cout<<" | "<<Sudoku[i][j]<<" |";
}
else{
cout<<" "<<Sudoku[i][j]<<" |";
if(j == 2 || j == 5){
cout<<" |";
}
}
}
cout<<endl<<" |_____|_____|_____| |_____|_____|_____| |_____|
_____|_____|"<<endl;
if(i == 2 || i == 5){
cout<<""<<endl;
cout<<" ___________________ ___________________
___________________"<<endl;
}
}

cout<<endl<<endl;

}
int SudokuFacil(){
int Sudoku[9][9];

for(int i = 0; i <= 8; i++){


for(int j = 0; j <= 8; j++){
int a = 0;
Sudoku[i][j] = a;
}
}
Sudoku[0][1] = 6;
Sudoku[0][3] = 1;
Sudoku[0][5] = 4;
Sudoku[0][7] = 5;
Sudoku[1][2] = 8;
Sudoku[1][3] = 3;
Sudoku[1][5] = 5;
Sudoku[1][6] = 6;
Sudoku[2][0] = 2;
Sudoku[2][8] = 1;
Sudoku[3][0] = 8;
Sudoku[3][3] = 4;
Sudoku[3][5] = 7;
Sudoku[3][8] = 6;
Sudoku[4][2] = 6;
Sudoku[4][6] = 3;
Sudoku[5][0] = 7;
Sudoku[5][3] = 9;
Sudoku[5][5] = 1;
Sudoku[5][8] = 4;
Sudoku[6][0] = 5;
Sudoku[6][8] = 2;
Sudoku[7][2] = 7;
Sudoku[7][3] = 2;
Sudoku[7][5] = 6;
Sudoku[7][6] = 9;
Sudoku[8][1] = 4;
Sudoku[8][3] = 5;
Sudoku[8][5] = 8;
Sudoku[8][7] = 7;

ImprimirTablero(Sudoku);

for(int i = 0; i <= 8; i++){


for(int j = 0; j <= 8; j++){
if(Sudoku[i][j] == 0){
cout<<"Ingrese un valor para la casilla "<<i+1<<" ,
"<<j+1<<":"<<endl;
int digito;
cin >> digito;
if(digito >= 1 && digito <= 9){
Sudoku[i][j] = digito;
}
else{
cout<<"Existe un numero menor a 1 o mayor a 9 en la fila "<<
i+1 <<", datos incorrectos"<<endl;
system("cls");
return SudokuFacil();
}
system("cls");
ImprimirTablero(Sudoku);
if(j == 8){
int c = 0;
while(c < 8){
if(Sudoku[i][c] == Sudoku[i][j]){
system("cls");
cout<<"Existe un numero repetido en la fila "<< i+1
<<", datos incorrectos"<<endl;
return SudokuFacil();
}
c++;
}

}
}
}

}
int Sumatoria = 0;
for(int i = 0; i <= 8; i++){
for(int j = 0; j <= 8; j++){
Sumatoria = Sumatoria + Sudoku[j][i];

if(j == 8 && Sumatoria == 45){


Sumatoria = 0;
if(i == 8){
cout<<"Todas las columnas son correctas"<<endl;

}
}
else if(j == 8){
system("cls");
cout<<"La columna "<<i+1<<" no es correcta"<<endl;
return SudokuFacil();
}

}
cout<<""<<endl;
}
cout<<"Ha completado el Sudoku Correctamente, Felicidades"<<endl;

return 0;

int main()
{
int var = 0;

do{
cout<<"SUDOKU!!!"<<endl;
cout<<endl<<endl<<endl;

cout<<"INSTRUCCIONES"<<endl<<endl;
cout<<"Se mostrara por pantalla el sudoku a resolver, el numero 0 representa una
casilla vacia."<<endl;
cout<<"Debera realizar el Sudoku a mano, luego se le pedira la casilla siendo el
1er numero la coordenada x y el 2do numero la coordenada y."<<endl;
cout<<"Buena Suerte!"<<endl<<endl;

cout<<"Elige una dificultad"<<endl;


cout<<"1.Facil"<<endl;
cout<<"2.Intermedio"<<endl;
cout<<"3.Dificil"<<endl;

char numero;
cin >> numero;
if(numero == '1'){

SudokuFacil();
}

else if(numero == '2'){


cout<<"Sudoku Intermedio"<<endl;
}
else if(numero == '3'){
cout<<"Sudoku Dificil"<<endl;
}
else{
system("cls");
var = 1;

}
}while(var == 1);

return 0;
}