返回顶部
首页 > 资讯 > 精选 >如何使用JavaSE来模拟斗地主
  • 722
分享到

如何使用JavaSE来模拟斗地主

2023-06-14 10:06:42 722人浏览 独家记忆
摘要

本篇内容主要讲解“如何使用JavaSE来模拟斗地主”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用JavaSE来模拟斗地主”吧!Java可以用来干什么Java主要应用于:1. web开发;

本篇内容主要讲解“如何使用JavaSE来模拟斗地主”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用JavaSE来模拟斗地主”吧!

Java可以用来干什么

Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。

通过模拟斗地主案例来练习集合的使用

结果预览:

每次发牌后,三位玩家的手牌是随机的并且已经按照手牌大小排完序,运行两次验证手牌的随机性。

如何使用JavaSE来模拟斗地主

如何使用JavaSE来模拟斗地主

马老师的牌还不错,芜湖~起飞

思路:

创建HashMap,键是编号,值是牌。
2.创建ArrayList,存储编号。
3.创建花色数组和点数数组。
4.从0开始往HashMap里面存储编号,并存储对应的牌。同时往ArrayList里面存储编号。
5.洗牌(洗的是编号),用Collections的shuffl()方法实现。
6.发牌(发的也是编号,为了保证编号是排序的,创建TreeSet集合。
7.定义方法看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
8.调用看牌方法

为了方便理解,我用图形的方式来描述下过程:

如何使用JavaSE来模拟斗地主

具体代码实现:

1.创建集合装扑克牌

 //创建HashMap集合   key是编号用Integer  value是牌用String            HashMap<Integer,String>  hm=new HashMap<>();            //创建ArrayList集合用来存储编号            ArrayList<Integer> list=new ArrayList<>();            //创建花色数组和点数数组            String [] color={"♠", "♦", "♥","♣"};            String [] number={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};            //从0开始往HashMap集合里面存储编号,并存储对应的牌。同时往ArrayList集合里面存储编号            int index=0;            //增强For循环存储花色和点数            for(String num:number){                for(String col:color){                    hm.put(index,col+num);                    list.add(index);                    index++;                }            }           //52张牌存完了 还剩大小王  现在添加进去            hm.put(index,"小王");            list.add(index);            index++;            hm.put(index,"大王");            list.add(index);            //以上的操作实现了把54张扑克牌放入一个集合容器

2.洗牌和发牌

   //洗牌(洗的是编号),用collections的shuffle()方法实现。            Collections.shuffle(list);            //发牌  用TreeSet接收  用三位玩家名字命名            TreeSet<Integer> PDD=new TreeSet<>();            TreeSet<Integer> DaSiMa=new TreeSet<>();            TreeSet<Integer> LuBenWei=new TreeSet<>();            //三张底牌            TreeSet<Integer> finalCard=new TreeSet<>();            for(int x=0;x<list.size();x++){                //定义一个变量接收索引                int  a= list.get(x);                //最后三个索引                if(x>=list.size()-3){              finalCard.add(a);                }else if(x%3 == 0){                    PDD.add(a);                }else if(x%3 == 1){                    DaSiMa.add(a);                }else {                    LuBenWei.add(a);                }            }

3.定义看牌方法

  //定义看牌的方法(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)        public  static void lookPoker(String name,TreeSet<Integer> ts,HashMap<Integer,String>  hm ){            System.out.print(name+"的手牌为:");            //遍历牌 就是遍历索引            for(Integer key:ts){                String poker = hm.get(key);                System.out.print(poker+" ");            }            System.out.println();        }

原码:

package 模拟斗地主;    import java.util.ArrayList;    import java.util.Collections;    import java.util.HashMap;    import java.util.TreeSet;        public class ChinesePoker {        public static void main(String[] args) {            //创建HashMap集合   key是编号用Integer  value是牌用String            HashMap<Integer,String>  hm=new HashMap<>();            //创建ArrayList集合用来存储编号            ArrayList<Integer> list=new ArrayList<>();            //创建花色数组和点数数组            String [] color={"♠", "♦", "♥","♣"};            String [] number={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};            //从0开始往HashMap集合里面存储编号,并存储对应的牌。同时往ArrayList集合里面存储编号            int index=0;            //增强For循环存储花色和点数            for(String num:number){                for(String col:color){                    hm.put(index,col+num);                    list.add(index);                    index++;                }            }           //52张牌存完了 还剩大小王  现在添加进去            hm.put(index,"小王");            list.add(index);            index++;            hm.put(index,"大王");            list.add(index);            //洗牌(洗的是编号),用collections的shuffle()方法实现。            Collections.shuffle(list);            //发牌  用TreeSet接收  用三位玩家名字命名            TreeSet<Integer> PDD=new TreeSet<>();            TreeSet<Integer> DaSiMa=new TreeSet<>();            TreeSet<Integer> LuBenWei=new TreeSet<>();            //三张底牌            TreeSet<Integer> finalCard=new TreeSet<>();            for(int x=0;x<list.size();x++){                //定义一个变量接收索引                int  a= list.get(x);                //最后三个索引                if(x>=list.size()-3){              finalCard.add(a);                }else if(x%3 == 0){                    PDD.add(a);                }else if(x%3 == 1){                    DaSiMa.add(a);                }else {                    LuBenWei.add(a);                }            }            //调用看牌方法            lookPoker("PDD",PDD,hm);            lookPoker("大司马",DaSiMa,hm);            lookPoker("卢本伟",LuBenWei,hm);            lookPoker("底牌",finalCard,hm);        }            //定义看牌的方法(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)        public  static void lookPoker(String name,TreeSet<Integer> ts,HashMap<Integer,String>  hm ){            System.out.print(name+"的手牌为:");            //遍历牌 就是遍历索引            for(Integer key:ts){                String poker = hm.get(key);                System.out.print(poker+" ");            }            System.out.println();        }    }

到此,相信大家对“如何使用JavaSE来模拟斗地主”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何使用JavaSE来模拟斗地主

本文链接: https://lsjlt.com/news/270254.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用JavaSE来模拟斗地主
    本篇内容主要讲解“如何使用JavaSE来模拟斗地主”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用JavaSE来模拟斗地主”吧!Java可以用来干什么Java主要应用于:1. web开发;...
    99+
    2023-06-14
  • 使用JavaSE来模拟斗地主
    通过模拟斗地主案例来练习集合的使用 结果预览: 每次发牌后,三位玩家的手牌是随机的并且已经按照手牌大小排完序,运行两次验证手牌的随机性。 马老师的牌还不错,芜湖~起飞 思路: 1...
    99+
    2024-04-02
  • Java模拟实现斗地主发牌
    本文实例为大家分享了Java模拟实现斗地主发牌的具体代码,供大家参考,具体内容如下 题目: 模拟斗地主的发牌实现,54张牌,每张牌不同的花色(红心,黑桃,方块,梅花),牌的点数(3,...
    99+
    2024-04-02
  • Java模拟实现斗地主的洗牌和发牌
    本文实例为大家分享了Java实现斗地主的洗牌和发牌的具体代码,供大家参考,具体内容如下 案例分析: 我们需要模拟斗地主过程中的洗牌、发牌和看牌。而且要求牌是排好序的。 1.每张扑克牌...
    99+
    2024-04-02
  • java集合模拟实现斗地主洗牌和发牌
    本文实例为大家分享了java实现斗地主洗牌和发牌的具体代码,供大家参考,具体内容如下 1:用ArrayList集合实现 案例分析: 我们现在要做的是模拟斗地主小游戏来进行洗牌和发牌。...
    99+
    2024-04-02
  • .Net Core中如何使用SignalR实现斗地主游戏
    本篇内容主要讲解“.Net Core中如何使用SignalR实现斗地主游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“.Net Core中如何使用SignalR实现斗地主游...
    99+
    2023-06-26
  • .NetCore使用SignalR实现斗地主游戏
    之前开内部培训,说到实时web应用这一块讲到了SignalR,我说找时间用它做个游戏玩玩,后面时间紧张就一直没安排。这两天闲了又想起这个事,考虑后决定用2天时间写个斗D主,安排了前端...
    99+
    2024-04-02
  • Java中如何实现斗地主游戏
    这篇文章给大家分享的是有关Java中如何实现斗地主游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。题目要求:通过自制54张扑克牌,发给3人,留下3张底牌,分别显示不同人的手牌与底牌达到斗地主的游戏需求算法思想:...
    99+
    2023-06-20
  • 如何在java中使用ArrayList实现一个斗地主游戏
    本篇文章为大家展示了如何在java中使用ArrayList实现一个斗地主游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 准备牌每张扑克牌牌由花色和数字两部分组成。可以使用花色集合与数字集合嵌...
    99+
    2023-06-06
  • 使用java实现一个斗地主游戏
    这期内容当中小编将会给大家带来有关使用java实现一个斗地主游戏,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。斗地主案例按照斗地主的规则,完成洗牌发牌的动作。具体规则: 使用54张牌打乱顺序,三个玩家参与...
    99+
    2023-06-06
  • java如何实现斗地主发牌功能
    这篇文章给大家分享的是有关java如何实现斗地主发牌功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下问题:参考斗地主的游戏规则,完成一个发牌的功能(54张牌,考虑点数,花色;三名玩家,其中地主比其他...
    99+
    2023-06-20
  • 如何实现java命令行版的斗地主
    本篇内容介绍了“如何实现java命令行版的斗地主”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一、前言相信大家都玩过斗地主游戏,...
    99+
    2023-06-16
  • Java如何实现斗地主的发牌功能
    这篇文章主要介绍了Java如何实现斗地主的发牌功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异,今天我们先来实...
    99+
    2023-06-20
  • Java如何实现斗地主洗牌发牌系统
    这篇文章主要为大家展示了“Java如何实现斗地主洗牌发牌系统”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java如何实现斗地主洗牌发牌系统”这篇文章吧。一、斗地主1.前言相信每位看过《赌神》的...
    99+
    2023-06-29
  • 如何使用MySQL LEFT JOIN 来模拟MySQL MINUS 查询?
    由于我们无法在 MySQL 中使用 MINUS 查询,因此我们将使用 LEFT JOIN 来模拟 MINUS 查询。可以借助以下示例来理解:示例在此示例中,我们有两个表,即 Student_detail 和 Student_info,其内容...
    99+
    2023-10-22
  • 怎么在java中使用HashMap实现一个斗地主游戏
    本篇文章给大家分享的是有关怎么在java中使用HashMap实现一个斗地主游戏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、准备牌:每张扑克牌牌由花色和数字两部分组成。可以...
    99+
    2023-06-06
  • 虚拟主机如何使用
    虚拟主机是一种在单台物理服务器上运行多个独立的网站的技术。下面是使用虚拟主机的一般步骤:1. 购买虚拟主机:在网上选择一个虚拟主机提...
    99+
    2023-08-31
    虚拟主机
  • 如何使用MySQL模拟Redis
    这篇文章给大家分享的是有关如何使用MySQL模拟Redis的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。redis支持近十种数据类型,最常用的有5种。string、hash、zs...
    99+
    2024-04-02
  • JavaSE XML解析技术如何使用
    本文小编为大家详细介绍“JavaSE XML解析技术如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaSE XML解析技术如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。X...
    99+
    2023-07-06
  • tomcat虚拟主机如何使用
    要使用Tomcat的虚拟主机,你需要完成以下步骤:1. 在Tomcat的conf/server.xml文件中,找到Host元素。默认...
    99+
    2023-08-31
    tomcat 虚拟主机
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作