Reto 2. Sudoku Killer
Grupo.h
Ir a la documentación de este archivo.
1 
10 #ifndef SUDOKU_GRUPO_H
11 #define SUDOKU_GRUPO_H
12 
13 #include <vector>
14 #include "Casilla.h"
15 using namespace std;
37 class Grupo {
38 private:
43  int suma;
44 
50  vector<Casilla> grupo;
51 
64  vector<vector<vector<int>>> combinaciones;
65 public:
70  const vector<Casilla> &getCasillas() const;
71 
76  int getSuma() const;
77 
82  const vector<vector<vector<int>>> &getCombinaciones() const;
83 
89  void setCasillas(const vector<Casilla> & cas);
90 
96  void setSuma(int sum);
97 
102  void setCombinaciones(const vector<vector<vector<int>>> &comb);
103 
104 
109  bool InFila() const;
110 
115  bool InCubo() const;
116 
121  bool InCol() const;
122 
138  void quitar_casilla(const Casilla& cas);
139 
146 
153  void limp_comb_en_fila(const Casilla& cas);
154 
162  void limp_comb_no_en_fila(const Casilla& cas);
163 
170  void limp_comb_en_col(const Casilla& cas);
171 
179  void limp_comb_no_en_col(const Casilla& cas);
180 
187  void limp_comb_en_cubo(const Casilla& cas);
188 
196  void limp_comb_no_en_cubo(const Casilla& cas);
197 
212  const vector<Casilla>& obtener_determinados() const;
213 
214 private:
220  int CuantasFuera_cubo(const Casilla& cubo) const;
221 
227  int CuantasFuera_fila(const Casilla& fila) const;
228 
234  int CuantasFuera_col(const Casilla& col) const;
235 
245  bool esta_en_el_borde(const Casilla &cas);
246 
247 };
248 
249 
250 #endif //SUDOKU_GRUPO_H
Fichero cabecera del TDA Casilla.
TDA Casilla Representa una única posición de sudoku que puede contener un único valor numérico.
Definition: Casilla.h:29
TDA Grupo Representa los conjuntos contiguos de celdas marcados con línea discontinua en un Sudoku Ki...
Definition: Grupo.h:37
void limp_comb_en_col(const Casilla &cas)
Limpia todas las combinaciones de la columna que contengan el dígito de la casilla cas.
bool InCol() const
Informa sobre si el grupo está enteramente contenido en una columna.
bool InCubo() const
Informa sobre si el grupo está enteramente contenido en un cubo.
int getSuma() const
Recupera la suma asociada al grupo.
void limp_comb_en_fila(const Casilla &cas)
Limpia todas las combinaciones de la fila que contengan el dígito de la casilla cas.
const vector< Casilla > & getCasillas() const
Recupera las casillas de grupo.
void limp_comb_no_en_col(const Casilla &cas)
Limpia todas las posiciones que tengan al dígito de cas en una casilla en la col en la que se encuent...
bool esta_en_el_borde(const Casilla &cas)
Controla si cierta casilla del grupo está en el borde de éste (puede eliminarse sin desconectar el gr...
int CuantasFuera_cubo(const Casilla &cubo) const
Devuelve cuántas casillas se quedan fuera de "cubo".
const vector< vector< vector< int > > > & getCombinaciones() const
Recupera las combinaciones posibles del grupo (basadas en el instante del tablero)
void setCombinaciones(const vector< vector< vector< int >>> &comb)
Fija las combinaciones posibles del grupo (basadas en el instante del tablero)
int CuantasFuera_col(const Casilla &col) const
Devuelve cuántas casillas se quedan fuera de "col".
const vector< Casilla > & obtener_determinados() const
Obtiene las casillas totalmente determinadas por un proceso de eliminación de posiciones....
void limp_comb_en_cubo(const Casilla &cas)
Limpia todas las combinaciones del cubo que contengan el dígito de la casilla cas.
void quitar_casilla(const Casilla &cas)
Se ejecutará al escribir una casilla para quitarla del grupo Esto tiene como propósito ir simplifican...
int suma
Suma de los valores de las casillas del grupo.
Definition: Grupo.h:43
void setSuma(int sum)
Fija la suma asociada al grupo.
void rellena_comb_y_pos()
Rellena las todas las posibles sumas del grupo con cada una de sus posiciones posibles.
int CuantasFuera_fila(const Casilla &fila) const
Devuelve cuántas casillas se quedan fuera de "fila".
void limp_comb_no_en_fila(const Casilla &cas)
Limpia todas las posiciones que tengan al dígito de cas en una casilla en la fila en la que se encuen...
void setCasillas(const vector< Casilla > &cas)
Fija las casillas de grupo.
vector< vector< vector< int > > > combinaciones
Vector de matrices, donde cada matriz representa una combinación y dentro de esa matriz cada columna ...
Definition: Grupo.h:64
void limp_comb_no_en_cubo(const Casilla &cas)
Limpia todas las posiciones que tengan al dígito de cas en una casilla en el cubo en la que se encuen...
bool InFila() const
Informa sobre si el grupo está enteramente contenido en una fila.
vector< Casilla > grupo
Array de casillas que tiene el grupo.
Definition: Grupo.h:50