复制代码
public class Room {
//创建一副牌
private List<Card> allCards = new ArrayList<>();
public Room(){
//做出54张牌,存入到集合allCards
//a.点数:个数确定了,类型确定
String[] numbers={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
//b.花色:个数确定了,类型确定
String[] colors = {"♠", "♥", "♣", "♦"};
//每张牌的大小
int size = 0;
//c.遍历点数,再遍历花色,组织牌
for (String number : numbers){
size++;
for (String color : colors){
//得到一张牌
Card c = new Card(number,color,size);
allCards.add(c);
}
}
//大小王
Card c1 = new Card("", "🃏" , ++size);
Card c2 = new Card("", "👲" , ++size);
Collections.addAll(allCards,c1,c2);
System.out.println("新牌:"+allCards);
}
public void start(){
//1.洗牌
Collections.shuffle(allCards);
System.out.println("洗牌后:"+allCards);
//2.发牌,首先定义三个玩家
List<Card> xixi = new ArrayList<>();
List<Card> xinxin = new ArrayList<>();
List<Card> lili = new ArrayList<>();
for (int i = 0; i < allCards.size()-3; i++) {
Card c = allCards.get(i);
if (i%3 == 0) {
xixi.add(c);
}else if(i%3 == 1){
xinxin.add(c);
}else if (i % 3== 2) {
lili.add(c);
}
}
// 3、对3个玩家的牌进行排序
sortCards(xixi);
sortCards(xinxin);
sortCards(lili);
//4.看牌
System.out.println("嘻嘻:"+ xixi);
System.out.println("星星:"+xinxin);
System.out.println("理理:"+lili);
//5.地主牌获取
List<Card> lastThreeCards = allCards.subList(allCards.size()-3,allCards.size());
System.out.println("地主牌:"+lastThreeCards);
xixi.addAll(lastThreeCards);
sortCards(xinxin);
System.out.println("星星是地主:"+xinxin);
}
//排序
private void sortCards(List<Card> cards){
Collections.sort(cards, new Comparator<Card>() {
@Override
public int compare(Card o1, Card o2) {
return o1.getSize()-o2.getSize();
}
});
}
//排序对3个玩家的牌进行排序
}