- package com.kxg.Poker;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.TreeSet;
- public class PokerDemo {
- public static void main(String[] args) {
- // 把扑克存储起来,有一个键来对应。
- HashMap<Integer, String> hm = new HashMap<Integer, String>();
- // 把扑克对应的所有键存储起来
- ArrayList<Integer> arr = new ArrayList<Integer>();
- // 扑克花色
- String[] colors = { "♦", "♣", "♥", "♠" };
- // 扑克数字
- String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
-
- // 定义每张扑克对应的序号
- int count = 0;
-
- // for嵌套循环得到所有的扑克,先遍历数字,再遍历花色,得到按照斗地主中的规则进行大小排序
- for (String number : numbers) {
- for (String color : colors) {
- String poker = color.concat(number);
- hm.put(count, poker);// 把扑克和对应序号添加到HashMap集合中
- arr.add(count);// 把序号添加到ArrayList集合中
- count++;// 每添加一张,对应序号++一次
- }
- }
- hm.put(count, "小王");
- arr.add(count);
- count++;
- hm.put(count, "大王");
- arr.add(count);
- // 利用Collections工具类打乱序号顺序
- Collections.shuffle(arr);
- // 定义三个人的扑克集合,用TreeSet是为了使得到的序号有序
- TreeSet<Integer> lyx = new TreeSet<Integer>();
- TreeSet<Integer> kxg = new TreeSet<Integer>();
- TreeSet<Integer> rxy = new TreeSet<Integer>();
- TreeSet<Integer> diPai = new TreeSet<Integer>();
- // 发牌
- for (int x = 0; x < arr.size(); x++) {
- // 扑克剩余最后三张就给底牌
- if (x >= arr.size() - 3) {
- diPai.add(arr.get(x));
- // 根据余数的不同,给三人发牌
- } else if (x % 3 == 2) {
- lyx.add(arr.get(x));
- } else if (x % 3 == 1) {
- kxg.add(arr.get(x));
- } else if (x % 3 == 0) {
- rxy.add(arr.get(x));
- }
- }
- lookPoker("李延旭", lyx, hm);
- lookPoker("任兴亚", rxy, hm);
- lookPoker("康小广", kxg, hm);
- lookPoker("底牌", diPai, hm);
- }
- // 创建一个看牌功能,参数分别为姓名,玩家扑克的集合,扑克和对应序号的HashMap集合。
- public static void lookPoker(String name, TreeSet<Integer> set,
- HashMap<Integer, String> hm) {
- // 显示玩家姓名
- System.out.println(name + "的牌是:");
- // 遍历玩家中TreeSet集合中的序号,根据序号到HashMap集合中找对应的扑克,输出即可
- for (Integer key : set) {
- String value = hm.get(key);
- System.out.print(value + " ");
- }
- System.out.println();
- }
- }
复制代码
|
|