Game_Test类
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Game_Test {
// 定义一个静态集合存储54张牌
public static List<Card> AllCard=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){
for (String color:colors){
Card c=new Card(size,color,index);
AllCard.add(c);
}
}
//大小王
Card c1=new Card("","大王",++index);
Card c2=new Card("","小王",++index);
Collections.addAll(AllCard,c1,c2);
System.out.println("洗牌前:"+AllCard);
}
public static void main(String[] args) {
Collections.shuffle(AllCard);//打乱顺序
System.out.println("洗牌后:"+AllCard);
//准备三玩家,也是一个集合容器
List<Card> zhangsan=new ArrayList<>();
List<Card> lishi=new ArrayList<>();
List<Card> wangwu=new ArrayList<>();
//发牌,留3张底牌
for (int i = 0; i < AllCard.size()-3; i++) {
Card c=AllCard.get(i);
if (i%3==0){
zhangsan.add(c);
}
else if (i%3==1){
lishi.add(c);
}
else if (i%3==2){
wangwu.add(c);
}
}
//最后三张
List<Card> last=AllCard.subList(AllCard.size()-3, AllCard.size());
//对玩家的牌进行排序
Collections.sort(zhangsan, new Comparator<Card>() {
@Override
public int compare(Card o1, Card o2) {
return o1.getIndex()-o2.getIndex();//升序
}
});
Collections.sort(lishi, new Comparator<Card>() {
@Override
public int compare(Card o1, Card o2) {
return o1.getIndex()-o2.getIndex();//升序
}
});
Collections.sort(wangwu, new Comparator<Card>() {
@Override
public int compare(Card o1, Card o2) {
return o1.getIndex()-o2.getIndex();//升序
}
});
System.out.println("张三:"+zhangsan);
System.out.println("李四:"+lishi);
System.out.println("王五:"+wangwu);
System.out.println("最后三张牌:"+last);
}
}
Card类
public class Card {
private String size;
private String color;
private int index; // 牌的真正大小
public Card(){
}
public Card(String size, String color,int index) {
this.size = size;
this.color = color;
this.index = index;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
@Override
public String toString() {
return color + size;
}
}