10 #ifndef SUDOKU_TABLERO_H
11 #define SUDOKU_TABLERO_H
60 Tablero(
const vector<Grupo> &
grupos,
const vector<vector<Casilla>>& sdk);
Fichero cabecera del TDA Grupo.
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
TDA Tablero Representa al sudoku en sí; es decir, al tablero 9x9 con las casillas y los grupos.
Definition: Tablero.h:35
vector< Grupo > getGrupos_cubo(const Casilla &cubo) const
Devuelve un vector de los grupos que tienen al menos una casilla en ese cubo.
const Casilla & unico_casillas_fuera_fil(const Casilla &fila, int desp=0) const
Devuelve la casilla que se puede calcular (única fuera o única dentro). Devuelve casilla nula si no e...
void limpiar_basico(const Casilla &cas)
Dada la última casilla escrita en el tablero, limpia todas las combinaciones y posiciones de cada est...
vector< Grupo > getGrupos_col(const Casilla &col) const
Devuelve un vector de los grupos que tienen al menos una casilla en esa columna.
void set_casilla(const Casilla &casilla_escrita, bool limpiar=true)
Modifica el grupo de la casilla que escribe eliminándola de este, con el metodo quitar_casilla (Casil...
void metodo_45()
Escribe las casillas determinadas por el método del 45 (o derivados inmediatos).
vector< Grupo > grupos
Vector de los grupos que quedan en el sudoku.
Definition: Tablero.h:43
void limpiar(const Casilla &cas)
Actualiza el tablero. LLama a:
void rellenar_unitarias()
Rellena los grupos que tienen una sola casilla.
vector< Grupo > getGrupos_fila(const Casilla &fila) const
Devuelve un vector de los grupos que tienen al menos una casilla en esa fila.
Grupo & get_grupo(const Casilla &cas) const
Devuelve el grupo al que esta casilla pertenece.
void limpiar_unic_comb(const Casilla &cas)
Sobre cada uno de los grupos tocados por las estructuras a las que cas pertenece se comprobará:
void escribir_inmediatos()
Escribe las casillas inmediatas obtenidas:
void escribir_vector(const vector< Casilla > &a_escribir)
Escribe un vector de casillas en el tablero. Llama a Tablero::set_casilla()
void limpiar_fila(const Casilla &cas)
Dada la última casilla escrita en el tablero (o simulada), itera sobre todos los grupos con casillas ...
void limpiar_col(const Casilla &cas)
Dada la última casilla escrita (o simulada) en el tablero, itera sobre todos los grupos con casillas ...
void calcular_todas_combinaciones()
Rellena todas las combinaciones posibles (cada una con todas sus posiciones). LLama a calcular combin...
Tablero()
Constructor sin argumentos.
const Grupo & get_grupo(int pos) const
Devuelve el grupo correspondiente a la posición de este en el vector sudoku.
void escribir_determinados()
Itera sobre cada grupo llamando a escribe_determinados()
const Casilla & unico_casillas_fuera_col(const Casilla &col, int desp=0) const
Devuelve la casilla que se puede calcular (única fuera o única dentro). Devuelve casilla nula si no e...
vector< vector< Casilla > > sudoku
Matriz de Casillas que representan el tablero del sudoku en sí.
Definition: Tablero.h:48
const Casilla & unico_casillas_fuera_cubo(Casilla cubo, bool desp_dcha=false, bool desp_abj=false) const
Devuelve la casilla que se puede calcular (única fuera o única dentro). Devuelve casilla nula si no e...
void limpiar_cubo(const Casilla &cas)
Dada la última casilla escrita (o simulada) en el tablero, itera sobre todos los grupos con casillas ...
Tablero(const vector< Grupo > &grupos, const vector< vector< Casilla >> &sdk)
Constructor con vector de grupos y vector de vectores de casillas.