• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

softklin

Dúvida entre relação entre classes num jogo

4 mensagens neste tópico

Olá pessoal.

Estou já há bastante tempo a tentar criar um jogo de damas utilizando programação OO. O problema é que parece que não passo da fase de desenho, porque estou aqui com um problema que não me deixa avançar mais. Adiante:

Tenho três classes: Tabuleiro, Jogador, Peça (tenho mais, mas são irrelevantes para o caso). Estou a planear que será a classe Tabuleiro a tratar de toda a interactividade no jogo (mover peças, ajustar pontuações, ...). Logo, pensei em definir por composição (como atributos) as classes Jogador e Peças dentro do Tabuleiro.

O meu problema está em por exemplo, saber que peça pertence a dado jogador. Inicialmente pensei em colocar as peças como atributos do Jogador, mas não era muito prático para o Tabuleiro lhes ter acesso.

Como sugerem fazer? E do que acham desta solução de desenho? Acham que deva alterar algo? Como fariam? Outra alternativa que pensei seria criar um par Jogador/Peças, mas não sei muito bem como o fazer. Se interessar, estou a usar VB.net para criar o jogo.

Cumps, e obrigado em avanço.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A classe Tabuleiro é que deve ter as peças, de um ponto de vista lógico.

Podes ter um array em que cada posição do tabuleiro tenha uma referência para a peça. Depois em cada peça podes ter uma referência para o jogador que tem a peça.

Existem n maneiras de fazer, e em matérias de design é tudo muito subjectivo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Humm, estava a "mapear" as peças com um Dicionário Coordenadas/Peça, mas a sugestão dos arrays parece ser mais simples e igualmente directa em termos de acesso.

Agora ter uma referência para o Jogador na Peça... Talvez. Quando fosse necessário, era comparar o jogador actual com a referência na Peça... mas isso implica ter de redefinir o equals especificamente para essa situação...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Humm, estava a "mapear" as peças com um Dicionário Coordenadas/Peça, mas a sugestão dos arrays parece ser mais simples e igualmente directa em termos de acesso.

Sim, usa uma matriz em vez do mapa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora