#ifndef Q1_H_INCLUDED
#define Q1_H_INCLUDED
#include <iostream>
#include <vector>
#include <cstdlib>

using namespace std;
// Fonction de résolution
vector< vector <unsigned> > Super_resolution_propagation_contraintes(vector< vector <unsigned> > sudoku, unsigned mode);
//retroune les possibilités en fonction des contraintes
vector <unsigned> poss_case(vector <unsigned> tab_ligne, vector <unsigned> tab_collonne, vector < vector <unsigned> > tab1_case);
//retourne la position d'un elèment dans un vector
unsigned position_in_vector(vector <unsigned> possibilites, unsigned value);
//retourne un tableeau de la collonne
vector <unsigned> get_collone(vector< vector <unsigned> > tableau, unsigned numero_collonne);
//retourne la sous case d'un soudoku
vector < vector <unsigned> > get_case(vector< vector <unsigned> > tableau, unsigned numero_ligne, unsigned numero_collonne, unsigned mode);
//savoir si le tableau ne contient plus d'éèment non initialisé
bool est_total_sudoku (vector< vector <unsigned> > sudoku);
// affichage d'un vector de vector
void affichage_sudoku(vector< vector <unsigned> > sudoku);
//création d'un tabe avec uniquement des 0 pour un sudoku
vector < vector <unsigned> > creation_sudoku_vide(unsigned mode);

vector< vector <unsigned> > Super_resolution_propagation_contraintes2(vector< vector <unsigned> > sudoku, unsigned mode);


#endif // Q1_H_INCLUDED

