斗地主玩法

2024-02-26 10:38
文章标签 斗地主 玩法

本文主要是介绍斗地主玩法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

public class Card {/*大体思路1扑克牌一共有54张,首先创建一个集合来存储扑克牌编号,再创建一个Map集合来存储扑克牌编号与扑克牌牌面的映射关系,牌面有花色4个,数字13个,利用for循环,将52张牌的编号和映射关系分别添加进Arraylist集合和map集合。大王小王的编号和映射独立添加。2 洗牌 Collections.shuffle(poker)  //poker 为保存编号的集合3发牌,编号除以3取余,余1发给第一个人,。。余三发给第三个人。创建三个人的集合,将余1的存第一个人集合,。。。4看牌。看代码注释。。。。斗地主的步骤:1. 准备牌 2. 洗牌3. 发牌4. 看牌*/public static void main(String[] args) {// 1. 准备牌// 创建一个ArrayList集合,保存扑克牌的编号ArrayList<Integer> poker = new ArrayList<>();// 创建一个Map集合,保存编号和扑克牌的对应关系// key是编号,value是对应的扑克牌HashMap<Integer, String> map = new HashMap<>();// 往ArrayList添加编号,往HashMap集合添加对应关系。// 定义数组,保存花色String[] colors = {"♠", "♥", "♣", "♦"};// 定义数组,保存数字String[] nums = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "k","A", "2"};// 定义牌的编号,从0开始int index = 0;// 对数字和花色进行组合,然后添加到对应的集合for (String num : nums) {for (String color : colors) {// 往ArrayList集合中添加编号poker.add(index);// 往Map集合中添加对应关系map.put(index, color + num);// 把index++index++;}}// 添加小王poker.add(index);map.put(index, "小王");index++;// 添加大王poker.add(index);map.put(index, "大王");// 2. 洗牌// 调用Collections工具类的shuffle方法,打乱集合的顺序。// 洗牌我们直接洗编号。Collections.shuffle(poker);// 3. 发牌// 定义三个集合,保存三个玩家手中的牌(真正保存的是编号)ArrayList<Integer> playOne = new ArrayList<>();ArrayList<Integer> playTwo = new ArrayList<>();ArrayList<Integer> playThree = new ArrayList<>();// 定义一个集合,保存底牌ArrayList<Integer> diPai = new ArrayList<>();// 开始发牌,真正发给每个玩家的都是编号。// 遍历存放编号的集合,把里面的编号按照规律发给每一个玩家.// 根据编号在集合中的索引进行发牌.for (int i = 0; i < poker.size(); i++) {// 拿到每张牌(真正拿到的是编号)Integer card = poker.get(i);// 处理底牌if (i >= 51) {// 51 52 53// 如果不足三张牌了,就添加到底牌集合中diPai.add(card);continue;}// 判断并发牌if (i % 3 == 0) {// 如果这张牌的编号的索引  对3取余结果是0,就发给第一个人playOne.add(card);} else if (i % 3 == 1) {// 如果这张牌的编号的索引 对3取余结果是1,就发给第二个人playTwo.add(card);} else {// 如果这张牌的编号的索引 对3取余结果是2,就发给第3个人playThree.add(card);}}// 4. 调用方法进行看牌lookCard("刘德华", playOne, map);lookCard("周星驰", playTwo, map);lookCard("周润发", playThree, map);lookCard("底牌", diPai, map);}/*定义方法,完成看牌。参数:玩家的姓名。玩家手里的牌(真正是编号)保存编号和牌对应关系的Map集合。步骤:在方法中,我们对玩家手中的编号进行排序。打印各种东西...*/public static void lookCard(String name, ArrayList<Integer> list,HashMap<Integer, String> map) {// 对玩家手里的牌进行排序Collections.sort(list);// 对这个集合进行反转,就变成了从小到大进行排序Collections.reverse(list);// reverse方法用来对集合中的内容进行反转// 开始打印System.out.print(name + ": ");// 打印玩家的每一张牌// 遍历ArrayList集合,也就是每个玩家手中的牌的编号,然后根据这个编号去Map集合中找到对应真正的牌。for (Integer cardNumber : list) {// 调用map的get方法,根据牌的编号找到这张牌真正是是什么String card = map.get(cardNumber);System.out.print(card + " ");}System.out.println();}}

这篇关于斗地主玩法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/748583

相关文章

Git的入门级玩法

作为一个还没有实际开发经验的程序员,对于版本控制多少有些陌生,我通常的做法就是项目名后面加数字标记版本,然后备注一个文档说明更新。据个人了解svn用的比较多,我也学习了一点,无非是本地下载一个服务器端,再下一个客户端,模拟一下操作罢了,真正做起来难免觉得有点乏味,所以也没有深入下去。       在我找工作的时候,曾今有人给我一个任务,让我用mongoDB+springMVC+fre

入侵你Linux服务器的一万种玩法...

点击上方“朱小厮的博客”,选择“设为星标” 后台回复”加群“加入公众号专属技术群 来源:uee.me/cFLQY 本文主要分为如下五部分展开: 账户和登录安全 远程访问和认证安全 文件系统安全 Linux 后门入侵检测工具 服务器遭受攻击后的处理过程 账户和登录安全 账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录账户的安全,在一定程度上可以提高服务器的安全级别,下面重

《王者荣耀》游戏玩法与部分机制分析

目录 游戏机制 MOBA核心玩法 匹配机制 游戏模式 隐藏分机制 游戏规则 总结 王者荣耀的ELO匹配机制是如何具体工作的? 王者荣耀中隐藏分机制的详细规则是什么?(难绷!) 王者荣耀边境突围和五军对决模式的具体玩法和规则有哪些? 边境突围模式 五军对决模式 总结 王者荣耀排位赛系统的评分标准和晋级条件是什么? 评分标准 晋级条件 王者荣耀中吸血机制和技能缓存机制

从玩法到收益,MATCH NFT如何引领NFT市场新潮流?

如果要问最近NFT领域最热门的项目是什么,MATCH NFT无疑是版本答案。 MATCH NFT,以其创新的发行机制和多元化的收益模式,成为了NFT领域的热门项目,Match NFT将于8月31日正式开启拍卖,MATCH NFT当下的火爆热度,迅速吸引了加密行业的广泛关注。 众所周知,NFT市场一直都是神仙打架各显神通,成为市场焦点的MATCH NFT究竟有什么独到之处,为何能够在如此

迷雾大陆辅助:VMOS云手机助力新手入门!玩法机制大全!

在《迷雾大陆》的神秘世界中,玩家们总是面临着层层挑战,而使用VMOS云手机能够极大地提升你的游戏体验。VMOS云手机专门为《迷雾大陆》打造了定制版云手机,内置游戏安装包,玩家无需重新下载安装,直接畅玩。此外,VMOS云手机支持24小时云端运行,帮助你轻松完成日常任务和活动,解放双手。更令人惊喜的是,VMOS云手机还能实现无限多开,无论你是想同时操作多个账号,还是在不同设备上无缝衔接,VMO

流量掘金付费进群源码,最新无人直播变现玩法

外面1800流量掘金付费进群搭建 最新无人直播变现玩法 流量掘金付费进群网站源码 源码下载:https://download.csdn.net/download/m0_66047725/89662670 更多资源下载:关注我。

DNF攻略:护石符文体系辅助详解,VMOS云手机助攻核心玩法!

在DNF游戏中,护石符文系统是提升角色实力的重要部分。当前版本中,护石符文体系经过了优化,使得获取方式更加便捷。以下是护石符文体系的详细介绍,以及如何使用VMOS云手机来更高效地管理和利用这一系统。 一、护石符文体系简介 护石符文系统自加入以来,成为了玩家提升战斗力的关键。护石可以增强技能效果,而符文则进一步强化护石的属性。每个护石都有三个槽位,可以嵌入不同颜色的符文来激活护石的全部属

企业如何突破流量困境?云微客短视频矩阵玩法教给你

当今的短视频时代,很多企业可能都觉得管理一个账号加上制作视频就已经够难了,如果做短视频矩阵,就要做几十上百个账号,岂不是更加难上加难?而实际上,随着流量的竞争越来越激烈,单靠一个账号很难获取较大流量,如果要突破流量桎梏,就一定要考虑做云微客短视频矩阵系统。 有了矩阵系统的辅助,基本可以解决商企99%的烦恼,直接将流量放大十倍甚至百倍,听起来就很厉害。那么短视频矩阵玩法的具体策略是什么呢?

【vite】入门 publicDir 到高阶玩法

【vite】入门 publicDir 到高阶玩法 📌 使用方式 🧩 默认选项 publicDir默认选项为字符"public",表示静态资源默认指向public。 import { defineConfig } from 'vite'export default defineConfig({publicDir: 'public'}) 说明:在使用时,无需在路径前添加/publ

力扣SQL50 游戏玩法分析 IV 子查询

Problem: 550. 游戏玩法分析 IV 👨‍🏫 参考题解 这个SQL查询的目的是计算每个玩家在登录后的第二天参与活动的比例。查询使用了子查询和左连接来实现这一目的。下面是查询的详细解释,包括每个部分的作用和注释: -- 计算每个玩家登录后第二天参与活动的比例select round(avg(a.event_date is not null), 2) as fractio