package com.collection;
import java.util.*;
public class CardDemo {
//静态成员变量属于类,随类一起加载
public static List<Card> cards = new ArrayList<>();
//静态代码块和类一起加载
static {
String[] sizes = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
String[] colors = {"♥", "♦", "♠", "♣"};
int index=0;
for (String size : sizes) {
index++;
for (String color : colors) {
Card card = new Card(size, color,index);
cards.add(card);
}
}
Card card1 = new Card("", "大🃏",++index);
Card card2 = new Card("", "小🃏",++index);
Collections.addAll(cards, card1, card2);
System.out.println(cards);
}
public static void main(String[] args) {
//洗牌
Collections.shuffle(cards);
System.out.println(cards);
List<Card> person1 = new ArrayList<>();
List<Card> person2 = new ArrayList<>();
List<Card> person3 = new ArrayList<>();
for (int i = 0; i < cards.size(); i++) {
Card card = cards.get(i);
if (i % 3 == 0) {
person1.add(card);
} else if (i % 3 == 1) {
person2.add(card);
} else if (i % 3 == 2) {
person3.add(card);
}
}
sortCard(person1);
sortCard(person2);
sortCard(person3);
List<Card> lastThreeCards = CardDemo.cards.subList(CardDemo.cards.size() - 3, CardDemo.cards.size());
System.out.println("person1:"+person1);
System.out.println("person2:"+person2);
System.out.println("person3:"+person3);
System.out.println("lastThreeCards:"+lastThreeCards);
}
private static void sortCard(List<Card> person1) {
Collections.sort(person1, new Comparator<Card>() {
@Override
public int compare(Card o1, Card o2) {
return o2.getIndex()-o1.getIndex();
}
});
}
}
Collection体系综合案例---斗地主,实现洗牌,发牌,牌排序
最新推荐文章于 2024-10-01 18:51:18 发布
这个程序创建了一个扑克牌集合,并使用静态代码块初始化。它通过遍历大小和花色组合来生成每张牌,然后洗牌并分配给三个玩家。每个玩家获得等量的牌,最后打印出每个玩家的牌以及最后三张牌。程序还包含一个自定义比较器用于按牌的索引值降序排列。
摘要由CSDN通过智能技术生成