Boa tarde.
Eu criei uma classe chamada Cards.
class Cards {
private String naipe, valor;
private boolean estado = false;
public Cards(int naipe, int valor){
switch (naipe){
case 0:
this.naipe = “Ouros”;
break;
case 1:
this.naipe = “Espadas”;
break;
case 2:
this.naipe = “Copas”;
break;
case 3:
this.naipe = “Paus”;
break;
default:
System.out.println(“Você deve ter ingerido tóxicos!”);
}
switch (valor){
case 1:
this.valor = "Às";
break;
case 11:
this.valor = "Valete";
break;
case 12:
this.valor = "Dama";
break;
case 13:
this.valor = "Reis";
break;
default:
this.valor = Integer.toString(valor);
}
}
public String showCard(){
String str = this.valor + " " + this.naipe;
return str;
}
}
Se eu instanciar um objeto (myCard) da classe Cards no main eu consigo usar System.out.println(myCard.ShowCard());
Aparece na tela o valor e o naipe da carta. Até aí normal.
Depois eu criei uma classe chamada Deck. Essa classe serve para criar 52 cartas únicas, 13 de cada naipe.
class Deck {
int id = 0;
Cards[] deck = new Cards[52];
public Deck(){
for (int i=0; i<4; i++){
for (int j=1; j<14; j++){
Cards card = new Cards(i,j);
deck[id] = card;
id++;
}
}
}
}
Agora estou querendo testar o programa até essa parte. Para isso preciso exibir uma carta na tela.
Estou tentando fazer:
Deck myDeck = new Deck();
System.out.println(myDeck[3].ShowCard());
Mas o compilador diz que uma Array é esperada e está encontrando Deck.
Eu estou usando um compilador online.