Java案例斗地主游戏
目录
一案例要求:
二具体代码:
一案例要求:

(由于暂时没有学到通信知识,所以只会发牌,不会设计打牌游戏)
二具体代码:
Ⅰ:主函数
package three;public class test {public static void main(String[] args) {Room room=new Room();room.start();}
}
Ⅱ:实体类:
package three;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 color+number;}
}
Ⅲ操作类:
package three;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(){String []numbers={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};String []color={"♠","♣","■","♥"};int size=0;for (String number : numbers) {size++;for (String s : color) {card a=new card(number,s,size);allcards.add(a);}}card a1=new card("","🃏",++size);card a2=new card("","🃏",++size);Collections.addAll(allcards,a1,a2);System.out.println("新牌"+allcards);}public void start() {Collections.shuffle(allcards);System.out.println("洗牌后"+allcards);List<card>xiaozhang=new ArrayList<>();List<card>xiaowang=new ArrayList<>();List<card>xiaochong=new ArrayList<>();for (int i = 0; i < allcards.size()-3; i++) {if(i%3==0){xiaozhang.add(allcards.get(i));}if(i%3==1){xiaowang.add(allcards.get(i));}if(i%3==2){xiaochong.add(allcards.get(i));}}sort(xiaozhang);sort(xiaowang);sort(xiaochong);System.out.println("小张"+xiaozhang);System.out.println("小王"+xiaowang);System.out.println("小冲"+xiaochong);List<card> left=allcards.subList(allcards.size()-3,allcards.size());xiaozhang.addAll(left);sort(xiaozhang);System.out.println("小张抢到地主牌后"+xiaozhang);}public void sort(List<card> a){Collections.sort(a, new Comparator<card>() {@Overridepublic int compare(card o1, card o2) {return o1.getSize()-o2.getSize();}});}
}
相关文章:
Java案例斗地主游戏
目录 一案例要求: 二具体代码: 一案例要求: (由于暂时没有学到通信知识,所以只会发牌,不会设计打牌游戏) 二具体代码: Ⅰ:主函数 package three;public class test {…...
sqlite|轻量数据库|pgadmin4的sqlite数据库操作--重置密码和账号解锁
前言: pgadmin4的用户密码以及pgadmin4创建的pg数据库的连接信息等等都是存放在sqlite数据库内的;而有的时候,可能会由于自己的问题将pgadmin4的密码忘记,这个时候需要重置pgadmin4的密码,或者是pgadmin4的密码输错多…...
【ARMv8/v9 异常模型入门及渐进 9.1 - FIQ 和 IRQ 打开和关闭】
请阅读【ARMv8/v9 ARM64 System Exception】 文章目录 FIQ/IRQ Enable and Disable汇编指令详解功能解释使用场景和注意事项 FIQ/IRQ Enable and Disable 在ARMv8/v9架构中,可以使用下面汇编指令来打开FIQ和 IRQ,代码如下: asm volatile ("msr da…...
深入探索Flutter中的状态管理:使用Provider库
当涉及Flutter状态管理时,provider是一个强大且灵活的解决方案,它提供了一种简单且高效的方式来管理应用程序状态。本文将详细介绍Flutter中provider插件的使用方法、示例代码、各种使用场景以及注意事项。 1. 引入依赖 首先,需要在项目的pubspec.yaml文件中添加provider依…...
算法工程师第十四天(找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树 )
参考文献 代码随想录 一、找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 层次遍历&#…...
memcached 高性能内存对象缓存
memcached 高性能内存对象缓存 memcache是一款开源的高性能分布式内存对象缓存系统,常用于做大型动态web服务器的中间件缓存。 mamcached做web服务的中间缓存示意图 当web服务器接收到请求需要处理动态页面元素时,通常要去数据库调用数据,但…...
C语言 分割链表
题目来源: 代码部分,参考官方题解的写法: // 思路: 就是把原始链表,拆分为2部分,最后再拼接一下。struct ListNode* partition(struct ListNode* head, int x) {struct ListNode* small malloc(sizeof(struct ListNode));struct ListNode*…...
spring ioc的原理
1、控制反转(IOC):对象的创建控制权由程序自身转移到外部(容器) 2、依赖注入(DI):所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。 Spring 中的 IoC 的实现原理就是工厂模式加反射机制。 参考资料…...
npm安装依赖包报错,npm ERR! code ENOTFOUND
一、报错现象: npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning ETIMEDOUT: request to https://registry.npmjs.org/vue failed, reason: connect ETIMEDOUT 104.16.23.35:443 npm WARN registry Using stale data…...
【iOS】——内存对齐
内存对齐是什么 内存对齐指的是数据在内存中的布局方式,它确保每个数据类型的起始地址能够满足该类型对齐的要求。这是因为现代处理器在访问内存时,如果数据的起始地址能够对齐到一定的边界,那么访问速度会更快。这种对齐通常是基于数据类型…...
网络安全-网络安全及其防护措施10
46.软件定义网络(SDN) 软件定义网络(SDN)的概念和特点 软件定义网络(SDN)是一种新兴的网络架构,通过将网络的控制平面(Control Plane)和数据转发平面(Data …...
Pytorch基础应用
1.数据加载 1.1 读取文本文件 方法一:使用 open() 函数和 read() 方法 # 打开文件并读取全部内容 file_path example.txt # 替换为你的文件路径 with open(file_path, r) as file:content file.read()print(content)方法二:逐行读取文件内容 # 逐…...
Axure 教程 | 设置文本框背景透明
在AXURE软件中,部件样式可以编辑,但有时却无法满足所有个性化原型的需求。例如文本框部件,可以设置是否隐藏边框,但即使隐藏边框之后,文本框还会有白色的背景。 当界面需要一个无背景色的输入框时,对于完…...
【BUG】已解决:NOAUTH Authentication required
已解决:NOAUTH Authentication required 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发者社区主理人…...
全国产服务器主板:搭载飞腾FT2000+/64处理器的高性能加固服务器
近期很多朋友咨询全国产化的服务器主板。搭载的是飞腾FT-2000/64的全国产化服务器主板。他的主要特点是:①丰富的PCIe、千兆以太网、SATA接口,可用作数据处理、存储、通信服务器;②板载独立显示芯片,对外HDMI/VGA/L…...
OPC UA边缘计算耦合器BL205工业通信的最佳解决方案
OPC UA耦合器BL205是钡铼技术基于下一代工业互联网技术推出的分布式、可插拔、结构紧凑、可编程的IO系统,可直接接入SCADA、MES、MOM、ERP等IT系统,无缝链接OT与IT层,是工业互联网、工业4.0、智能制造、数字化转型解决方案中IO系统最佳方案。…...
【已解决】Django连接MySQL启动报错Did you install mysqlclient?
在终端执行python manage.py makemigrations报错问题汇总 错误1:已安装mysqlclient,提示Did you install mysqlclient? 当你看到这样的错误信息,表明Django尝试加载MySQLdb模块但未找到,因为MySQLdb已被mysqlclient替代。 【解…...
ubuntu gcc g++版本切换
要将 GCC 和 G 的版本从 12.4 降低到 9,你可以按照以下步骤操作: 安装 GCC 和 G 9: sudo apt update sudo apt install gcc-9 g-9 使用 update-alternatives 设置优先级: sudo update-alternatives --install /usr/bin/gcc gcc…...
如何发一篇顶会论文? 涉及3D高斯,slam,自动驾驶,三维点云等等
SLAM&3DGS 1)SLAM/3DGS/三维点云/医疗图像/扩散模型/结构光/Transformer/CNN/Mamba/位姿估计 顶会论文指导 2)基于环境信息的定位,重建与场景理解 3)轻量级高保真Gaussian Splatting 4)基于大模型与GS的 6D pose e…...
Java面试八股之什么是Redis的缓存更新
什么是Redis的缓存更新 Redis的缓存更新是指当缓存中的数据发生变化时,需要将这些变化同步到缓存中以保持数据的一致性。缓存更新的目的是确保缓存中的数据始终是最新的,以便用户可以获取到最新的数据。 常见的缓存更新策略包括: 直接覆盖…...
大语言模型训练中的显存占用与优化方法简述
在进行大语言模型(LLM)的微调或预训练时,显存(VRAM)不足通常是首要面临的问题。为了在有限的硬件资源下完成训练,了解显存的具体去向以及相应的优化技术是比较基础的工作。 从模型训练的流程来看ÿ…...
UE5 Widget Blueprint实战:5分钟搞定动态血量条与得分系统(附完整蓝图代码)
UE5 Widget Blueprint实战:5分钟搞定动态血量条与得分系统(附完整蓝图代码) 在独立游戏开发中,UI系统往往是决定玩家体验的关键因素之一。想象一下:当玩家在激烈的战斗中无法快速获取角色状态,或是完成成就…...
从登录到鉴权:一个前后端分离项目的完整JWT非对称加密配置指南(Vue3 + Spring Boot)
从登录到鉴权:一个前后端分离项目的完整JWT非对称加密配置指南(Vue3 Spring Boot) 在现代Web应用开发中,前后端分离架构已成为主流选择。这种架构下,如何安全高效地处理用户认证与授权成为一个关键问题。本文将带你从…...
s2-pro语音合成教程:支持数字/单位/英文缩写智能朗读技巧
s2-pro语音合成教程:支持数字/单位/英文缩写智能朗读技巧 1. 快速了解s2-pro语音合成 s2-pro是Fish Audio开源的专业级语音合成模型镜像,它能将文本转换为自然流畅的语音。这个工具特别适合需要语音播报、有声读物制作、视频配音等场景的用户。 与普通…...
c++ 字符大小写转化
#include <iostream> using namespace std;int main() {char a;cin >> a;//a-z-97-122//A-Z-65-90//差32//小写转大写 if(97<(int)a && (int)a<122){a(int)a-32;cout << a; return 0; }//大写转小写 if(65<(int)a && (int)a<90)…...
工业自动化实战:三大品牌伺服驱动器IO与串口引脚接线全解析
1. 伺服驱动器接线基础:为什么IO与串口引脚如此重要 第一次接触伺服驱动器时,我被密密麻麻的接线端子吓到了。后来才发现,只要理解几个核心引脚的功能,剩下的都是举一反三。伺服驱动器的IO和串口引脚就像机器的"神经系统&quo…...
3大核心能力重新定义macOS炉石传说对战体验:HSTracker全方位辅助系统解析
3大核心能力重新定义macOS炉石传说对战体验:HSTracker全方位辅助系统解析 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker HSTracker是一款专为macOS平台设计…...
Web开发中前端与Node服务中的信息安全与解决办法
Web开发中前端与Node服务中的信息安全与解决办法 input限制特殊字符和长度 漏洞描述: 永远不要相信用户输入的信息,如常规的注入脚本通过input输入之后被页面执行 整改办法 方法1:对于vue项目中ElementUI的el-input 和 原生input <el-in…...
重庆灌浆料销售厂家怎么联系
在重庆的建筑工程领域,灌浆料的应用十分广泛。然而,众多重庆灌浆料厂家的市场状况究竟如何?又存在哪些痛点呢?市场现状:鱼龙混杂目前,重庆灌浆料市场厂家众多,但质量参差不齐。行业权威报告显示…...
如何通过WechatRealFriends解决微信单向好友检测难题
如何通过WechatRealFriends解决微信单向好友检测难题 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends 在数字化社…...
