代码

public class PokerShuffleCards {public static void main(String[] args) {// 准备花色ArrayList<String> color = new ArrayList<String>();color.add("♠");color.add("♥");color.add("♦");color.add("♣");// 准备数字,用arrayList将纸牌由小到大排序ArrayList<String> number = new ArrayList<String>();for (int i = 3; i <= 10; i++) {number.add(i + "");}number.add("J");number.add("Q");number.add("K");number.add("A");number.add("2");// 定义一个map集合:用来将数字与纸牌进行对应HashMap<Integer, String> map = new HashMap<Integer, String>();int index = 0; // 纸牌编号for (String thisNumber : number) {for (String thisColor : color) {// 将花色与数字组合map.put(index++, thisColor + thisNumber);}}// 加入大小王map.put(index++, "小☺");map.put(index++, "大☺");// 创建内容为0-53的数字集合代表54张牌ArrayList<Integer> cards = new ArrayList<Integer>();for (int i = 0; i < 54; i++) {cards.add(i);}// 洗牌,使用Collections工具类中胡shuffle()方法Collections.shuffle(cards);// 创建三个玩家和底牌ArrayList<Integer> iPlayer0 = new ArrayList<Integer>();ArrayList<Integer> iPlayer1 = new ArrayList<Integer>();ArrayList<Integer> iPlayer2 = new ArrayList<Integer>();ArrayList<Integer> iSecretCards = new ArrayList<Integer>();// 发牌for (int i = 0; i < cards.size(); i++) {if (i >= 51) {iSecretCards.add(cards.get(i)); // 留取3张底牌} else {if (i % 3 == 0) { // 与3取余为0发给玩家0iPlayer0.add(cards.get(i));} else if (i % 3 == 1) { // 与3取余为1发给玩家1iPlayer1.add(cards.get(i));} else {// 与3取余为2发给玩家2iPlayer2.add(cards.get(i));}}}// 使用Collections的sort方法,对每个人手中的牌进行排序Collections.sort(iPlayer0);Collections.sort(iPlayer1);Collections.sort(iPlayer2);// 对应数字形式的每个人手中的牌,定义字符串形式的牌ArrayList<String> sPlayer0 = new ArrayList<String>();ArrayList<String> sPlayer1 = new ArrayList<String>();ArrayList<String> sPlayer2 = new ArrayList<String>();ArrayList<String> sSecretCards = new ArrayList<String>();// 循环主键,从map中获取纸牌for (Integer key : iPlayer0) {sPlayer0.add(map.get(key));}for (Integer key : iPlayer1) {sPlayer1.add(map.get(key));}for (Integer key : iPlayer2) {sPlayer2.add(map.get(key));}for (Integer key : iSecretCards) {sSecretCards.add(map.get(key));}// 看牌System.out.println("玩家1:" + sPlayer0);System.out.println("玩家2:" + sPlayer1);System.out.println("玩家3:" + sPlayer2);System.out.println("底牌:" + sSecretCards);}
}

结果

斗地主小游戏之洗牌发牌相关推荐

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

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

  2. 通过程序实现斗地主过程中的洗牌,发牌和看牌(简约版)

    需求:通过程序实现斗地主过程中的洗牌,发牌和看牌 思路: 创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现 往牌盒里面装牌 洗牌,也就是说把牌打撒,用Collections的shuf ...

  3. 用JAVA编程实现斗地主小游戏(建牌,发牌,选地主,排序)

    JAVA编程实现斗地主小游戏 主程序 排序算法 主程序 public static void main(String[] args) {//牌List<String> pokes = ne ...

  4. 【案例 6-4】斗地主洗牌发牌

    [案例介绍] 1.任务描述 斗地主的扑克牌游戏,相信许多人都会玩,本例要求编写一个斗地主的洗牌发牌程序,要求按照斗地主的规则完成洗牌发牌的过程.一副扑克总共有 54 张牌,牌面由花色和数字组成(包括 ...

  5. 扑克牌洗牌发牌java代码_java实战(一)之Java模仿斗地主洗牌发牌小游戏

    斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异.本节我们先来实现一下斗地主中的简单洗牌.发牌和看牌功能. 按照斗地主的规则,完成洗牌发牌的动作.具体规则为使用 54 张牌打乱顺序,3 ...

  6. java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化

    1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...

  7. 模拟斗地主洗牌发牌-JAVA

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

  8. 斗地主三步走——洗牌、发牌和看牌

    相信大家都玩过牌游斗地主吧,今天呢,阿Q就带大家写一个简单的斗地主的洗牌.发牌和看牌的小Demo. public static void main(String[] args) {//1,买一副扑克, ...

  9. 斗地主练习(按照斗地主的规则,完成洗牌发牌的动作。)

    按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 使用54张牌: 打乱顺序: 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌: 手中的牌按从小到大的顺序排列 import java. ...

最新文章

  1. 如何设置 Linux 上 SSH 登录的 Email 提醒
  2. 记录 grafana登录 从 go 迁移到 php
  3. android获取自适应高度,Android中oncreate中获得控件高度或宽度的实现方法
  4. 【机器学习】机器学习从零到掌握之十二 -- 教你使用决策树预测隐形眼镜类型
  5. java webinf lib jar_java web项目中classes文件夹下的class和WEB-INF/lib中jar里的class文件加载顺序...
  6. xstart连不上linux_Xstart远程连接Linux图形用户界面
  7. Python Cookbook 资料链接
  8. 前端开发大师修炼指南
  9. 科大讯飞语音识别demo
  10. springCloud Finchley 实战入门(基于springBoot 2.0.3)【五 Hystrix 服务容错保护】
  11. AD9361_AD9371_AD9363_AD9364 对比
  12. DJ Mix Pads 2 - Remix Version for Mac(独特DJ混音创作软件)
  13. Excel生成指定范围内随机数
  14. 新加坡经验:大数据时代政府的角色
  15. 2021-2022软件架构与设计趋势报告
  16. 腾讯CEO马化腾:从“抄袭”开始创业之路
  17. WIN7_64 下DNW驱动
  18. R6034错误的解决(转)
  19. 这届95后,国庆节不想出游了?
  20. 程序员鄙视链! | 每日趣闻

热门文章

  1. Java renameto无效,java – File.renameTo()失败
  2. FreeCAD - 您专属的3D参数化建模工具
  3. 手机电路板文件_您的旧手机都去哪了?高价回收的背后有利益推手
  4. 人体一机竞技格斗机器人_工匠社发布首款“人机一体”消费级竞技格斗机器人...
  5. win7蓝屏_win7操作系统服役结束。电脑蓝屏0X000000F4处理办法。
  6. 获取浏览器原生滚动条宽度的方法
  7. Apache Iceberg数据湖与Trino的集成
  8. Java模拟生成OPENID
  9. 蒜厂有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。 请写一个程序,计算你总共能够到达多少块黑色的瓷砖。
  10. Java Controller层下载指定Excel模板