TP_PDS2
Sistema para gestão de jogadores e execução de jogos clássicos
 
Loading...
Searching...
No Matches
Reversi Class Reference

Classe que implementa o jogo Reversi. More...

#include <Reversi.hpp>

Inheritance diagram for Reversi:
Collaboration diagram for Reversi:

Public Member Functions

 Reversi ()
 Construtor da classe Reversi.
 
void iniciar () override
 Inicializa o jogo.
 
void lerJogada (int &linha) override
 Lê a jogada do jogador atual (versão não utilizada).
 
void lerJogada (int &linha, int &coluna) override
 Lê a jogada do jogador atual.
 
void alternarJogador ()
 Alterna o jogador atual.
 
bool validarJogada (int linha) override
 Valida a jogada do jogador (versão não utilizada).
 
bool validarJogada (int linha, int coluna) override
 Valida a jogada do jogador.
 
bool validarVitoria () override
 Verifica se há um vencedor ou empate.
 
int getJogadorAtual () override
 Retorna o jogador atual.
 
- Public Member Functions inherited from Jogo
 Jogo (const std::string &nome, int linhas, int colunas)
 Construtor da classe Jogo.
 
void exibirTabuleiro () const
 Exibe o tabuleiro do jogo.
 
virtual ~Jogo ()=default
 Destrutor virtual da classe Jogo.
 

Private Member Functions

bool podeCapturar (int linha, int coluna, int deltaLinha, int deltaColuna) const
 Verifica se é possível capturar peças em uma direção.
 
void capturarPecas (int linha, int coluna, int deltaLinha, int deltaColuna)
 Captura as peças do oponente em uma direção.
 

Private Attributes

int jogadorAtual
 Indica o jogador atual (1 ou 2).
 

Additional Inherited Members

- Protected Attributes inherited from Jogo
const std::string nomeJogo
 Nome do jogo.
 
Tabuleiro tabuleiro
 Tabuleiro do jogo.
 

Detailed Description

Classe que implementa o jogo Reversi.

O Reversi é um jogo de estratégia em que dois jogadores alternam turnos para colocar peças no tabuleiro, capturando as peças do oponente. A classe herda da classe base Jogo e implementa seus métodos virtuais.

Constructor & Destructor Documentation

◆ Reversi()

Reversi::Reversi ( )

Construtor da classe Reversi.

Inicializa o jogo com um tabuleiro 8x8 e define o jogador 1 como o primeiro a jogar.

Here is the call graph for this function:

Member Function Documentation

◆ alternarJogador()

void Reversi::alternarJogador ( )

Alterna o jogador atual.

Muda o jogador atual de 1 para 2 ou de 2 para 1.

Here is the caller graph for this function:

◆ capturarPecas()

void Reversi::capturarPecas ( int linha,
int coluna,
int deltaLinha,
int deltaColuna )
private

Captura as peças do oponente em uma direção.

A partir de uma posição específica, captura as peças do oponente em uma direção dada por deltaLinha e deltaColuna.

Parameters
[in]linhaLinha da posição inicial.
[in]colunaColuna da posição inicial.
[in]deltaLinhaDireção vertical da captura (-1, 0, 1).
[in]deltaColunaDireção horizontal da captura (-1, 0, 1).
Here is the caller graph for this function:

◆ getJogadorAtual()

int Reversi::getJogadorAtual ( )
overridevirtual

Retorna o jogador atual.

Returns
int O jogador atual (1 ou 2).

Implements Jogo.

◆ iniciar()

void Reversi::iniciar ( )
overridevirtual

Inicializa o jogo.

Configura o tabuleiro com as peças iniciais e exibe uma mensagem de boas-vindas.

Implements Jogo.

Here is the call graph for this function:

◆ lerJogada() [1/2]

void Reversi::lerJogada ( int & linha)
overridevirtual

Lê a jogada do jogador atual (versão não utilizada).

Este método é mantido para compatibilidade com a interface base, mas não é utilizado no Reversi, pois o jogo requer a escolha de linha e coluna.

Parameters
[out]linhaLinha (não utilizada no Reversi).

Implements Jogo.

Here is the caller graph for this function:

◆ lerJogada() [2/2]

void Reversi::lerJogada ( int & linha,
int & coluna )
overridevirtual

Lê a jogada do jogador atual.

Solicita ao jogador atual que insira a linha e a coluna onde deseja jogar.

Parameters
[out]linhaLinha escolhida pelo jogador (1-8).
[out]colunaColuna escolhida pelo jogador (1-8).

Implements Jogo.

◆ podeCapturar()

bool Reversi::podeCapturar ( int linha,
int coluna,
int deltaLinha,
int deltaColuna ) const
private

Verifica se é possível capturar peças em uma direção.

Verifica se, a partir de uma posição específica, é possível capturar peças do oponente em uma direção dada por deltaLinha e deltaColuna.

Parameters
[in]linhaLinha da posição inicial.
[in]colunaColuna da posição inicial.
[in]deltaLinhaDireção vertical da verificação (-1, 0, 1).
[in]deltaColunaDireção horizontal da verificação (-1, 0, 1).
Returns
true Se a captura é possível.
false Caso contrário.
Here is the caller graph for this function:

◆ validarJogada() [1/2]

bool Reversi::validarJogada ( int linha)
overridevirtual

Valida a jogada do jogador (versão não utilizada).

Este método é mantido para compatibilidade com a interface base, mas não é utilizado no Reversi, pois o jogo requer a escolha de linha e coluna.

Parameters
[in]linhaLinha (não utilizada no Reversi).
Returns
true Se a jogada é válida.
false Se a jogada é inválida.

Implements Jogo.

Here is the caller graph for this function:

◆ validarJogada() [2/2]

bool Reversi::validarJogada ( int linha,
int coluna )
overridevirtual

Valida a jogada do jogador.

Verifica se a posição escolhida é válida e se resulta em captura de peças do oponente.

Parameters
[in]linhaLinha escolhida pelo jogador.
[in]colunaColuna escolhida pelo jogador.
Returns
true Se a jogada é válida.
false Se a jogada é inválida.

Implements Jogo.

Here is the call graph for this function:

◆ validarVitoria()

bool Reversi::validarVitoria ( )
overridevirtual

Verifica se há um vencedor ou empate.

Verifica se o jogo terminou (tabuleiro cheio ou sem jogadas válidas) e determina o vencedor com base na contagem de peças.

Returns
true Se houver um vencedor ou empate.
false Se o jogo deve continuar.

Implements Jogo.

Here is the caller graph for this function:

Member Data Documentation

◆ jogadorAtual

int Reversi::jogadorAtual
private

Indica o jogador atual (1 ou 2).


The documentation for this class was generated from the following files: