O problema é que ao manipular os dados no array, ele retorna sempre a última carta inserida, não importa a posição. Talvez alguém aí saiba onde está o erro na minha lógica...
Segue o código:
public class EncontraCoringa {
private int max = 54;
private int numCartas = 3;
private int coringa = 53;
private int posCoringa;
private int posCarta;
private Carta crt;
private Carta[] baralho;
private Carta[] listaCartas;
public void setBaralho(){
crt = new Carta();
baralho = new Carta[max];
for (int i=0; i < max; i++) {
baralho[i] = new Carta();
}
crt.setCodigo(1);
crt.setNome("2_copas.png"
crt.setValor(2);
crt.setNaipe(1);
baralho[0] = crt;
crt.setCodigo(2);
crt.setNome("3_copas.png"
crt.setValor(3);
crt.setNaipe(1);
baralho[1] = crt;
crt.setCodigo(3);
crt.setNome("4_copas.png"
crt.setValor(4);
crt.setNaipe(1);
baralho[2] = crt;
crt.setCodigo(4);
crt.setNome("5_copas.png"
crt.setValor(5);
crt.setNaipe(1);
baralho[3] = crt;
crt.setCodigo(5);
crt.setNome("6_copas.png"
crt.setValor(6);
crt.setNaipe(1);
baralho[4] = crt;
crt.setCodigo(6);
crt.setNome("7_copas.png"
crt.setValor(7);
crt.setNaipe(1);
baralho[5] = crt;
crt.setCodigo(7);
crt.setNome("8_copas.png"
crt.setValor(8);
crt.setNaipe(1);
baralho[6] = crt;
crt.setCodigo(8);
crt.setNome("9_copas.png"
crt.setValor(9);
crt.setNaipe(1);
baralho[7] = crt;
crt.setCodigo(9);
crt.setNome("10_copas.png"
crt.setValor(10);
crt.setNaipe(1);
baralho[8] = crt;
crt.setCodigo(10);
crt.setNome("J_copas.png"
crt.setValor(11);
crt.setNaipe(1);
baralho[9] = crt;
crt.setCodigo(11);
crt.setNome("Q_copas.png"
crt.setValor(12);
crt.setNaipe(1);
baralho[10] = crt;
crt.setCodigo(12);
crt.setNome("K_copas.png"
crt.setValor(13);
crt.setNaipe(1);
baralho[11] = crt;
crt.setCodigo(13);
crt.setNome("A_copas.png"
crt.setValor(14);
crt.setNaipe(1);
baralho[12] = crt;
crt.setCodigo(14);
crt.setNome("2_espadas.png"
crt.setValor(2);
crt.setNaipe(2);
baralho[13] = crt;
crt.setCodigo(15);
crt.setNome("3_espadas.png"
crt.setValor(3);
crt.setNaipe(2);
baralho[14] = crt;
crt.setCodigo(16);
crt.setNome("4_espadas.png"
crt.setValor(4);
crt.setNaipe(2);
baralho[15] = crt;
crt.setCodigo(17);
crt.setNome("5_espadas.png"
crt.setValor(5);
crt.setNaipe(2);
baralho[16] = crt;
crt.setCodigo(18);
crt.setNome("6_espadas.png"
crt.setValor(6);
crt.setNaipe(2);
baralho[17] = crt;
crt.setCodigo(19);
crt.setNome("7_espadas.png"
crt.setValor(7);
crt.setNaipe(2);
baralho[18] = crt;
crt.setCodigo(20);
crt.setNome("8_espadas.png"
crt.setValor(8);
crt.setNaipe(2);
baralho[19] = crt;
crt.setCodigo(21);
crt.setNome("9_espadas.png"
crt.setValor(9);
crt.setNaipe(2);
baralho[20] = crt;
crt.setCodigo(22);
crt.setNome("10_espadas.png"
crt.setValor(10);
crt.setNaipe(2);
baralho[21] = crt;
crt.setCodigo(23);
crt.setNome("J_espadas.png"
crt.setValor(11);
crt.setNaipe(2);
baralho[22] = crt;
crt.setCodigo(24);
crt.setNome("Q_espadas.png"
crt.setValor(12);
crt.setNaipe(2);
baralho[23] = crt;
crt.setCodigo(25);
crt.setNome("K_espadas.png"
crt.setValor(13);
crt.setNaipe(2);
baralho[24] = crt;
crt.setCodigo(26);
crt.setNome("A_espadas.png"
crt.setValor(14);
crt.setNaipe(2);
baralho[25] = crt;
crt.setCodigo(27);
crt.setNome("2_ouro.png"
crt.setValor(2);
crt.setNaipe(3);
baralho[26] = crt;
crt.setCodigo(28);
crt.setNome("3_ouro.png"
crt.setValor(3);
crt.setNaipe(3);
baralho[27] = crt;
crt.setCodigo(29);
crt.setNome("4_ouro.png"
crt.setValor(4);
crt.setNaipe(3);
baralho[28] = crt;
crt.setCodigo(30);
crt.setNome("5_ouro.png"
crt.setValor(5);
crt.setNaipe(3);
baralho[29] = crt;
crt.setCodigo(31);
crt.setNome("6_ouro.png"
crt.setValor(6);
crt.setNaipe(3);
baralho[30] = crt;
crt.setCodigo(32);
crt.setNome("7_ouro.png"
crt.setValor(7);
crt.setNaipe(3);
baralho[31] = crt;
crt.setCodigo(33);
crt.setNome("8_ouro.png"
crt.setValor(8);
crt.setNaipe(3);
baralho[32] = crt;
crt.setCodigo(34);
crt.setNome("9_ouro.png"
crt.setValor(9);
crt.setNaipe(3);
baralho[33] = crt;
crt.setCodigo(35);
crt.setNome("10_ouro.png"
crt.setValor(10);
crt.setNaipe(3);
baralho[34] = crt;
crt.setCodigo(36);
crt.setNome("J_ouro.png"
crt.setValor(11);
crt.setNaipe(3);
baralho[35] = crt;
crt.setCodigo(37);
crt.setNome("Q_ouro.png"
crt.setValor(12);
crt.setNaipe(3);
baralho[36] = crt;
crt.setCodigo(38);
crt.setNome("K_ouro.png"
crt.setValor(13);
crt.setNaipe(3);
baralho[37] = crt;
crt.setCodigo(39);
crt.setNome("A_ouro.png"
crt.setValor(14);
crt.setNaipe(3);
baralho[38] = crt;
crt.setCodigo(40);
crt.setNome("2_paus.png"
crt.setValor(2);
crt.setNaipe(4);
baralho[39] = crt;
crt.setCodigo(41);
crt.setNome("3_paus.png"
crt.setValor(3);
crt.setNaipe(4);
baralho[40] = crt;
crt.setCodigo(42);
crt.setNome("4_paus.png"
crt.setValor(4);
crt.setNaipe(4);
baralho[41] = crt;
crt.setCodigo(43);
crt.setNome("5_paus.png"
crt.setValor(5);
crt.setNaipe(4);
baralho[42] = crt;
crt.setCodigo(44);
crt.setNome("6_paus.png"
crt.setValor(6);
crt.setNaipe(4);
baralho[43] = crt;
crt.setCodigo(45);
crt.setNome("7_paus.png"
crt.setValor(7);
crt.setNaipe(4);
baralho[44] = crt;
crt.setCodigo(46);
crt.setNome("8_paus.png"
crt.setValor(8);
crt.setNaipe(4);
baralho[45] = crt;
crt.setCodigo(47);
crt.setNome("9_paus.png"
crt.setValor(9);
crt.setNaipe(4);
baralho[46] = crt;
crt.setCodigo(48);
crt.setNome("10_paus.png"
crt.setValor(10);
crt.setNaipe(4);
baralho[47] = crt;
crt.setCodigo(49);
crt.setNome("J_paus.png"
crt.setValor(11);
crt.setNaipe(4);
baralho[48] = crt;
crt.setCodigo(50);
crt.setNome("Q_paus.png"
crt.setValor(12);
crt.setNaipe(4);
baralho[49] = crt;
crt.setCodigo(51);
crt.setNome("K_paus.png"
crt.setValor(13);
crt.setNaipe(4);
baralho[50] = crt;
crt.setCodigo(52);
crt.setNome("A_paus.png"
crt.setValor(14);
crt.setNaipe(4);
baralho[51] = crt;
crt.setCodigo(53);
crt.setNome("coringa_preto.png"
crt.setValor(15);
crt.setNaipe(5);
baralho[52] = crt;
crt.setCodigo(54);
crt.setNome("coringa_vermelho.png"
crt.setValor(15);
crt.setNaipe(5);
baralho[53] = crt;
}
public void setPosCarta() {
this.setBaralho();
listaCartas = new Carta[numCartas];
posCoringa = 0 + (int)(Math.random() * (numCartas-1));
for (int i=0; i < numCartas; i++) {
if (i != posCoringa) {
posCarta = 0 + (int)(Math.random() * (max-2));
listaCartas[i] = this.baralho[posCarta];
} else {
listaCartas[i] = (this.baralho[coringa]);
}
}
// Adicionado para testes
for (int i = 0; i < numCartas; i++) {
System.out.println("Posição: "+i);
System.out.println("Código: "+this.listaCartas[i].getCodigo());
System.out.println("Nome: "+this.listaCartas[i].getNome());
System.out.println("---------------------------------------------"
}
}
}
E o resultado:
run:
Posição: 0
Código: 54
Nome: coringa_vermelho.png
---------------------------------------------
Posição: 1
Código: 54
Nome: coringa_vermelho.png
---------------------------------------------
Posição: 2
Código: 54
Nome: coringa_vermelho.png
---------------------------------------------
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)