Hoy voy a explicar como hacer un programa en C++ que resuelva sudokus.
I para ello utilizaremos matrices y recursividad.
Hoy voy a explicar como hacer un programa en C++ que resuelva sudokus.
Para ello utilizaremos matrices y recursividad.
Vamos a empezar con las cabeceras y el main():
#include <iostream>
#include <vector>
using namespace std;
typedef vector<int> Fila;
typedef vector<Fila> Matriz;
int main() {
int n;
cin >> n;
int z = 0;
int N = n*n;
Matriz M(N, Fila(N));
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
cin >> M[i][j];
if (M[i][j] == 0) ++z;
}
}
if (soluciona(M, n, z)) pinta(M, n);
else cout << "No tiene solucion" << endl;
}
Lo primero que vemos es que una Matriz es un vector de vectores. Lo siguiente a comentar es que el programa primero espera que le entremos el tamaño del sudoku (los mas normales son de 3X3, por lo tanto entraríamos un 3).
Después de crear una Matriz de N*N el programa empieza a poner los números que le des (0 si la casilla está vacía) de izquierda a derecha y de arriba a abajo.
QUIERO SABER +








Hipercubízate 2009!