0% ont trouvé ce document utile (0 vote)
717 vues4 pages

Générateur de Sudoku facile en C++

Le document décrit un programme C++ pour résoudre des sudokus de difficulté facile. Le programme affiche un sudoku avec des cases vides, demande à l'utilisateur de remplir les cases et vérifie que les règles du sudoku sont respectées.

Transféré par

Julian Jimenez
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
717 vues4 pages

Générateur de Sudoku facile en C++

Le document décrit un programme C++ pour résoudre des sudokus de difficulté facile. Le programme affiche un sudoku avec des cases vides, demande à l'utilisateur de remplir les cases et vérifie que les règles du sudoku sont respectées.

Transféré par

Julian Jimenez
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

#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;
}

Vous aimerez peut-être aussi