//定义两个数组,用来存放花色和牌号
String[]color={"♠","♥","♣","♦"};
String[]number={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
//创建一个Map集合,key代表1-54标号,值代表牌面:花色+牌号
HashMap<Integer, String> map = new HashMap<>();
//创建一个list集合用来单独存map集合中的key;
ArrayList<Integer> list = new ArrayList<>();
//遍历color和number,把牌存入map集合中
int index=1;//设置index变量来代表map集合中的key;
for(int i=0;i<color.length;i++){
for(int j=0;j<number.length;j++){
map.put(index,color[i]+number[j]);
//把map集合中的key,存放到list集合中去
list.add(index);
index++;
}
}
//把大王和小王放入map集合中
map.put(index,"大王");
map.put(index+1,"小王");
//把大小王对应的标号存入list集合中
Collections.addAll(list,index,index+1);
//定义三个玩家
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
//定义一个集合存储底牌
ArrayList<String> bottom = new ArrayList<>();
//发牌方法1:
for(int i=1;i<=list.size();i++){
//每次发牌前先洗一次牌
if(i==1){
Collections.shuffle(list);
}
//获得打乱顺序后的标号
Integer n = list.get(i - 1);
//获得底牌
if(i<=3){
bottom.add(map.get(n));
}
//分别给三位玩家发牌
else if(i%3==0){
player1.add(map.get(n));
}else if(i%3==1){
player2.add(map.get(n));
}else if(i%3==2){
player3.add(map.get(n));
}
}
//发牌方法2:
// for(int i=1;i<=list.size();i++){
// //每次发牌前先洗一次牌
// if(i==1){
// Collections.shuffle(list);
// }
// //获得打乱顺序后的标号
// Integer n = list.get(i - 1);
// //获得底牌
// if(list.size()-i>=0&&list.size()-i<3){
// bottom.add(map.get(n));
// }
// //分别给三位玩家发牌
// else if(i%3==0){
// player1.add(map.get(n));
// }else if(i%3==1){
// player2.add(map.get(n));
// }else if(i%3==2){
// player3.add(map.get(n));
// }
// }
//
System.out.print("玩家1的牌是:");
for(String s1:player1){
System.out.print(s1+" ");
}
System.out.println();
System.out.print("玩家2的牌是:");
for(String s2:player2){
System.out.print(s2+" ");
}
System.out.println();
System.out.print("玩家3的牌是:");
for(String s3:player3){
System.out.print(s3+" ");
}
System.out.println();
System.out.print("底牌是:");
for(String s4:bottom){
System.out.print(s4+" ");
}
原文:https://www.cnblogs.com/Hubert-dzl/p/10896009.html