29 for (
int i = 0;
i < 9;
i++)
48 static int direcao[] = { -3,3,-1,1 };
50 for (
int i = 0;
i < 4;
i++) {
67 for (
int i = 0;
i < 9;
i++)
79 for (
int i = 1;
i < 9;
i++) {
104 for (
int i = 0;
i < 3;
i++) {
106 for (
int j = 0;
j < 3;
j++)
133 for (
int i = 0;
i < 3;
i++) {
135 for (
int j = 0;
j < 3;
j++)
174 for (
int i = 0;
i < 9;
i++)
184 for (
int i = 0, index = 0;
i < 9;
i++, index += 4)
@ estadosRepetidos
Forma de lidar com estados repetidos (ignorá-los, ascendentes, gerados).
@ ascendentes
estados são comparados com ascendentes, e se forem repetidos são removidos
@ ignorados
ignorados os estados gerados repetidos
@ passos
Exibe passos intermediários.
Representa um estado do puzzle 8.
bool SolucaoCompleta(void)
Verifica se o estado actual é objectivo (é uma solução completa)
void MostrarSolucao(void)
definir para visualizar a solução
int Heuristica(void)
Função para calcular quanto falta para o final, o valor da heurÃstica.
void Codifica(uint64_t estado[OBJETO_HASHTABLE])
Codifica o estado para um vetor de inteiros de 64 bits.
void Sucessores(TVector< TNo > &sucessores)
Coloca em sucessores a lista de estados sucessores.
const char * Acao(TProcuraConstrutiva *sucessor)
void Debug(void)
Mostra o estado no ecrã, para debug.
bool Distinto(TProcuraConstrutiva *estado)
void Inicializar(void)
Coloca o objecto no estado inicial da procura.
void ResetParametros()
Inicializa os parametros, indicadores e instâncias.
TProcuraConstrutiva * Duplicar(void)
Cria um objecto que é uma cópia deste.
void Copiar(TProcuraConstrutiva *objecto)
Representa um estado no espaço de estados.
void NovaLinha(bool tudo=true)
static void LibertarVector(TVector< TNo > &vector, int excepto=-1, int maiorQue=-1)
static bool memoriaEsgotada
Flag indicando problemas de memória esgotada.
static int resultado
Resultado retornado pelo algoritmo na última execução.
static TParametro instancia
ID da instância atual, a ser utilizado em SolucaoVazia().
static TVector< TParametro > parametro
Parâmetros a serem utilizados na configuração atual.
virtual void Sucessores(TVector< TNo > &sucessores)
Coloca em sucessores a lista de estados sucessores.
void Inicializar(void) override
Coloca o objecto no estado inicial da procura.
void ResetParametros() override
Redefinição. Ver TProcura::ResetParametros().
virtual int Heuristica(void)
Função para calcular quanto falta para o final, o valor da heurÃstica.
virtual void Codifica(uint64_t estado[OBJETO_HASHTABLE])
Codifica o estado para um vetor de inteiros de 64 bits.
static int tamanhoCodificado
Número de inteiros de 64 bits utilizados para codificar um objeto (≤ OBJETO_HASHTABLE).
static TVector< TNo > caminho
Solução retornada pela procura (os estados devem ser libertados).
int valor
valor do parametro