#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'élè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);


#endif // Q1_H_INCLUDED

