public class PokerDemo {
public static void main(String[] args) {
// 一副扑克牌
HashMap<Integer, String> pokerMap = new HashMap<>();
// 用来控制牌的顺序
List<Integer> sortCtrlList = new ArrayList<>();
// 花色
String[] colours = {"♥", "♠", "♦", "♣"};
// 点数
String[] points = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
int index = 0;
// 组合牌
for (String colour : colours) {
for (String point : points) {
String poker = colour.concat(point);
pokerMap.put(index, poker);
sortCtrlList.add(index);
index++;
}
}
pokerMap.put(index, "小王");
sortCtrlList.add(index);
index++;
pokerMap.put(index, "大王");
sortCtrlList.add(index);
// 洗牌
Collections.shuffle(sortCtrlList);
// 模拟三个用户和一份底牌
TreeSet<Integer> p1 = new TreeSet<>();
TreeSet<Integer> p2 = new TreeSet<>();
TreeSet<Integer> p3 = new TreeSet<>();
TreeSet<Integer> coveredCard = new TreeSet<>();
// 发牌
for (int i = 0; i < sortCtrlList.size(); i++) {
// 前三张给底牌
if (i < 3) {
coveredCard.add(sortCtrlList.get(i));
} else if (i % 3 == 0) {
p1.add(sortCtrlList.get(i));
} else if (i % 3 == 1) {
p2.add(sortCtrlList.get(i));
} else {
p3.add(sortCtrlList.get(i));
}
}
showPoker("曹地主", p1, pokerMap);
showPoker("王铁柱", p2, pokerMap);
showPoker("田二妞", p3, pokerMap);
showPoker("底牌", coveredCard, pokerMap);
}
/**
* 看手牌
* @param name
* @param player
* @param pokerMap
*/
private static void showPoker(String name, TreeSet<Integer> player, HashMap<Integer, String> pokerMap) {
System.out.print(name + ": ");
for (Integer index : player) {
System.out.print(pokerMap.get(index) + " ");
}
System.out.println();
}
}
java初学模拟斗地主发牌
最新推荐文章于 2022-11-19 05:24:33 发布