通过集合的方式使得实现对三个玩家斗地主的洗牌、发牌、看牌。具体实现如下:

public static void main(String[] args) {//1 创建牌盒子HashMap<Integer , String> hm = new HashMap<Integer , String>();// 存储hashmap的键ArrayList<Integer> array = new ArrayList<Integer>();// 花色String[] colors = {"♠","♥","♣","♦"};// 牌点数String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};int index =0;for(String number : numbers) {for(String color : colors) {hm.put(index, color+number);array.add(index);index++;}}hm.put(index, "小王");array.add(index);index++;hm.put(index, "大王");array.add(index);//洗牌Collections.shuffle(array);// 发牌 保证顺序:TreeSet实现玩家TreeSet<Integer> play1 = new TreeSet<Integer>();TreeSet<Integer> play2 = new TreeSet<Integer>();TreeSet<Integer> play3 = new TreeSet<Integer>();TreeSet<Integer> deepPokers = new TreeSet<Integer>();for(int i = 0 ; i < array.size() ; i++) {if (i >= array.size() - 3) {deepPokers.add(array.get(i));}else if (i % 3 == 0) {play1.add(array.get(i));}else if (i % 3 == 1) {play2.add(array.get(i));}else if (i % 3 == 2) {play3.add(array.get(i));}}// 定义看牌lookPoker("玩家1", hm, play1);lookPoker("玩家2", hm, play2);lookPoker("玩家3", hm, play3);lookPoker("底", hm, deepPokers);}public static void lookPoker(String name , HashMap<Integer, String> hm , TreeSet<Integer> treeSet) {System.out.print(name+"牌是:");Iterator<Integer> iterator = treeSet.iterator();while(iterator.hasNext()) {System.out.print(hm.get(iterator.next())+" ");}System.out.println();}
输出:
玩家1牌是:♠3 ♦3 ♣4 ♠5 ♥5 ♦7 ♥8 ♦8 ♥10 ♥J ♠Q ♥A ♣A ♦A ♠2 ♥2 小王
玩家2牌是:♠4 ♥4 ♦5 ♦6 ♣7 ♠8 ♠9 ♣9 ♦9 ♦10 ♠J ♣J ♥Q ♣Q ♣K ♠A 大王
玩家3牌是:♥3 ♣3 ♦4 ♣5 ♠6 ♥6 ♣6 ♠7 ♣8 ♠10 ♣10 ♦J ♠K ♥K ♦K ♣2 ♦2
底牌是:♥7 ♥9 ♦Q

集合的简单实现(斗地主牌的实现 )相关推荐

  1. java print快捷键_Java的ArrayList集合使用---唐代诗人斗地主!!!

    一.集合如何实现斗地主? 我们现实生活中关于斗地主,首先要有一副牌,然后把牌洗一下,在然后发牌,最后抢地主!因此斗地主需要以下的5步! 创建牌盒,定义一个集合对象,用ArrayList实现 往牌盒里装 ...

  2. 斗地主 java思路_使用Java实现简单的斗地主案例

    使用Java实现简单的斗地主案例 案例说明:使用Java实现简单的斗地主洗牌发牌的操作: 具体规则: 共有54张牌,顺序打乱: 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌) ...

  3. Java实现简单的斗地主案例(超详细代码)

    案例说明:使用Java实现简单的斗地主洗牌发牌的操作 具体规则: 共有54张牌,顺序打乱: 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌). 源码实现: /** 斗地主案例: ...

  4. Java的ArrayList集合使用---唐代诗人斗地主!!!

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.集合如何实现斗地主? 二.代码部分 1.IDEA软件 2.创建牌盒 3.洗牌 4.发牌 5.看牌 三.总结 前言 ...

  5. java实现一个简单的斗地主游戏

    使用Java编写一个斗地主游戏需要一定的编程知识和技能,例如面向对象编程.集合框架.GUI等.下面是一个简单的斗地主游戏的代码示例: import java.util.ArrayList; impor ...

  6. Java双列集合之Map以及斗地主案列

    Map集合 知识点-- 概述 讲解 图文演示 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的 ...

  7. java项目斗地主介绍_详解java_ 集合综合案例:斗地主

    案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 案例分析 1.准备牌: 牌可以设计为一个Array ...

  8. ArrayList单列集合的简单使用常见方法

    import java.util.ArrayList; import java.util.Iterator;/*** ArrayList单列集合的简单使用常见方法** @author silence* ...

  9. (小甲鱼python)集合笔记合集一 集合(上)总结 集合的简单用法 集合的各种方法合集:子、交、并、补、差、对称差集、超集

    一.基础复习 集合与字典区别 集合中所有元素都是独一无二的,并且也是无序的. 集合具有唯一性.无序性.有限性 >>> type({}) #字典 <class 'dict'> ...

  10. Android studio游戏开发就是这么简单:卡牌杀系列(核心UI篇:SufaceView的核心用法)

    Android studio游戏开发就是这么简单:卡牌杀系列(核心UI篇:SufaceView的核心用法) Android studio五年经验教你如何:花费了2周快速开发卡牌杀系类游戏,核心思路分享 ...

最新文章

  1. 【转载】Git 常用命令大全
  2. 【ZooKeeper Notes 14】数据模型
  3. Ensemble-BioMart:得到基因注释信息(有参考基因组的物种)
  4. maven多模块eclipse jetty热部署
  5. 小半计算机谱子,小半 _桃李醉春风个人制谱园地_中国曲谱网
  6. 微电网日前优化调度 。算例有代码(2)
  7. [转载]We Recommend a Singular Value Decomposition
  8. filter过滤后重新添加_每天记一个单词(第3518)filter
  9. 一张图看懂微软Power BI系列组件
  10. WinDBG 技巧:如何生成Dump 文件(.dump 命令)
  11. 宝塔无法安装php5,宝塔无法安装phpmyadmin怎么办
  12. oracle函数大全指数运算,Oracle 基础语句 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数......
  13. zabbix监控mysql内存_zabbix通过自定义脚本监控nginx,php-fpm和mysql占用内存数和进程的个数...
  14. Ubuntu下VirtualBox的vdi文件克隆
  15. Java实现智能对话机器人自动聊天+语音秒回
  16. STM32 CANFD 基础知识
  17. 计算机制图应用领域,计算机制图对测绘工程的应用
  18. 地壳中元素含量排名记忆口诀_【化学好好玩】用口诀帮你速记忆化学知识
  19. 阮一峰老师-Auth 2.0 的一个简单解释
  20. 随笔——雪雁飞过马赛克群导

热门文章

  1. 淘宝非标品类目商品开车如何选词?[淘宝插旗、创建订单api]
  2. 【基于 STM32CubeMX + PWM + DMA驱动SW2812b全彩RGB灯】
  3. DBN深度信念网络算法
  4. 直击美团“远程面试”现场,面试官竟反问:你真懂数据库事务吗?
  5. 短信与社交app的好处
  6. Qt笔记(五十七)之显示图片缩略图
  7. GSM多时隙NV配置
  8. ps—简易理解ps图层的各种混合模式
  9. 【python量化交易学习】从tushare获取股票交易数据,存入后再从mysql或excel读取数据,筛选股票,用pyecharts画出K线图。
  10. 第一章 初探Swing