1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.HashMap;
  4. public class Doudizhu {
  5. public static void main(String[]args){
  6. //存放扑克牌
  7. //牌类+对应花色
  8. HashMap<Integer, String> pooker = new HashMap<Integer,String>();
  9. //牌的编号
  10. ArrayList<Integer> pookerNum = new ArrayList<Integer>();
  11. //牌类
  12. String[] nums = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
  13. String[] colors = {"黑","红","梅","方"};
  14. int index = 2;
  15. for(String num:nums){
  16. for(String color:colors){
  17. pooker.put(index, color+num);
  18. pookerNum.add(index);
  19. index++;
  20. }
  21. }
  22. pooker.put(0, "大王");
  23. pookerNum.add(0);
  24. pooker.put(1, "小王");
  25. pookerNum.add(1);
  26. //System.out.println(pooker);
  27. //System.out.println(pookerNum);
  28. //洗牌。打乱顺序
  29. Collections.shuffle(pookerNum);
  30. ArrayList<Integer> player1 = new ArrayList<Integer>();
  31. ArrayList<Integer> player2 = new ArrayList<Integer>();
  32. ArrayList<Integer> player3 = new ArrayList<Integer>();
  33. ArrayList<Integer> bottom = new ArrayList<Integer>();
  34. //模拟分牌
  35. for(int i=0;i<pookerNum.size();i++){
  36. if(i>pookerNum.size()-1-3){
  37. bottom.add(pookerNum.get(i));
  38. }else
  39. if(i%3==0){
  40. player1.add(pookerNum.get(i));
  41. }else
  42. if(i%3==1){
  43. player2.add(pookerNum.get(i));
  44. }else
  45. if(i%3==2){
  46. player3.add(pookerNum.get(i));
  47. }
  48. }
  49. //整理牌
  50. Collections.sort(player1);
  51. Collections.sort(player2);
  52. Collections.sort(player3);
  53. //看牌
  54. look("player1",player1,pooker);
  55. look("player2",player2,pooker);
  56. look("player3",player3,pooker);
  57. look("底 牌",bottom, pooker);
  58. }
  59. public static void look(String name,ArrayList<Integer> player,HashMap<Integer, String> pooker){
  60. System.out.print(name+": ");
  61. for(Integer key:player){
  62. String value = pooker.get(key);
  63. System.out.print(value+" ");
  64. }
  65. System.out.println("\n");
  66. }
  67. }

java模拟斗地主发牌看牌的更多相关文章

  1. java 模拟斗地主发牌洗牌

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

  2. Java模拟斗地主发牌和洗牌

    package cn.itcast_04; import java.util.ArrayList; import java.util.Collections; import java.util.Has ...

  3. java集合--模拟斗地主发牌洗牌

    import java.util.*; /** * @Date: 2020/6/17 19:53 */public class Test04 { public static void main(Str ...

  4. Java学习笔记34(集合框架八:综合案例:模拟斗地主的洗牌发牌)

    规则: 1.54张扑克牌,有花色 2.顺序打乱,一人一张依次发牌,一人17张,留三张作为底牌 3.看牌:按大小王2A....43的序排列打印 示例: package demo; import java ...

  5. Java程序斗地主发牌代码,List、Map集合的应用

    Java集合存储的灵活运用List集合存储 54个编号 Map <key,value> key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如 黑桃2 用2 ...

  6. Java 模拟斗地主

    模拟斗地主 public class M1 { public static void main(String args[]) { DouDiZhu02(); } private static void ...

  7. Java模拟斗地主(实现大小排序)

    import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Li ...

  8. Java实现斗地主发牌(Collections工具类的应用)

    package com.doudou_01; import java.util.ArrayList; import java.util.Collections; import java.util.Li ...

  9. php 模拟斗地主发牌简单易懂

    闲来无聊,就写了这个方法,也算是熟悉下php的数组操作,还请各位大神多指教.$arr 数组,好像有点问题,应该 2=>'方片2',3=>'梅花2',4=>'红心2',5=>'黑 ...

随机推荐

  1. iOS实现Android中Gone的功能

    实现隐藏view但不占位置的需求是很常见的(Android里的view.GONE),可iOS里并没有这玩意,只有hidden.于是自己写了一个一般情况下用的category,特殊情况就得看情况做了.其 ...

  2. JDBC&&c3p0、事务、批处理、多线程 于一体的经典秘方QueryRunner

    目录: 基础篇_功能各自回顾 JDBC基础代码回顾(使用JdbcUtils工具简化) c3p0数据库连接池的使用(使用JdbcUtils工具简化) 大数据的插入(使用c3p0+JdbcUtils工具简 ...

  3. spring框架的IOC的底层原理

    1.IOC概念:spring容器创建对象并管理 2.IOC的底层原理的具体实现: 1)所使用的技术: (1). dom4j解析xml配置文件 (2).工厂设计模式(解耦合) (3).反射 第一步:配置 ...

  4. 禁止UIWebView随键盘的弹起而往上滚动

    问题:当UIWebView中的html有输入框,点击输入框,UIWebView会随键盘的弹起而整体往上移动,收起键盘后,UIWebView无法回到原来的位置; 问题的原因:由于UIWebView继承的 ...

  5. webpack打包编译时,不识别src目录以外的js或css

    前端的dva项目开发时,遇到个很郁闷的问题,用es6的语法简单的export一个变量出来,在其他js中import使用,结果就报错了.   export写法如下: const enUS = { acc ...

  6. (转)Spring boot——logback.xml 配置详解(二)

    文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 1 根节点<configuration>包含的属性 scan: 当此属性设置为t ...

  7. 【基础网络】TCP与UDP 的区别

    TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...

  8. java中方法的参数传递机制

    问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?  答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为一个 ...

  9. 如何修改script.bin/script.fex

    你是否经常看见其他帖子里或者其他人提到要修改script.bin或script.fex ,但你又不知道怎么改. 其实 script.bin就是script.fex通过 fex2bin生成的,scrip ...

  10. Redola.Rpc 集成 Consul 服务发现

    Redola.Rpc 解决了什么问题? Redola.Rpc 是一个使用 C# 开发的 RPC 框架,代码开源在 GitHub 上.目前版本仅支持 .NET Framework 4.6 以上版本,未来 ...