J025_斗地主游戏案例开发(简版)
一、需求描述
完成斗地主游戏的案例开发。
业务:总共有54张牌;
点数:3、4、5、6、7、8、9、10、J、Q、K、A、2
花色:黑桃、红桃、方片、梅花
大小王:大王、小王
点数分别要组合4种花色,大小王各一张。
斗地主:每次发出51张牌,剩下3张作为底牌。
二、代码实现
2.1 Card类
package com.itheima.doudizhu;public class Card {private String number;//点数private String color; //花色private int size;//每张牌大小public Card() {}public Card(String number, String color, int size) {this.number = number;this.color = color;this.size = size;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getSize() {return size;}public void setSize(int size) {this.size = size;}@Overridepublic String toString() {return number + color;}
}
2.2 Room类
package com.itheima.doudizhu;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;public class Room {//房间必须有一张牌private List<Card> allCards = new ArrayList<>();//每次进入房间,牌都是洗好的,所以在构造函数中实现public Room() {//1、整理好牌//2、点数和花色都确定了,使用数组存储String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};//使用数组存储花色String[] colors = {"♠","♥","♣","♦"};//代表每个点数的大小int size = 0;//3、获得每张牌对象for (String number : numbers) {size++;for (String color : colors) {Card c = new Card(number,color,size);//将每张牌存入到整副牌中allCards.add(c);}}//存入小王和大王Card c1 = new Card("","🃏",++size);Card c2 = new Card("","🃏",++size);//得到完整的一副牌Collections.addAll(allCards,c1,c2);//打印牌System.out.println("新牌:" + allCards);}//游戏启动public void start() {//洗牌Collections.shuffle(allCards);System.out.println("洗牌后:" + allCards);//给3个玩家发牌List<Card> player1 = new ArrayList<>();List<Card> player2 = new ArrayList<>();List<Card> player3 = new ArrayList<>();//依次发出51张牌,然后留3张牌作为底牌for (int i = 0; i < allCards.size() - 3; i++) {Card c = allCards.get(i);if (i % 3 ==0) {player1.add(c);} else if (i % 3 == 1) {player2.add(c);} else if (i % 3 == 2) {player3.add(c);}}//对玩家的牌进行排序SortCard(player1);SortCard(player2);SortCard(player3);//看牌System.out.println("1号玩家:" + player1);System.out.println("2号玩家:" + player2);System.out.println("3号玩家:" + player3);//记录底牌List<Card> threeCard = allCards.subList(allCards.size() - 3,allCards.size());System.out.println("底牌:" + threeCard);player2.addAll(threeCard);SortCard(player2);System.out.println("2号玩家抢到地主后:" + player2);}//对牌进行排序private void SortCard(List<Card> cards) {Collections.sort(cards, new Comparator<Card>() {@Overridepublic int compare(Card o1, Card o2) {return o1.getSize() - o2.getSize();//升序排序}});}
}
2.3 Demo类
package com.itheima.doudizhu;public class GameDemo {public static void main(String[] args) {//进入房间Room room = new Room();//游戏启动room.start();}
}
三、运行结果

相关文章:
J025_斗地主游戏案例开发(简版)
一、需求描述 完成斗地主游戏的案例开发。 业务:总共有54张牌; 点数:3、4、5、6、7、8、9、10、J、Q、K、A、2 花色:黑桃、红桃、方片、梅花 大小王:大王、小王 点数分别要组合4种花色,大小王各一张。…...
路径规划 | 飞蛾扑火算法求解二维栅格路径规划(Matlab)
目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 路径规划 | 飞蛾扑火算法求解二维栅格路径规划(Matlab)。 飞蛾扑火算法(Firefly Algorithm)是一种基于自然界萤火虫行为的优化算法,在路径规划问题中也可以应…...
优化Cocos Creator 包体体积
优化Cocos Creator 包体体积 引言一、优化图片文件体积:二、优化声音文件体积:三、优化引擎代码体积:四、 优化字体字库文件大小: 引言 优化Cocos Creator项目的包体体积是一个常见且重要的任务,尤其是在移动设备和网…...
TCPDump协议分析工具
TCPDump协议分析工具 TCPDump是一个强大的命令行工具,用于捕获和分析网络数据包。它能够实时监控和记录网络流量,帮助网络管理员和安全专家排查网络问题、分析流量和检测网络攻击。以下是TCPDump的详细介绍,包括其安装、基本使用、过滤规则和…...
土壤分析仪:解密土壤之奥秘的科技先锋
在农业生产和生态保护的道路上,土壤的质量与状况一直是我们关注的焦点。土壤分析仪,作为现代科技在农业和环保领域的杰出代表,以其高效、精准的分析能力,为我们揭示了土壤的奥秘,为农业生产提供了科学指导,…...
计算1的数量
1. 计算1的数量 题目ID:9809必做题100分 最新提交: Accepted 100 分 历史最高: Accepted 100 分 时间限制: 1000ms 空间限制: 524288kB 题目描述 给定一个n*m的二进制矩阵,请你数一数矩阵中完全被0上下左右包围的1的数…...
Linux udp编程
我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》࿱…...
【开源项目】Rust开发复制文件夹目录结构工具
说明 由于我经常需要在多个大容量的移动硬盘中查找和新增文件,我希望把硬盘的目录结构放到服务器的自建网盘中,因此开发了这个工具,使得在不同硬盘之间的文件管理变得更加便捷 项目地址:https://github.com/VinciYan/folder_clon…...
PostgreSQL的pg_dirtyread工具
PostgreSQL的pg_dirtyread工具 pg_dirtyread 是一个第三方PostgreSQL扩展,它允许用户读取数据库文件中的“脏”数据,即那些被标记为删除或不再可见的数据。这个扩展对于数据恢复和调试非常有用,尤其是在需要恢复被删除或更新前的数据时。 以…...
苹果梦碎:Vision Pro的辉煌与失落,苹果已决定暂停 Vision Pro 后续产品的研发工作
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 苹果Vision Pro:科技巨头的跌宕起伏 在科技的海洋中,苹果公司一直以其创新精神和卓越品质引领潮流。然而,即…...
推荐一款uniapp拖动验证码插件
插件地址:易盾验证码 - DCloud 插件市场 具体使用方式访问插件地址自行获取...
十年期国债收益率
十年期国债收益率是指政府发行的、期限为十年的国债的年化收益率。它被广泛视为一个国家经济健康状况和未来经济前景的重要指标,同时也是金融市场中的一个重要基准利率。 下面我将详细解释十年期国债收益率的相关内容及其意义。 十年期国债收益率的意义 经济健康的…...
使用Go编写的持续下行测速脚本,快速消耗流量且不伤硬盘
GoSpeed 声明 此工具仅用于测试与学习,请勿用于非法用途,如使用此程序请确保所有下载的内容都拥有合法的使用权或分发权,避免侵犯版权、恶意访问 此工具仅用于测试与学习,请勿用于非法用途,如使用此程序请确保所有下载的内容都拥有合法的使用权或分发权,…...
保护国外使用代理IP的安全方法
为了保护在国外使用代理IP的安全,用户可以采取以下方法: 1. 选择可信的代理服务器 在选择代理服务器时,用户应该选择那些经过验证和信任的服务器,如知名的VPN服务提供商。这些服务器通常具有更高的安全性和隐私保护措施。 2. 使用…...
18集 学习ESP32的ESP-DL深度学习教程-《MCU嵌入式AI开发笔记》
18集 学习ESP32的ESP-DL深度学习教程-《MCU嵌入式AI开发笔记》 参考文档:https://docs.espressif.com/projects/esp-dl/zh_CN/latest/esp32/tutorials/index.html 使用TVM自动生成模型部署项目 本案例介绍了使用 TVM 部署模型的完整流程。 该项目基于 TVM v0.14…...
jmeter-beanshell学习9-放弃beanshell
写这篇时候道心不稳了,前面写了好几篇benashell元件,突然发现应该放弃。想回去改前面的文章,看了看无从下手,反正已经这样了,我淋了雨,那就希望别人也没有伞吧,哈哈哈哈,放在第九篇送…...
Web 性能入门指南-1.5 创建 Web 性能优化文化的最佳实践
最成功的网站都有什么共同点?那就是他们都有很强的网站性能和可用性文化。以下是一些经过验证的有效技巧和最佳实践,可帮助您建立健康、快乐、值得庆祝的性能文化。 创建强大的性能优化文化意味着在你的公司或团队中创建一个如下所示的反馈循环ÿ…...
【Android】Service介绍和生命周期
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 介绍 Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不…...
[论文笔记]RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL
引言 今天带来又一篇RAG论文笔记:RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL。 检索增强语言模型能够更好地适应世界状态的变化并融入长尾知识。然而,大多数现有方法只能从检索语料库中检索到短的连续文本片段࿰…...
python 端口的转发
实现端口的转发 tcpsocket.py 对基础的socket进行了封装 import socketclass baseSocket:def service(host:str,port:int,maxSuspend:int)->socket: service_socket socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 创建 socket 对象service_socket.setso…...
FanControl终极指南:5步实现Windows风扇智能控制,让电脑散热更安静更高效
FanControl终极指南:5步实现Windows风扇智能控制,让电脑散热更安静更高效 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://g…...
信创中间件深度解析:东方通TongWeb vs 金蝶天燕 vs 宝兰德,企业级选型指南
📚 信创中间件 🔧 企业级部署 🚀 国产化替代 ⏱️ 阅读约15分钟开篇导读:你是否在信创改造中不知道用什么替代WebLogic或WebSphere?网上搜到的中间件资料要么只讲产品功能不讲迁移方案,要么直接给配置却不解…...
Sora 2输出黑边/裁切异常?GPU解码器与渲染管线冲突导致的16:9→4:3畸变真相(NVIDIA/AMD/Apple芯片差异对照表)
更多请点击: https://codechina.net 第一章:Sora 2视频后期处理技巧 Sora 2作为新一代AI视频生成与编辑平台,其内置的后期处理模块支持高精度帧级调控、语义驱动的局部重绘及时间一致性增强。掌握其核心处理技巧,可显著提升输出视…...
Grafana告警规则配置实战
Grafana告警规则配置实战 一、Grafana告警概述 Grafana提供强大的告警功能,可以基于Prometheus等数据源触发告警通知。 1.1 告警流程 ┌────────────────────────────────────────────────────────────…...
Agent协议标准化:互操作性的未来
Agent协议标准化:互操作性的未来 一、引言 钩子:你是否遇到过这些Agent协作的痛点? 你花了3天时间基于OpenAI GPT-4开发了一个客户需求分析Agent,能自动解析用户对话生成需求文档,但当你想把生成的需求文档同步给公司内部基于Llama 3部署的产品排期Agent时,却发现两个A…...
为你的AI应用配置Taotoken实现自动故障转移与路由
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为你的AI应用配置Taotoken实现自动故障转移与路由 在构建依赖大模型API的应用时,服务的稳定性直接关系到终端用户的体验…...
DeepSeek长上下文延迟飙升预警:GPU显存碎片率>68%时的实时context重分片算法(已集成至v3.2.1热补丁)
更多请点击: https://codechina.net 第一章:DeepSeek长上下文处理 DeepSeek系列模型(如DeepSeek-V2、DeepSeek-Coder、DeepSeek-MoE)原生支持长达128K tokens的上下文窗口,显著超越传统Transformer架构在长文本建模中…...
新手快速上手使用 Python 调用 Taotoken 聚合大模型 API
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 新手快速上手使用 Python 调用 Taotoken 聚合大模型 API 对于刚接触 Taotoken 的 Python 开发者而言,最直接的需求就是…...
LayerDivider:3分钟让单张插画变可编辑图层的AI魔法
LayerDivider:3分钟让单张插画变可编辑图层的AI魔法 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你知道吗?现在有超过85%的数字…...
Android Studio中文界面汉化终极指南:5分钟告别英文困扰
Android Studio中文界面汉化终极指南:5分钟告别英文困扰 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为Androi…...
