Galera estou fazendo um jogo de truco para faculdade, e estou com a seguinte questão:
Tenho 4 listas com 3 cartas cada e preciso que essas cartas não saiam iguais, ate agr consegui fazer nao sair cartas iguais nas listas separadas
Nesse trecho é onde eu sorteio a carta:
package truco;
import java.util.*;
public class Cartas {
private String sorteiaNum(){
List<String> lista = new ArrayList<String>();
lista.add("2");
lista.add("3");
lista.add("4");
lista.add("5");
lista.add("6");
lista.add("7");
lista.add("A");
lista.add("K");
lista.add("J");
lista.add("Q");
Collections.shuffle(lista); //Embaralha a lista.
return lista.get(1);//retorna a primeira posicao da lista, porem embaralhada.
}
private String sorteiaNaip(){
List<String> lista2 = new ArrayList<String>();
lista2.add("Copas");
lista2.add("Espada");
lista2.add("Paus");
lista2.add("Ouro");
Collections.shuffle(lista2);
return lista2.get(1);
}
public String cartaFinal(){
return sorteiaNum()+sorteiaNaip();
}.
e aqui é onde eu faço a distribuição de carta
public class Jogador extends Cartas {
public void distribuirCartas(){
//Set<String> cartasJogador = new LinkedHashSet<>();
//Set cartasJogador = new HashSet();
List<String> cartasJogador = new ArrayList<String>();
for(int i=0; i<3; i++){
boolean novo=false;
while (!novo){
String aux = cartaFinal();
if(!verificaCarta(aux)){
novo = true;
cartasJogador.add(aux);
cartasSorteadas(aux);
}
}
}
System.out.println(cartasJogador);
}
}
e esses são os metodos:
Set<String> cartSort = new LinkedHashSet<String>();
//List<String> cartSort = new ArrayList<String>();
public void cartasSorteadas(String s){
cartSort.add(s);
}
public boolean verificaCarta(String v){
if(cartSort.contains(v)){
return true;
}else return false;
}
}