1. package com.biggw.day14.demo05;
  2.  
  3. import java.util.*;
  4.  
  5. /**
  6. * @author gw
  7. * @date 2019/11/6 0006 下午 17:20
  8. */
  9.  
  10. /*
  11. * 斗地主
  12. * */
  13. public class DouDiZhu {
  14. public static void main(String[] args) {
  15. List<String> color = List.of("♦", "♣", "♠", "♥");
  16. List<String> numbers = List.of("3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2");
  17.  
  18. // 存储牌的索引
  19. ArrayList<Integer> pokerIndex = new ArrayList<>();
  20. // 存储牌的索引和组装好的牌
  21. HashMap<Integer, String> hashMap = new HashMap<>();
  22. int count = 0;
  23. hashMap.put(53, "小王");
  24. hashMap.put(54, "大王");
  25. for (int j = 0; j < numbers.size(); j++) {
  26. for (int i = 0; i < color.size(); i++) {
  27. ++count;
  28. pokerIndex.add(count);
  29. hashMap.put(count, color.get(i) + numbers.get(j));
  30. }
  31. }
  32. Collections.addAll(pokerIndex, 53, 54);
  33. System.out.println("pokerIndex = " + pokerIndex);
  34. System.out.println("hashMap = " + hashMap);
  35.  
  36. // 洗牌
  37. Collections.shuffle(pokerIndex);
  38.  
  39. ArrayList<Integer> player1 = new ArrayList<>();
  40. ArrayList<Integer> player2 = new ArrayList<>();
  41. ArrayList<Integer> player3 = new ArrayList<>();
  42. ArrayList<Integer> diPai = new ArrayList<>();
  43.  
  44. ArrayList<String> player1Poker = new ArrayList<>();
  45. ArrayList<String> player2Poker = new ArrayList<>();
  46. ArrayList<String> player3Poker = new ArrayList<>();
  47. ArrayList<String> diPaiPoker = new ArrayList<>();
  48.  
  49. // 发牌
  50. for (int i = 0; i < pokerIndex.size(); i++) {
  51. Integer index = pokerIndex.get(i);
  52. if (i >= 51) {
  53. diPai.add(index);
  54. } else if (i % 3 == 0) {
  55. player1.add(index);
  56. } else if (i % 3 == 1) {
  57. player2.add(index);
  58. } else if (i % 3 == 2) {
  59. player3.add(index);
  60. }
  61. }
  62. Collections.sort(player1);
  63. Collections.sort(player2);
  64. Collections.sort(player3);
  65. Collections.sort(diPai);
  66.  
  67. Set<Integer> integers = hashMap.keySet();
  68. Iterator<Integer> iterator = integers.iterator();
  69. for (int i = 0; i < player1.size(); i++) {
  70. player1Poker.add(hashMap.get(player1.get(i)));
  71. }
  72. for (int i = 0; i < player2.size(); i++) {
  73. player2Poker.add(hashMap.get(player2.get(i)));
  74. }
  75. for (int i = 0; i < player3.size(); i++) {
  76. player3Poker.add(hashMap.get(player3.get(i)));
  77. }
  78. for (int i = 0; i < diPai.size(); i++) {
  79. diPaiPoker.add(hashMap.get(diPai.get(i)));
  80. }
  81.  
  82. System.out.println("player1Poker = " + player1Poker);
  83. System.out.println("player2Poker = " + player2Poker);
  84. System.out.println("player3Poker = " + player3Poker);
  85. System.out.println("diPaiPoker = " + diPaiPoker);
  86. }
  87.  
  88. }

pokerIndex = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54]
hashMap = {1=♦3, 2=♣3, 3=♠3, 4=♥3, 5=♦4, 6=♣4, 7=♠4, 8=♥4, 9=♦5, 10=♣5, 11=♠5, 12=♥5, 13=♦6, 14=♣6, 15=♠6, 16=♥6, 17=♦7, 18=♣7, 19=♠7, 20=♥7, 21=♦8, 22=♣8, 23=♠8, 24=♥8, 25=♦9, 26=♣9, 27=♠9, 28=♥9, 29=♦10, 30=♣10, 31=♠10, 32=♥10, 33=♦J, 34=♣J, 35=♠J, 36=♥J, 37=♦Q, 38=♣Q, 39=♠Q, 40=♥Q, 41=♦K, 42=♣K, 43=♠K, 44=♥K, 45=♦A, 46=♣A, 47=♠A, 48=♥A, 49=♦2, 50=♣2, 51=♠2, 52=♥2, 53=小王, 54=大王}
player1Poker = [♦3, ♦5, ♣5, ♥5, ♣6, ♠6, ♣7, ♠7, ♠8, ♥9, ♥10, ♥J, ♥Q, ♠K, ♠A, ♣2, ♠2]
player2Poker = [♣3, ♦4, ♥6, ♥7, ♣8, ♥8, ♦9, ♠9, ♦10, ♣10, ♠10, ♦J, ♣J, ♠J, ♦Q, ♣Q, ♠Q]
player3Poker = [♠3, ♥3, ♣4, ♥4, ♠5, ♦6, ♦7, ♣9, ♦K, ♣K, ♦A, ♣A, ♥A, ♦2, ♥2, 小王, 大王]
diPaiPoker = [♠4, ♦8, ♥K]

Java斗地主的更多相关文章

  1. Java斗地主案例、异常和自定义异常整理

    模拟斗地主洗牌发牌 1.1 案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...

  2. java斗地主扑克 扑克牌 洗牌 发牌 Collection 集合练习

    package com.swift.poker; import java.util.ArrayList; import java.util.Collections; /*训练考核知识点:Collect ...

  3. java——斗地主小游戏之洗牌发牌

    遇到的问题: 1.int和Integer的区别? 1)Integer是int的包装类,int则是java的一种基本数据类型 . 2)Integer变量必须实例化后才能使用,而int变量不需要 . 3) ...

  4. java ->斗地主洗牌

    import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util ...

  5. Java斗地主(集合综合练习)

    ​ 学完了集合后我们可以开始做一个简易版的 " 斗地主 " 了,但是呢咱们这个斗地主只能实现制造牌,洗牌.发牌.看牌这几个简单的功能,并不是我们玩的 " 真人版斗地主 & ...

  6. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  7. Java基础之如何解决斗地主问题

        难的是逻辑的分析,把逻辑转化成代码是一种能力,这种能力需要多练习总结.     多多指教,共同进步. 问题: 要求实现斗地主游戏发牌过程,打印三个玩家的牌和底牌.在不看底牌的情况下,统计出三个 ...

  8. Java写的斗地主游戏源码

    源码下载在最后 我们的前年的课设要求做一个斗地主程序,当时正在愁如何做界面,当时刚好在学习C#,于是就用C#完成了这个程序.一方面,当时我C#功底还很差(其实现在也不怎么样),很多地方用了“笨办法”, ...

  9. Java基础知识强化之集合框架笔记71:模拟斗地主洗牌和发牌并对牌进行排序的案例

    1. 模拟斗地主洗牌和发牌并对牌进行排序的原理图解: 2. 代码实现: 思路: • 创建一个HashMap集合 • 创建一个ArrayList集合 • 创建花色数组和点数数组 • 从0开始往HashM ...

随机推荐

  1. PHP培训教程 php几个不起眼儿的小技巧

    说是不起眼儿的小技巧,其实应该说是不常用的常规应用吧.很多事情就是这样,知道是一马事儿,会用是一马事儿,精习又是另外一马事儿.而成为高手更是需要扎实的基本功. str_repeat 重复输出字符串就靠 ...

  2. JMS学习十(ActiveMQ支持的传输协议)

    ActiveMQ提供了一种连接机制,这种连接机制使用传输连接器(TransportConnector)实现客户端与代理(client - to - broker)之间的通信. 网络连接器(networ ...

  3. C#中的事件委托

    C#中的事件与委托,对于我们写业务代码的程序员来说不常用,这就会导致经常忘记,这边再温习一下. //委托 public delegate void MyEventDelegateHandler(str ...

  4. 源码阅读-SwiftyJSON

    最后更新:2018-03-19 一.说在前面的话: SwiftyJSON 作为一个 swift 的解析库, 在 Swift4 之前备受欢迎, 目前(2018.3.19) 已经有 1.6w+ Star ...

  5. jq完成省市区街道四级联动

    之前看的省市区街道四级联动的插件,感觉和公司要求的有些不符合,就自己写了一个 因为要读取本地json文件,所以要跑下服务器 下载browser-sync 然后在项目目录下运行browser-sync ...

  6. splice()、slice()、split()函数的区分

    1.slice(数组) 用法:array.slice(start,end) 解释:该方法是对数组进行部分截取,并返回一个数组副本:参数start是截取的开始数组索引,end参数等于你要取的最后一个字符 ...

  7. mysql 安装相关

    Mysql 是基于C/S端的管理文件的服务器软件. Mysql简单分为两个软件:1服务器软件 2客户端软件 对于服务器软件中的socket服务器是一只开着的,客户端需要连接,并且还有创建文件删除文件等 ...

  8. socket的补充

  9. 基于DRF的图书增删改查练习

    功能演示 信息展示 添加功能 编辑功能 删除功能 DRF构建后台数据 本例的Model如下 from django.db import models class Publish(models.Mode ...

  10. AAAI 2019 分析

    AAAI 2019 分析 Google Scholar 订阅 CoKE : Word Sense Induction Using Contextualized Knowledge Embeddings ...