A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Kevin.Kang 高级黑马   /  2015-7-21 11:09  /  783 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.kxg.Poker;

  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.HashMap;
  5. import java.util.TreeSet;

  6. public class PokerDemo {
  7.         public static void main(String[] args) {
  8.                 // 把扑克存储起来,有一个键来对应。
  9.                 HashMap<Integer, String> hm = new HashMap<Integer, String>();

  10.                 // 把扑克对应的所有键存储起来
  11.                 ArrayList<Integer> arr = new ArrayList<Integer>();

  12.                 // 扑克花色
  13.                 String[] colors = { "♦", "♣", "♥", "♠" };

  14.                 // 扑克数字
  15.                 String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
  16.                
  17.                 // 定义每张扑克对应的序号
  18.                 int count = 0;
  19.                
  20.                 // for嵌套循环得到所有的扑克,先遍历数字,再遍历花色,得到按照斗地主中的规则进行大小排序
  21.                 for (String number : numbers) {
  22.                         for (String color : colors) {
  23.                                 String poker = color.concat(number);
  24.                                 hm.put(count, poker);// 把扑克和对应序号添加到HashMap集合中
  25.                                 arr.add(count);// 把序号添加到ArrayList集合中
  26.                                 count++;// 每添加一张,对应序号++一次
  27.                         }
  28.                 }
  29.                 hm.put(count, "小王");
  30.                 arr.add(count);
  31.                 count++;
  32.                 hm.put(count, "大王");
  33.                 arr.add(count);

  34.                 // 利用Collections工具类打乱序号顺序
  35.                 Collections.shuffle(arr);

  36.                 // 定义三个人的扑克集合,用TreeSet是为了使得到的序号有序
  37.                 TreeSet<Integer> lyx = new TreeSet<Integer>();
  38.                 TreeSet<Integer> kxg = new TreeSet<Integer>();
  39.                 TreeSet<Integer> rxy = new TreeSet<Integer>();
  40.                 TreeSet<Integer> diPai = new TreeSet<Integer>();

  41.                 // 发牌
  42.                 for (int x = 0; x < arr.size(); x++) {
  43.                         // 扑克剩余最后三张就给底牌
  44.                         if (x >= arr.size() - 3) {
  45.                                 diPai.add(arr.get(x));
  46.                                 // 根据余数的不同,给三人发牌
  47.                         } else if (x % 3 == 2) {
  48.                                 lyx.add(arr.get(x));
  49.                         } else if (x % 3 == 1) {
  50.                                 kxg.add(arr.get(x));
  51.                         } else if (x % 3 == 0) {
  52.                                 rxy.add(arr.get(x));
  53.                         }
  54.                 }

  55.                 lookPoker("李延旭", lyx, hm);
  56.                 lookPoker("任兴亚", rxy, hm);
  57.                 lookPoker("康小广", kxg, hm);
  58.                 lookPoker("底牌", diPai, hm);
  59.         }

  60.         // 创建一个看牌功能,参数分别为姓名,玩家扑克的集合,扑克和对应序号的HashMap集合。
  61.         public static void lookPoker(String name, TreeSet<Integer> set,
  62.                         HashMap<Integer, String> hm) {
  63.                 // 显示玩家姓名
  64.                 System.out.println(name + "的牌是:");
  65.                 // 遍历玩家中TreeSet集合中的序号,根据序号到HashMap集合中找对应的扑克,输出即可
  66.                 for (Integer key : set) {
  67.                         String value = hm.get(key);
  68.                         System.out.print(value + " ");
  69.                 }
  70.                 System.out.println();
  71.         }
  72. }
复制代码


9 个回复

倒序浏览
从代码看出,楼主叫康小广:)

点评

机智如我  发表于 2015-7-21 11:15
回复 使用道具 举报
厉害··························
回复 使用道具 举报
厉害,,,,
回复 使用道具 举报
木森 来自手机 中级黑马 2015-7-21 13:08:45
报纸
嘟嘟嘟嘟嘟 发表于 2015-7-21 11:10
从代码看出,楼主叫康小广

好奇,你咋看出来的,我是没发现,请赐教,难道你认识?
回复 使用道具 举报
木森 发表于 2015-7-21 13:08
好奇,你咋看出来的,我是没发现,请赐教,难道你认识?
  1.                 lookPoker("李延旭", lyx, hm);
  2.                 lookPoker("任兴亚", rxy, hm);
  3.                 lookPoker("康小广", kxg, hm);
  4.                 lookPoker("底牌", diPai, hm);
复制代码


楼主网名 Kevin.Kang

点评

原来如此啊,  发表于 2015-7-21 18:02
回复 使用道具 举报
厉害学习了
回复 使用道具 举报
厉害了学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马