import java.util.*;

/**
* @Date: 2020/6/17 19:53
*/
public class Test04 {
public static void main(String[] args) {
// 请编写斗地主洗牌发牌程序
HashMap<Integer, String> pk = new HashMap<>();//存整副牌
ArrayList<String> num = new ArrayList<>();//牌面
ArrayList<String> color = new ArrayList<>();//存花色
Collections.addAll(num, "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3");
Collections.addAll(color, "♠", "♥", "♣", "♦");
int id = 0;//给牌大到小编号
pk.put(id++, "大");
pk.put(id++, "小");
//将牌面和花色拼接一起加入整副牌中
for (int i = 0; i < num.size(); i++) {
for (int j = 0; j < color.size(); j++) {
pk.put(id++, color.get(j) + num.get(i));
}
}
//将排序编号提取出来便于打乱顺序
ArrayList<Integer> list = new ArrayList<>();
Set<Integer> i = pk.keySet();
for (Integer integer : i) {
list.add(integer);
}
Collections.shuffle(list);//洗牌
TreeSet<Integer> play1 = new TreeSet<>();//玩家一
TreeSet<Integer> play2 = new TreeSet<>();//玩家二
TreeSet<Integer> play3 = new TreeSet<>();//玩家三
TreeSet<Integer> dipai = new TreeSet<>();//底牌
//发牌
for (int a = 0; a < list.size(); a++) {
if (a >= 51) {
dipai.add(list.get(a));
} else if (a % 3 == 0) {
play1.add(list.get(a));
} else if (a % 3 == 1) {
play2.add(list.get(a));
} else {
play3.add(list.get(a));
}
}
heq("玩家一:", play1, pk);
heq("玩家二:", play2, pk);
heq("玩家三:", play3, pk);
heq("底牌:", dipai, pk);
}
private static void heq(String p, TreeSet<Integer> play, HashMap<Integer, String> pk) {
System.out.print(p + "\t");
for (Integer index : play) {
String s = pk.get(index);
System.out.print(s + "\t");
}
System.out.println();
}
}

玩家一: ♥2 ♣2 ♣A ♥K ♦K ♥Q ♠J ♥J ♦J ♥10 ♠9 ♥8 ♦8 ♠7 ♣7 ♠5 ♣5
玩家二: ♠2 ♦2 ♠K ♠Q ♣J ♣10 ♦10 ♣9 ♦9 ♠6 ♦6 ♥5 ♠4 ♥4 ♦4 ♠3 ♣3
玩家三: 大 小 ♠A ♥A ♦A ♣K ♣Q ♦Q ♥9 ♠8 ♣8 ♦7 ♥6 ♣6 ♦5 ♣4 ♦3
底牌: ♠10 ♥7 ♥3

最新文章

  1. mac composer 安装
  2. iOS学习资源个人整理
  3. CentOS hadoop启动错误 JAVA_HOME is not set and could not be found
  4. C++学习21 基类和派生类的赋值
  5. 计算机网络中的TCP/UDP协议到底是怎么回事(二)
  6. C# 在腾讯的发展(作者是微软连续10年的MVP)
  7. SQL从入门到基础 - 07 抑制重复数据
  8. spark-2.0.0与hive-1.2.1整合
  9. 转:lr_eval_string,lr_save_string 和 sprintf 的使用
  10. git底层原理(二)
  11. 微信小程序简单入门理解
  12. AngularJS小结
  13. vim操作备忘录
  14. shell脚本处理长参数的模板
  15. mybatis自定义代码生成器(Generator)——自动生成model&amp;dao代码
  16. iOS 类方法 、野指针与空指针
  17. 模板-gcd
  18. 如何解析超长的protobuf zhuan
  19. ICSharpCode.TextEditor使用及扩展
  20. (转)Linux下设置和查看环境变量

热门文章

  1. SRAM电路工作原理
  2. Rocket - tilelink - AtomicAutomata之二
  3. 深入理解JVM(③)——之HotSpot虚拟机对象探秘
  4. Spring AOP学习笔记01:AOP概述
  5. JavaSE(一) 语言概述
  6. CSDN怎么跳转到指定的位置
  7. Java实现 LeetCode 1013 将数组分成和相等的三个部分
  8. Java实现LeetCode_0035_SearchInsertPosition
  9. Linux 最大有效权限与删除ACL
  10. 用户和用户组管理-影子文件shadow