import java.util.*;
/**
* @author: ChengLong
* @datetime: 2021/7/14 19:15
*/
/*使用集合,模拟实现斗地主发牌。地主20张,农民17张,农民17张
* */
public class DouDIZhu {
public static void main(String[] args) {
//组装牌
List<String> color = new ArrayList<>();
Collections.addAll(color, "♠", "♥", "♦", "♣");
List<String> nums = new ArrayList<>();
Collections.addAll(nums, "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3");
//存储组合后的扑克
HashMap<Integer, String> poker = new HashMap<>();
//存储索引
ArrayList<Integer> pokerIndex = new ArrayList<>();
int index = 0;
poker.put(index, "大王");
pokerIndex.add(index);
index++;
poker.put(index, "小王");
pokerIndex.add(index);
index++;
//组合放入map中,索引为key,扑克为value
for (String num : nums) {
for (String s : color) {
poker.put(index, s + num);
pokerIndex.add(index);
index++;
}
}
//洗牌
Collections.shuffle(pokerIndex);
// System.out.print(pokerIndex);
//创建人物
ArrayList<Integer> player1 = new ArrayList<>();
ArrayList<Integer> player2 = new ArrayList<>();
ArrayList<Integer> dizhu = new ArrayList<>();
ArrayList<Integer> dipai = new ArrayList<>();
//发牌
for (int i = 0; i < pokerIndex.size(); i++) {
Integer integer = pokerIndex.get(i);
if (i>=51){
//三张底牌发给地主
dipai.add(integer);
dizhu.add(integer);
}else if (i % 3 == 0){
player1.add(integer);
}else if (i % 3 == 1){
player2.add(integer);
}else if (i % 3 == 2){
dizhu.add(integer);
}
}
//排序
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(dizhu);
Collections.sort(dipai);
// System.out.println(player1);
//打印
printPoker("底牌",dipai,poker);
printPoker("张三",player1,poker);
printPoker("李四",player2,poker);
printPoker("王武",dizhu,poker);
}
/**
*
* @param name 玩家名字
* @param list 玩家牌的索引
* @param map 扑克牌
*/
public static void printPoker(String name,ArrayList<Integer> list,HashMap<Integer,String> map){
System.out.print(name+":");
//取出索引对应的扑克牌,并打印
for (Integer integer : list) {
System.out.print(map.get(integer)+" ");
}
System.out.println("");
}
}