Problema com acesso a um array de uma classe

5 respostas
E

Pessoal, tenho uma classe java que armazena as cartas de um baralho (naipe, nome e com setters e getters).
Tenho também uma classe para armazenar os jogadores do jogo, onde eu armazeno o nome do jogador e as cartas do mesmo.
O problema é justamente aqui, não estou conseguindo instanciar as cartas para o jogador. Segue a lógica que fiz para o problema, vou mostrar somente a parte onde estou com problema para melhorar a visualização:

Classe Carta:
private String naipe;
	private String valor;
	
	public String getNaipe() {
		return naipe;
	}
	
	public void setNaipe(String naipe) {
		this.naipe = naipe;
	}
	
	public String getValor() {
		return valor;
	}
	
	public void setValor(String valor) {
		this.valor = valor;
	}
Classe jogador:
private String nomeJogador;
	private Carta[] carta;
	
	public Carta[] getCarta() {
		return carta;
	}

	public void setCarta(Carta[] carta) {
		this.carta = carta;
	}

	public String getNomeJogador() {
		return nomeJogador;
	}
	
	public void setNomeJogador(String nomeJogador) {
		this.nomeJogador = nomeJogador;
	}

Preciso de ajuda para instanciar 13 cartas para cada jogador, estou fazendo algo de errado? Como ficaria o código para minhas instâncias?

5 Respostas

H

mostra como vc está tentando chamar os métodos… onde vc quer instanciar as cartas?

Luiz_Aguiar

Sua dificuldade esta sendo em exatamente o que? não conssgui entender direito o que vc não esta conseguindo fazer…

cassio

Olá,

Acho que vc está se confundindo um pouco com arrays…
Quando vc vai setar um carta para o jogador, como saber QUAL carta vc está setando? Afinal, o jogador deveria ter um deck com 13 delas, certo? qual das 13 vc quer definir?
Acho que seu método setCarta() deveria ter a seguinte forma:

private Carta deck[] = new Carta[13];

//mais codigo...

public void setCarta(Carta carta, int index){
   deck[index-1] = carta;
}

…onde deck seria um array de cartas (vc tbm não declarou isso, como iria armazenar as cartas do jogador?) e index seria o indice da carta que vc quer definir dentro do seu deck. Eu utilizei index-1 porque em Java arrays tem 0 (zero) como seu primeiro índice…

De maneira análoga, o método getCarta() ficaria assim

public Carta getCarta(int index){
   return deck[index-1];
}

Aqui vc passa como parâmetro o índice da carta que vc quer.

E

Pessoal, a minha dúvida é justamente o que foi relatado pelo Cássio. O meu problema é instanciar as treze cartas para cada jogador. Acho que o código do Cássio já me clareou bastante as idéias. Vou testar aqui e dou mais informações se não conseguir resolver o problema.

Desde já, obrigado a todos.

E

Bom, fiz alguns ajustes e ficou certinho. Obrigado pela ajuda!

Criado 7 de dezembro de 2006
Ultima resposta 7 de dez. de 2006
Respostas 5
Participantes 4