Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno TI ES

[Resolvido] Problema ao manipular Array de String

Recommended Posts

Olá Pessoal, estou aprendendo a linguagem e estou agarrado em um problema por 4 dias, e por isso estou pedindo ajuda. Talvez não mencione o termo correto, mas peço paciência, pois estou aprendendo, qualquer coisa, por favor, me corrijam.

 

Estou com o seguinte problema, venho tentando montar um baralho de cartas comum, genérico. Já consegui implementar de algumas formas, mas agora não estou conseguindo manipular os atributos nipe e valor, ambos do tipo array de strings, do objeto carta.

 

Estou tentando definir os atributos, passando o índice da respectiva posição da opção desejada do array pré-definido.

 

Qual seria uma boa prática de fazer isso?

 

public class CartaComum {

   private String nipe[] = {"Ouro", "Copas", "Paus", "Espada"};
   private String valor[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};

   public int getQtdNipe() {
       return nipe.length;
   }

   public int getQtdValor() {
       return valor.length;
   }

   public String[] getNipe() {
       return nipe;
   }

   public void setNipe(String[] nipe) {
       this.nipe = nipe;
   }

   public String[] getValor() {
       return valor;
   }

   public void setValor(String[] valor) {
       this.valor = valor;
   }

 

E uma Classe BaralhoSimbolos

 

public class BaralhoSimbolos {

   final static int QTD_CARTAS_COMUNS = 52;
   final static int QTD_CARTAS_CURINGAS = 2;
   private ArrayList<CartaComum> baralho;
   CartaCuringa curinga[];

   BaralhoSimbolos() {

       baralho = new ArrayList<CartaComum>();

       for (int i = 0; i < carta.getTamanhoNipe(); i++) {

           for (int j = 0; j <= qtdCartas; j++) {
               Carta c = new Carta();
               c.setNipe(i);
               c.setValor(j+1);

               baralho.add(c);

           }

       }
   }

   public void exibeBaralho() {
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você está utilizando o índice para definir o nipe e o valor da carta, você está passando um INT e não um ARRAY STRING. Nesse código:

public void setNipe(String[] nipe) {
   this.nipe = nipe;
}
public void setValor(String[] valor) {
   this.valor = valor;
}

Deveria ser assim:

private int idNipe;
private int idValor;
public void setNipe(int idNipe) {
   this.idNipe= idNipe;
}
public void setValor(int idValor) {
   this.idValor= idValor;
}

 

Você também deve retornar apenas uma string e não um vetor de strings quando quer saber o valor e o nipe. Isso:

public String[] getNipe() {
   return nipe;
}
public String[] getValor() {
   return valor;
}

Deveria ser assim:

public String getNipe() {
   return this.nipe[this.idNipe];
}
public String getValor() {
   return this.valor[this.idValor];
}

 

Entender os tipos de dados é fundamental para a criação OO. Sugiro estudar mais os tipos primitivos e os métodos de classe em java. Pois isso é fundamental para a construção de qualquer sistema na plataforma. Esse curso aborda bastante sobre os métodos das classes:

http://www.dm.ufscar.br/~waldeck/curso/java/part24.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você está utilizando o índice para definir o nipe e o valor da carta, você está passando um INT e não um ARRAY STRING. Nesse código:

public void setNipe(String[] nipe) {
   this.nipe = nipe;
}
public void setValor(String[] valor) {
   this.valor = valor;
}

Deveria ser assim:

private int idNipe;
private int idValor;
public void setNipe(int idNipe) {
   this.idNipe= idNipe;
}
public void setValor(int idValor) {
   this.idValor= idValor;
}

 

Você também deve retornar apenas uma string e não um vetor de strings quando quer saber o valor e o nipe. Isso:

public String[] getNipe() {
   return nipe;
}
public String[] getValor() {
   return valor;
}

Deveria ser assim:

public String getNipe() {
   return this.nipe[this.idNipe];
}
public String getValor() {
   return this.valor[this.idValor];
}

 

Entender os tipos de dados é fundamental para a criação OO. Sugiro estudar mais os tipos primitivos e os métodos de classe em java. Pois isso é fundamental para a construção de qualquer sistema na plataforma. Esse curso aborda bastante sobre os métodos das classes:

http://www.dm.ufscar.br/~waldeck/curso/java/part24.html

 

olá Gabriel Heming,

 

Muito obrigado pelo esclarecimento e pelo material extra, já clareou bastante... Vou fazer uns testes aqui e estudar o material.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.