Problema ao manipular Array de String

5 respostas
brunoties

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() {
}

}

5 Respostas

Rodrigo_Sasaki

não seria melhor seu objeto carta ter só 1 atributo Nipe e 1 atributo Valor? sem esses arrays…

e talvez os arrays se transformem em Enums. são só ideias.

brunoties

Olá digaoneves,

não sei, o meu professor da faculdade falou que geralmente não é boa prática utilizar enum.

Com atributo simples eu consegui fazer, mas agora eu queria pré-definir um conjunto de opções fixas para esses atributos, e criar objetos, definindo uma dessas opções, por referência, mas não estou conseguindo.

Como eu faria se fosse enum? Poderia me ajudar?

O que acha sobre enum ser ou não ser boa prática?

Rodrigo_Sasaki

é exatamente isso que o enum faz. na prática vai ficar na mesma… mas como isso vai ser sempre igual, eu acho enum mais organizado… um exemplo ficaria assim:Carta reiDeCopas = new Carta(Valores.REI, Nipes.COPAS); Mas o mesmo pode ser feito por um array.

Talvez essa não seja a sua dúvida. Se não for, tente elaborar melhor.

brunoties

Muito obrigado digaoneves, pela paciência e disponibilidade…

Eu vou voltar a ler sobre a implementação de enum, para poder usar nesse exemplo. Que quando eu estava nessa parte, parei, devido ao comentário do professor.

Mais uma vez, obrigado.

Rodrigo_Sasaki

brunoties:
Muito obrigado digaoneves, pela paciência e disponibilidade…

Eu vou voltar a ler sobre a implementação de enum, para poder usar nesse exemplo. Que quando eu estava nessa parte, parei, devido ao comentário do professor.

Mais uma vez, obrigado.


Sem problemas. Essa minha solução pode não ser a melhor para o seu caso, mas mesmo assim incentivo a ler sobre Enums, é sempre bom ter o conhecimento.

Criado 3 de setembro de 2012
Ultima resposta 3 de set. de 2012
Respostas 5
Participantes 2