38 for (
int i = 0; i < 9; i++)
53 for (
int i = 0; i < 3; i++)
60 for (
int i = 0; i < 3; i++)
81 for (
int i = 0; i < 9; i++)
92 for (
int i = 0; i < 9; i++)
99 return TString().
printf(
"%c%d",
'a' + diferenca % 3, 1 + diferenca / 3);
106 for (
int i = 0; i < 3; i++)
107 printf(
" %c",
'A' + i);
108 for (
int i = 0; i < 3; i++) {
111 for (
int j = 0; j < 3; j++)
113 printf(
" %d ", i + 1);
117 for (
int i = 0; i < 3; i++)
118 printf(
" %c",
'A' + i);
136 for (
int i = 0; i < 3; i++)
141 for (
int i = 0; i < 3; i++)
162 for (
int i = 0, index = 0; i < 9; i++, index += 2)
176 for (
int i = 0; i < 3; i++) {
193 for (
int i = 0; i < 3; i++)
194 for (
int j = 0; j < 3; j++)
196 peso += Indice(i, j);
198 peso += Indice(i, j) * 100;
203void CJogoDoGalo::Simetria(
TVector<char>& tabuleiro,
int eixo) {
205 for (
int i = 0; i < 3; i++)
206 for (
int j = 0; j < 1; j++)
209 else if (eixo == 1) {
210 for (
int i = 0; i < 1; i++)
211 for (
int j = 0; j < 3; j++)
215 for (
int i = 0; i < 3; i++)
216 for (
int j = i + 1; j < 3; j++)
221void CJogoDoGalo::Troca(
char& a,
char& b) {
void Sucessores(TVector< TNo > &sucessores)
Coloca em sucessores a lista de estados sucessores.
void Codifica(TBits &estado)
Codifica o estado para um vetor de inteiros de 64 bits.
TProcuraConstrutiva * Duplicar(void)
Cria um objecto que é uma cópia deste.
void TesteManual(const char *nome)
int Heuristica(void)
Função para calcular quanto falta para o final, o valor da heurística.
TVector< char > tabuleiro
bool SolucaoCompleta(void)
Verifica se o estado actual é objectivo (é uma solução completa)
void Debug(bool completo=true) override
Mostra o estado no ecrã, para debug.
void Inicializar(void)
Coloca o objecto no estado inicial da procura.
TString Acao(TProcuraConstrutiva *sucessor)
void Copiar(TProcuraConstrutiva *objecto)
void SetBits(uint64_t value, int bitIndex, int bitCount)
void Sucessores(TVector< TNo > &sucessores)
Coloca em sucessores a lista de estados sucessores.
bool minimizar
o jogador actual deve minimizar o custo (ou maximizar caso tenha o valor falso)
int Heuristica(void)
chamar após calcular a heurística (grava o valor, dependendo da parametrização)
bool ExisteHeuritica(void)
static int infinito
valor de infinito (vitoria/derrota), omissao 1000
static int resultadoCompleto
resultado após SolucaoCompleta() retornar true (-1 vitória minimizar, 0 empate, 1 vitória maximizar)
Representa um estado no espaço de estados.
void NovaLinha(bool tudo=true)
static bool memoriaEsgotada
Flag indicando problemas de memória esgotada.
virtual void TesteManual(TString nome)
Inicializa a interação com o utilizador.
static TParametro instancia
ID da instância atual, a ser utilizado em SolucaoVazia().
TString & printf(const char *fmt,...)
TVector< Item > & Reset(Item const &i)
Preenche todo o vetor com um mesmo valor.
void Inicializar(void) override
Coloca o objecto no estado inicial da procura.
virtual void Codifica(TBits &estado)
Codifica o estado para um vetor de inteiros de 64 bits.
int heuristica
Estimativa para o custo até um estado objetivo, se disponível.