java斗牛,咋金花
无聊时间,打发下游戏
简单说下思路
目录
1.创建牌对象
2.创建52张牌,不包含大小王
3.洗牌
4.发牌
1.创建牌对象
2.创建52张牌,不包含大小王
3.洗牌
4.发牌
/*** 扑克牌*/
public class Poker {/*** 花色*/private String cardSuits;/*** 数字*/private int cardNum;/*** 人名*/private String peopleName;public Poker() {}public Poker(String cardSuits, int cardNum) {this.cardSuits = cardSuits;this.cardNum = cardNum;}public Poker(String cardSuits, int cardNum, String peopleName) {this.cardSuits = cardSuits;this.cardNum = cardNum;this.peopleName = peopleName;}public String getCardSuits() {return cardSuits;}public void setCardSuits(String cardSuits) {this.cardSuits = cardSuits;}public int getCardNum() {return cardNum;}public void setCardNum(int cardNum) {this.cardNum = cardNum;}public String getPeopleName() {return peopleName;}public void setPeopleName(String peopleName) {this.peopleName = peopleName;}
}
import java.util.*;public class CardUtils {public static String[] strSuits = {"♠", "♥", "♣", "♦"};public static void main(String[] args) {//组装52张扑克List<Poker> pokerList = getPokerList();//洗牌Set<Poker> pokerSet = getPokerSet(pokerList);//发牌licensing(5,pokerSet);}/*** 获取一副新牌** @return*/public static List<Poker> getPokerList() {//组装52张扑克List<Poker> pokerList = new ArrayList<>();for (int i = 0; i < strSuits.length; i++) {for (int j = 1; j <= 13; j++) {Poker poker = new Poker(strSuits[i], j);pokerList.add(poker);}}System.out.println("======新牌=====未打乱顺序 begin======");pokerList.forEach(l -> System.out.print(l.getCardSuits() + l.getCardNum() + "===="));System.out.println();System.out.println("======新牌=====未打乱顺序 end======");System.out.println();return pokerList;}/*** 洗牌** @param pokerList* @return*/public static Set<Poker> getPokerSet(List<Poker> pokerList) {//打乱顺序Set<Poker> pokerSet = new HashSet<>();Random random = new Random();while (pokerSet.size() < pokerList.size()) {pokerSet.add(pokerList.get(random.nextInt(pokerList.size())));}//重新洗牌之后的顺序System.out.println("======洗牌======打乱顺序 begin======");pokerSet.forEach(l -> System.out.print(l.getCardSuits() + l.getCardNum() + "===="));System.out.println();System.out.println("======洗牌======打乱顺序 end======");System.out.println();return pokerSet;}/*** 发牌(不得超过10人)** @param num 几人再玩* @param pokerSet 打乱顺序的牌*/public static void licensing(int num, Set<Poker> pokerSet) {if (num < 2 || num > 10) {System.out.println("参与人数不得小于2人或者大于10人");return;}//针对每个人的集合====几个人玩就循环几次List<List<Poker>> peopleList = new ArrayList();for (int i = 0; i < num; i++) {List<Poker> list = new ArrayList<>();peopleList.add(list);}//已发过的牌List<Poker> tempList = new ArrayList<>();//发牌 3人 每人5张for (int i = 0; i < 5; i++) {for (int j = 0; j < peopleList.size(); j++) {List<Poker> pokers = peopleList.get(j);Poker poker = pokerSet.iterator().next();poker.setPeopleName("持牌者" + j);pokers.add(poker);tempList.add(poker);pokerSet.remove(poker);continue;}}System.out.println("======已发过的牌 begin======");tempList.forEach(l -> System.out.print(l.getCardSuits() + l.getCardNum() + "===="));System.out.println();System.out.println("======已发过的牌 end======");System.out.println();System.out.println("======剩余的牌 begin======");pokerSet.forEach(l -> System.out.print(l.getCardSuits() + l.getCardNum() + "===="));System.out.println();System.out.println("======剩余的牌 end======");System.out.println();peopleList.forEach(pl -> {System.out.println("======分割线======" + pl.get(0).getPeopleName());pl.forEach(poker -> System.out.print(poker.getCardSuits() + poker.getCardNum() + "===="));System.out.println();});}
}
相关文章:
java斗牛,咋金花
无聊时间,打发下游戏 简单说下思路 目录 1.创建牌对象 2.创建52张牌,不包含大小王 3.洗牌 4.发牌 1.创建牌对象 2.创建52张牌,不包含大小王 3.洗牌 4.发牌 /*** 扑克牌*/ public class Poker {/*** 花色*/private String cardSuits…...
深信服技术认证“SCSA-S”划重点:信息收集
为帮助大家更加系统化地学习网络安全知识,以及更高效地通过深信服安全服务认证工程师考核,深信服特别推出“SCSA-S认证备考秘笈”共十期内容,“考试重点”内容框架,帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师…...
代码逻辑修复与其他爬虫ip库的应用
在一个项目中,由于需要设置 http_proxy 来爬虫IP访问网络,但在使用 requests 库下载文件时遇到了问题。具体表现为在执行 Python 脚本时,程序会阻塞并最终超时,无法正常完成文件下载。 解决方案 针对这个问题,我们可以…...
字符串结尾空格比较相关参数BLANK_PAD_MODE(DM8:达梦数据库)
DM8:达梦数据库 字符串结尾空格比较相关参数BLANK_PAD_MODE 环境介绍1 BLANK_PAD_MODE01.1 初始化数据库1.2 创建测试表 T0 2 BLANK_PAD_MODE12.1 初始化数据库2.2 创建测试表 T1 3 BLANK_PAD_MODE只对字段varchar类型生效3.1 BLANK_PAD_MODE 对char 类型对比无效3.2 在两个数据…...
微型计算机原理MOOC题
一、8254 1.掉坑了,AL传到端口不意味着一定传到的是低位,要看控制字D5和D4,10是只写高位,所以是0A00.。。 2. 3. 4.待解决:...
TensorFlow实战教程(十八)-Keras搭建卷积神经网络及CNN原理详解
从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章详细讲解了Keras实现分类学习,以MNIST数字图片为例进行讲解。本篇文章详细讲解了卷积神经网络CNN原理,并通过Keras编写CNN实现了MNIST分类学习案例。基础性文章,希望对您有所帮助! 一…...
uniapp为什么能支持多端开发?uniapp底层是怎么做的?
文章目录 前言uniapp为什么能支持多端开发?uniapp底层是怎么做条件编译uniapp的语法uniapp如何编译为不同端的代码uniapp的底层是如何做平台特性适配的呢?后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:uniapp &…...
《数据仓库入门实践》
前言: 1、问什么要写这篇博客? 随着自己在数仓岗位工作的年限增加,对数仓的理解和认知也在发生着变化 所有用这篇博客来记录工作中用到的知识点与经验 2、这篇博客主要记录了哪些内容? 在日常工作中,发现刚接触不久数仓…...
什么是arguments对象?
arguments 对象是 JavaScript 中的一个特殊对象,它包含了函数被调用时传入的所有参数。arguments 对象是一个类数组对象,它有一个 length 属性和按数字索引的元素。 每个函数在执行时都会自动创建一个 arguments 对象。我们可以通过arguments去访问参数…...
Java LinkedList链表、HashSet、HashMap
一、Java LinkedList: 链表(LinkedList)是一种常见的基础数据结构,是一种线性表,在每一个节点里存储下一个节点的地址。链表分为单向链表和双向链表。单向链表包含两个值:当前节点的值和指向下一个节点的链…...
Linux中清除cache/buffer方法
1、查看Linux中的cache/buffer情况: free -h 2、仅清除页面缓存PageCache方法: echo 1 > /proc/sys/vm/drop_caches 3、清除目录项和inode节点: echo 2 > /proc/sys/vm/drop_caches 4、清除页面缓存、目录项和inode节点:…...
github批量仓库克隆,git clone某个用户的所有仓库
利用github的api工具, 首先拿到用户名为kevin的所有仓库的url: curl "https://api.github.com/users/kevin/repos?per_page100&&page1" | grep -w clone_url >clone.txt过滤一下: grep -o https://[^"]* clone…...
防爆智能安全帽、防爆手持终端,防爆智能矿灯守护安全,在煤矿安全生产远程可视化监管中的应用
煤矿安全新守护:如何通过防爆智能装备实现远程可视化监管 煤矿是国民经济的重要支柱产业,但长期以来,安全生产事故的频发一直是困扰煤矿行业发展的严峻问题。安全生产事故不仅危及矿工的生命安全,也对企业和地方经济造成了重大的…...
数据结构与算法【B树】的Java实现+图解
目录 B树 特性 实现 节点准备 大体框架 实现分裂 实现新增 实现删除 完整代码 B树 也是一种自平衡的树形数据结构,主要用于管理磁盘上的数据管理(减少磁盘IO次数)。而之前说的AVL树与红黑树适合用于内存数据管理。存储一个100w的数…...
2024中国人民大学计算机考研分析
24计算机考研|上岸指南 中国人民大学 中国人民大学计算机考研招生学院是信息学院。目前均已出拟录取名单。 中国人民大学在1978年创立了经济信息管理系,它是国内最早建立的将数学与信息技术在经济管理领域应用为特色的系科。1986年,在原系计算站的基础…...
无人智能货柜:提升购物体验
无人智能货柜:提升购物体验 随着移动支付的普及,人们日常生活中的主要场景已经渗透了这一支付方式。同时,无人智能货柜作为购物的重要渠道,正在崭露头角。通过人工智能、图像识别和物联网技术的应用,无人智能货柜将使购…...
【OpenCV实现图像:可视化目标检测框】
文章目录 概要画框函数代码实现标签美化角点美化透明效果小结 概要 目标检测框的可视化在计算机视觉和机器学习领域中是一项重要的任务,有助于直观地理解和评估目标检测算法的性能。通过使用Python和相关的图像处理库,可以轻松实现目标检测框的可视化。…...
C/C++---------------LeetCode第1436. 旅行终点站
旅行的终点站 题目及要求哈希算法在main内使用 题目及要求 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可…...
如何在AD上创建完整的项目
首先,我们先安装好AD,这里我使用的是AD22,安装过程如下: Altium Designer 22下载安装教程-CSDN博客 Altium Designer 22是全球领先的PCB设计软件之一,为电路板设计师提供了一种集成的解决方案,旨在简化和加…...
实时错误’-2147217887‘多步OLB DB 操作产生错误。如果可能,请检查OLE DB状态值
目录 背景问题问题分析问题解决 错误解决与定位技巧总结 背景 仍旧是学生信息管理系统的问题,当时做的时候没发现这么多问题呢,只能说明一件事,做的时候没有站在用户的角度考虑需求,设置了什么内容,就按照设置好的去测…...
BrainExplore框架:fMRI与AI结合的大脑视觉表征研究
1. 大脑视觉表征研究的现状与挑战人脑如何表征视觉信息一直是神经科学领域的核心问题。功能性磁共振成像(fMRI)技术通过测量血氧水平依赖(BOLD)信号,为我们提供了研究大脑视觉处理过程的非侵入性窗口。这项技术将大脑活动分割成数万个微小体积元素(体素),…...
开源AI应用平台LobeHub:基于Next.js与插件架构的部署与开发指南
1. 项目概述:一个开源的AI应用构建平台如果你最近在关注AI应用开发,尤其是想快速搭建一个属于自己的ChatGPT风格界面,或者想集成多个AI模型来做个智能助手,那么你很可能已经听说过LobeHub这个名字。它不是一个单一的AI模型&#x…...
AI自主探索算法:语言模型与符号计算融合创新
1. 项目概述:当AI开始自主探索算法在实验室调试神经网络时,我常思考一个问题:如果让AI自己设计算法会怎样?AlphaResearch正是这个疯狂想法的产物——一套能自主发现新算法的语言模型系统。不同于传统AI仅执行预设任务,…...
告别C++!用Python给SolidWorks 2022写插件,5步搞定自定义菜单(附完整源码)
Python驱动SolidWorks二次开发:5步构建高效插件体系 在工业设计领域,SolidWorks长期占据着三维CAD软件的领导地位,但其传统的C/VB二次开发方式让许多现代开发者望而却步。当Python遇上SolidWorks,我们不仅获得了语法简洁的开发体验…...
批量更新不用游标:CASE WHEN + 集合操作,一行SQL搞定!
📌 今日关键词:批量更新、效率优化、CASE WHEN、集合操作、MySQL技巧 大家好呀!我是数据库小学妹👋 今天上午我们学了游标——它能逐行处理数据,但在处理大量数据时容易“卡顿”。那有没有更简单、更高效的办法呢…...
Qwen3.5-2B入门指南:Clear Chat与Export History在团队协作中的妙用
Qwen3.5-2B入门指南:Clear Chat与Export History在团队协作中的妙用 1. 认识Qwen3.5-2B轻量化模型 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型,属于Qwen3.5系列的小参数版本(20亿参数)。这个模型特别适合团队协作场景&#…...
聊聊 MQTT:物联网的“普通话”
你有没有想过,智能家居里的设备之间是怎么“聊天”的?比如,温度传感器检测到室温过高,是怎么通知空调自动打开的?又或者,你的手机 APP 是怎么远程控制花园里的喷灌系统的?这些设备往往来自不同厂…...
深度学习语音任务中2D最大池化的解释性优势
1. 聚合函数在深度学习解释性中的核心作用在语音识别(ASR)和语音翻译(ST)任务中,模型的可解释性直接影响着我们对预测结果的信任度。输入解释(Input Explanation)技术通过生成显著性图ÿ…...
每天一个小技能——GitHub入门
GitHub简介 什么是GitHub及其核心功能 GitHub 基于 Git 的代码托管 协作开发平台。程序员的 “云端代码网盘 协作工作台 项目社区”。 核心功能 代码托管:把项目代码存在云端版本管理:记录每一次修改,可回滚、可对比团队协作…...
信息看了很多,判断力没有变——这才是真正的问题
最近每天早上我的 AgentOS 都会做一件事:把前一天的信息流,变成一套可以迁移的判断模型。 不是写文章。不是做总结。是让今天的新闻、案例、信号,真正改变我以后面对同类问题时的判断方式。 这件事叫知识合成。 它很重要,但以前几…...
