Dúvida implementação de interface

Dúvida implementação de interface

by Marjorie Takai -
Number of replies: 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
In reply to Marjorie Takai

Re: Dúvida implementação de interface

by 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
In reply to Alfredo Goldman

Re: Dúvida implementação de interface

by 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?
In reply to Gabriel Nascimento

Re: Dúvida implementação de interface

by 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
In reply to Alfredo Goldman

Re: Dúvida implementação de interface

by 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... tongueout

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?"...
In reply to Gabriel Nascimento

Re: Dúvida implementação de interface

by 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
In reply to Marjorie Takai

Re: Dúvida implementação de interface

by 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)?

In reply to Rodrigo Kurosawa

Re: Dúvida implementação de interface

by 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. smile
In reply to Rodrigo Kurosawa

Re: Dúvida implementação de interface

by 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)