package demo_斗地主练习案例;
import java.util.*;
public class Demo {
public static void main(String[] args) {
//封装牌面
Map<Integer, String> pokerMap = new HashMap<>();
String[] colors = {"♥", "♠", "♦", "♣"};
String[] numbers = {"2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3"};
int index = 0;
pokerMap.put(index++, "大王");
pokerMap.put(index++, "小王");
for (String number : numbers) {
for (String color : colors) {
pokerMap.put(index++, color + number);
}
}
//制作一个保存编号的list
Set<Integer> set = pokerMap.keySet();
ArrayList<Integer> list = new ArrayList<>();
list.addAll(set);
//使用工具类:Collections的shuffle()方法达成洗牌效果
Collections.shuffle(list);
//创建玩家,完成发牌效果
ArrayList<Integer> user1 = new ArrayList<>();
ArrayList<Integer> user2 = new ArrayList<>();
ArrayList<Integer> user3 = new ArrayList<>();
ArrayList<Integer> dipai = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
if (i >= list.size() - 3) {
dipai.add(list.get(i));
} else {
if (i % 3 == 0) {
user1.add(list.get(i));
} else if (i % 3 == 1) {
user2.add(list.get(i));
} else {
user3.add(list.get(i));
}
}
}
//排序,显示牌面从大到小的效果
Collections.sort(user1);
Collections.sort(user2);
Collections.sort(user3);
//完成看牌效果
System.out.println("第一个玩家:" + getPoker(user1, pokerMap));
System.out.println("第二个玩家:" + getPoker(user2, pokerMap));
System.out.println("第三个玩家:" + getPoker(user3, pokerMap));
System.out.println(" 底牌:" + getPoker(dipai, pokerMap));
}
//创建方法,获取每个玩家的牌面
public static String getPoker(ArrayList<Integer> list, Map<Integer, String> map) {
StringBuilder bld = new StringBuilder("[");
for (int i = 0; i < list.size(); i++) {
bld.append(map.get(list.get(i)));
if (i < list.size() - 1) {//判断是否为最后一个元素
bld.append(",");
} else {
bld.append("]");
}
}
return bld.toString();
}
}
斗地主发牌、洗牌简单案例
最新推荐文章于 2022-04-03 18:17:46 发布