Voy a intentar explicar mejor, tengo que hacer una especie de sudoku, en donde me piden hacer cuatros funciones, VerificarTablero,MostrarTablero,verificardigito y colocarNumero, las dos primera las tenia hechas ( o las tengo echas), pero las dos últimas son las que mas se me han complicado
la primera función es validar si un tablero contiene una solución valida ( Qué no haya número repetidos en filas, columna o cuadrante)
http://prntscr.com/7pnmrp esos serían los diferente cuadrante, esa función la hice así:
bool VerificarTablero() {
bool ver=true;
int cont=0,c=0;
for(int i=cont+1;i<9;i++) {
for(int j=0;j<9;j++) {
if (mat[cont][j]==mat[i][j])
{cout<<"Solucion invalida"<<endl;}
ver=false;}
else
{cout<<"Solucion Valida"<<endl;
ver=true;}
}
}
cont++;
return (ver);
}
Pero ahora cuando lo ejecuto me da solución invalida muchas veces y no una como quisiera, (Ahí no verifique los cuadrante, solo las filas y columna, ya que no sabia como verificar cada cuadrante)
en la otra la hice como acción en donde solo mostre el tablero :
void MostrarTablero(){
for(int i=0;i<9;i++) {
for(int j=0;j<9;j++) {
cout<<mat[i][j];
}
cout<<endl;
}
las otras dos fue en la que pedí ayuda, porque no sabia como hacerlas
Funcion VerificarDigitos:
bool VerificarDigitos () {
bool validar=false;
int x,y,n;
cout<<"ingrese la coordenada x"<<endl;
cin>>x;
cout<<"ingrese la coordenada y"<<endl;
cin>>y;
cout<<"ingrese el valor"<<endl;
cin>>n;
for (int i =0; i<9; i++){
if (mat[x][i]==n || mat[i][y]==n) {
validar=true;
break;
}
if (validar==true){
cout<<"valor repetido"<<endl;
}
return (validar);
}
}
quisiera saber si me podrían ayudar en la primera función y en la tercera, ya que no me da como quería ni como pensé que me daría, si no es mucha la molestia