TProcuraAdversa
Algoritmos de procura adversa
Loading...
Searching...
No Matches
JogoDoGalo.h
Go to the documentation of this file.
1#pragma once
2#include "../TProcuraAdversa.h"
3
5// CJogoDoGalo class
7// Author: José Coelho
8// Last revision: 2025-01-30
9// Description:
10// Implementa o Jogo do Galo. Este jogo e jogado num tabuleiro 3x3 por dois jogadores
11// em que cada jogador joga a vez numa posicao vazia, colocando a sua marca.
12// Ganha o jogador que conseguir fazer 3 em linha com a sua marca.
15 public TProcuraAdversa
16{
17public:
18 CJogoDoGalo(void);
19 ~CJogoDoGalo(void);
20
21 // estrutura de dados
23
24 // métodos virtuais redefinidos
25
27 void Copiar(TProcuraConstrutiva* objecto);
28 void SolucaoVazia(void);
29 void Sucessores(TVector<TNo>&sucessores);
30 bool SolucaoCompleta(void);
31 void Debug(void);
32 const char* Acao(TProcuraConstrutiva* sucessor);
33 void TesteManual(const char* nome);
34 void Codifica(uint64_t estado[OBJETO_HASHTABLE]);
35 int Heuristica(void);
36
37private:
38 // métodos de normalização de um estado
39 void Normalizar(TVector<char>& tabuleiro); // coloca em tabuleiro o estado normalizado
40 int PesoVersao(TVector<char>& tabuleiro); // peso da versão do estado
41 void Simetria(TVector<char>& tabuleiro, int eixo); // aplica uma simetria
42 void Troca(char& a, char& b); // troca dois valores
43 int Codigo(char peca) { return peca == 'x' ? 1 : (peca == 'o' ? 2 : 3); }
44 int Indice(int i, int j) { return i * 3 + j; }
45};
#define OBJETO_HASHTABLE
void Sucessores(TVector< TNo > &sucessores)
Coloca em sucessores a lista de estados sucessores.
TProcuraConstrutiva * Duplicar(void)
Cria um objecto que é uma cópia deste.
void TesteManual(const char *nome)
Inicializa a interação com o utilizador.
void Debug(void)
Mostra o estado no ecrã, para debug.
int Heuristica(void)
Função para calcular quanto falta para o final, o valor da heurística.
TVector< char > tabuleiro
Definition JogoDoGalo.h:22
bool SolucaoCompleta(void)
Verifica se o estado actual é objectivo (é uma solução completa)
void Codifica(uint64_t estado[OBJETO_HASHTABLE])
Codifica o estado para um vetor de inteiros de 64 bits.
void SolucaoVazia(void)
Coloca o objecto no estado inicial da procura.
~CJogoDoGalo(void)
Definition JogoDoGalo.cpp:8
const char * Acao(TProcuraConstrutiva *sucessor)
void Copiar(TProcuraConstrutiva *objecto)
CJogoDoGalo(void)
Definition JogoDoGalo.cpp:4
Representa um estado no espaço de estados.
Representa um estado no espaço de estados.