Dúvida implementação de interface

Dúvida implementação de interface

por Marjorie Takai -
Número de respostas: 11
Olá,
bom, mais uma coisa em que me perdi:
não entendi como implementa a interface Estrategia.

public interface Estrategia
{
int [] encontraProximaJogada(Tabuleiro meu, Tabuleiro adversario);
Tabuleiro criaTabuleiro();
}

como assim ?
"Tabuleiro criaTabuleiro();"

grata,

Marjorie
Em resposta à Marjorie Takai

Re: Dúvida implementação de interface

por Alfredo Goldman -
Olá Pessoal,
Como esta é uma dúvida de vários, vou tentar explicar com mais detalhes.
A estratégia do jogo depende de dois fatores, a escolha do Tabuleiro e as
jogadas em si.
Logo, a classe Estratégia possui estas duas fases. Criar o tabuleiro e fazer
as jogadas (já conhecendo o Tabuleiro adversário).
A ideia por trás de se criar um objeto do tipo Tabuleiro e não uma matriz
4x4 é permitir uma maior flexibilidade para consultas (como por exemplo
ver as jogadas anteriores). Mas, para implementar o criaTabuleiro, basta
criar uma matriz e colocá-la em um objeto Tabuleiro.

Alfredo
Em resposta à Alfredo Goldman

Re: Dúvida implementação de interface

por Gabriel Nascimento -
O que eu não entendi é o seguinte, e acho que é a mesma dúvida da Marjorie.

Ok, vc cria o tabuleiro e faz as jogadas, já conhecendo o tabuleiro adversário. Mas aí, vc cria OUTRO tabuleiro pra consultar as jogadas anteriores (como exemplo), só que nesse OUTRO tabuleiro, que é diferente dos dois tabuleiros dos jogadores?
Em resposta à Gabriel Nascimento

Re: Dúvida implementação de interface

por Alfredo Goldman -
Olá,
Acho que finalmente entendi a dúvida.
A dinâmica do jogo é a seguinte.
Primeiro se faz uma chamada a criaTabuleiro em um objeto da classe
Estratégia.
Em seguida, chama-se o método que faz a jogada enquanto não houver
vencedor.
Após o final, pode se jogar uma nova partida chamando o método
criaTabuleiro novamente.

Alfredo
Em resposta à Alfredo Goldman

Re: Dúvida implementação de interface

por Gabriel Nascimento -
Então este criaTabuleiro final serve para começar um novo jogo depois que houver um vencedor?

Se for isso, não entendi por que o criaTabuleiro está dentro da Estratégia... mostrando a língua

Porque, se fosse para começar um novo jogo, não faria mais sentido a pessoa iniciar o programa novamente, mesmo que fosse cansativo ter que fazer isso toda vez pra começar outro jogo?
Ou até mesmo perguntar "Deseja iniciar um novo jogo?"...
Em resposta à Gabriel Nascimento

Re: Dúvida implementação de interface

por Alfredo Goldman -
Olá Gabriel,
Um programa com uma jogada mais sofisticada, pode tentar aprender com
os movimentos do outro. Neste caso é necessário que se mantenha o mesmo
"objeto funcionando".

Alfredo

ps: As notas da p2 estão no paca
Em resposta à Marjorie Takai

Re: Dúvida implementação de interface

por Rodrigo Kurosawa -
Professor, tenho uma dúvida sobre interface.

Quando eu crio uma classe que implementa os métodos de uma interface X, essa classe será um objeto do tipo X?
Ou o objeto que você fala são os objetos que estamos acostumados? (os que executam métodos de classes)

Por exemplo, no EP, nós devemos fazer a interface Tabuleiro, e devemos criar dois objetos desse tipo para usar em Estratégia: Tabuleiro meu e Tabuleiro adversário.
Esses tabuleiros devem ser as classes (que implementam os métodos da interface Tabuleiro)?

Em resposta à Rodrigo Kurosawa

Re: Dúvida implementação de interface

por Gabriel Nascimento -
Rods, assim:
vc tem já tem a interface Tabuleiro com os métodos que ela faz.
Quando vc diz "Tabuleiro meu", é como se vc tivesse fazendo:
"Tabuleiro meu = new Tabuleiro()"
o mesmo para Tabuleiro adversário. sorriso
Em resposta à Rodrigo Kurosawa

Re: Dúvida implementação de interface

por Gabriel Nascimento -
Rods, falei fezes... oq eu falei, na verdade é assim:
Tabuleiro meu = new (nome da classe q tem os métodos da interface Tabuleiro)