简单的洗牌程序

Java:实现洗牌算法(附完整源码) 阅读详情

        今天偶尔看到一个题目是要编写一个洗牌程序,思考良久不知从何下手。刚开始是想到要用随机数和set集合,一开始思路是在set里放一个map,然后在map里面放入一个一个String 和set感觉太烦而且工作量大,换了一个思路后就成功了,附代码:

import java.util.LinkedHashSet;
import java.util.Set;

public class Test {
	public static void main(String[] args) {
		int count = 0;//统计共发了多少牌
		/*用于存储4种花色里的牌*/
		//黑桃
		Set<Integer> spade = new LinkedHashSet<Integer>();
		//红桃
		Set<Integer> hearts = new LinkedHashSet<Integer>();
		//梅花
		Set<Integer> plum = new LinkedHashSet<Integer>();
		//方块
		Set<Integer> diamonds = new LinkedHashSet<Integer>();
		do {
			//1~4的随机数,表示4中花色
			int colour = (int) (Math.random() * 4) + 1;
			//1~13的随机牌
			int board = (int) (Math.random() * 13) + 1;
			switch(colour){
				case 1:
					if(!spade.contains(board) && spade.size() < 14){
						spade.add(board);
						count++;
						System.out.println("黑桃"+ board);
					}
					break;
				case 2:
					if(!hearts.contains(board) && hearts.size() < 14){
						hearts.add(board);
						count++;
						System.out.println("红桃"+ board);
					}
					break;
				case 3:
					if(!plum.contains(board) && plum.size() < 14){
						plum.add(board);
						count++;
						System.out.println("梅花"+ board);
					}
					break;
				case 4:
					if(!diamonds.contains(board) && diamonds.size() < 14){
						diamonds.add(board);
						count++;
						System.out.println("方块"+ board);
					}
					break;
			}
			//当发了52张牌就退出循环
			if (count >= 52) {
				break;
			}
		} while (true);
	}
}


java模拟人工洗牌(改进版) 编写一个模拟人工洗牌的程序,将洗好的牌分别发给四个人。 使用结构card 来描述一张牌,用随机方法来模拟人工洗牌的过程,最后将洗好的52张牌顺序分别发给四个人。 设计要求: 1)要求使用java类包中的Math.Random()方法进行随机处理。 2)要求在dos控制台窗口中显示每个人手上的扑克牌 3)要求将每个人手上的13张牌按照四种花色,从小到大排列整齐后显示出来。 *4)可以设计成图形用户界面,通过按钮进行洗牌、发牌的动作,并按上面的要求显示东西南北四个人手上的牌型。 立即下载

相关推荐

模拟人工洗牌

编写一个模拟人工洗牌的程序,将洗好的牌分别发给四个人。 使用结构card 来描述一张牌,用随机方法来模拟人工洗牌的过程,最后将洗好的52张牌顺序分别发给四个人。 设计要求: 1)要求使用java类包中的Math.Random()方法进行随机处理。 2)要求在dos控制台窗口中显示每个人手上的扑克牌 3)要求将每个人手上的13张牌按照四种花色,从小到大排列整齐后显示出来。 *4)可以设计成图形用户界面,通过按钮进行洗牌、发牌的动作,并按上面的要求显示东西南北四个人手上的牌型。

ArrayList | 简单的洗牌算法

逐行详解ArrayList洗牌算法

wyd_333的博客 1807

java写的poker洗牌小程序

java 写的扑克洗牌程序,适合初学者参考

java 洗牌程序

拟写一个简单的洗牌程序,可以在文本模式下显示洗牌结果

63516的博客 387

简单发牌程序

简单的发牌程序

`Q3.py`中是一个简单的模拟洗牌发牌程序,请根据要求补全程序。

`Q3.py`中是一个简单的模拟洗牌发牌程序,请根据要求补全程序。

C语言实现-“洗 扑克牌”程序 算法(详解)

C语言实现-“洗 扑克牌”程序(详解)

m0_54158068的博客 4718

win10 离线安装.Net Framework3.5

起因,安装软件比如3dmax2014等需要.Net Framework3.5支撑,那么需要安装低版本的.Net Framework3.5 闲话少说。 1.下载 NetFx3.cab 链接: https://pan.baidu.com/s/124to7F3BOy4yAlY61OjbDg 提取码: kixu 2.将NetFx3.cab 放入 系统盘的windows目录下(示例 C:\Wi...

m0_37615458的博客 7714

洗牌程序

之前在写抽样问题——《编程珠玑》读书笔记这篇文章的时候提到将一个数列进行重新排列,目的是弄乱原有数据的排列,相当于洗牌,这篇文章主要讲讲这个洗牌程序的实现。         一、Fisher–Yates Shuffle         最早提出这个洗牌方法的是 Ronald A. Fisher 和 Frank Yates,即 Fisher–Yates Shuffle,其基本思想就是从原始数

Stay hungry, Stay foolish 9139

ESP32S3学习——i2c,点亮0.96寸oled

ESP32S3学习——i2c,点亮0.96寸oled

HandBAI的博客 1万+

8台 × 8卡 910B NPU之顶尖大模型选型分析

本文对比了2026年主流大语言模型在昇腾910B NPU集群上的部署方案。重点评估了GLM5、MiniMax M2.5、Kimi K2.5、DeepSeek V3.2和Qwen 3.5旗舰版等候选模型,从部署需求(显存占用)、能力表现(基准测试、多模态支持)和NPU生态适配度三个维度进行分析。结果显示DeepSeek V3.2综合表现最优:支持BF16/W8A8/INT4量化,在4TB显存环境下可实现2000+ TPS,首token延迟<100ms,且具备官方NPU支持。备选方案Qwen 3.5旗舰版

FeelTouch Labs 754

简单的java扑克洗牌程序_简单java发牌洗牌小程序

原标题:简单java发牌洗牌小程序创建扑克牌类输入代码:package play.card; 公共类Card { public String num; 公共字符串; public card(String num,String suit){ this.num = num; 这件衣服=套装; }public Card(){ 超();}@Override public String toString()...

weixin_39864571的博客 309

Windows下Python调用D435i相机避坑指南:从SDK版本选择到RealSense Viewer报错解决

本文详细介绍了在Windows环境下使用Python调用Intel D435i相机的完整避坑指南。重点解决了SDK版本选择问题,推荐使用稳定的Intel RealSense SDK 2.54.2版本,并提供了从环境配置、常见报错解决到实际应用案例的全流程实践指导,帮助开发者高效完成相机部署与开发。

palm99的专栏 923

java发牌程序视频_简单java发牌洗牌小程序

```创建扑克牌类输入代码:package play.card;public class Card {public String num;public String suit;public Card(String num,String suit) {this.num = num;this.suit = suit;}public Card() {super();}@Overridepublic St...

weixin_33929779的博客 106

EtherCAT-1 技术概述

1.EtherCAT简介①开放的技术EtherCAT全称EtherNet Control Automation Technology,是由德国倍福(Beckhoff)公司提出的一种实时以太网技术。EtherCAT是一种开放但不开源的技术,意味着您可以任意使用这项技术,但若要进行相关设备的开发,则需要向倍福公司获取相关授权。②快速性相比传统现场总线,EtherCAT的数据传输速率有了极大的提升,可选10Mbit/s或100Mbit/s,甚至依托补充

tianya_xuan的博客 3543

使用Simulink进行四足机器人的非线性动力学建模与仿真

四足机器人的运动包含多个自由度(DOF),包括腿部的摆动和支撑阶段的动力学特性。由于存在接触力、摩擦以及不同地形的影响,四足机器人的动力学行为呈现出高度的非线性特征。因此,构建准确的非线性动力学模型对于研究机器人的运动学和动力学特性至关重要。定义代表机器人状态的变量,如位置、速度、角度和角速度。matlab深色版本通过本指南,我们介绍了如何基于Simulink搭建一个四足机器人的非线性动力学模型,并进行了详细分析。

xiaoheshang_123的博客 311

简单的java扑克洗牌程序_Collections.shuffle() 洗牌方法 应用于简易发扑克牌程序

Java中 Collections.shuffle()顾名思义,shuffle是洗牌的意思,所以这个方法的作用是将list中的循序打乱,参数放入List函数源代码一个简单的例子:@Testprivate void test1(){ArrayList num=new ArrayList();num.add("A");num.add("2");num.add("3");num.add("4");num...

weixin_39557583的博客 320

无人船 | 基于ROS的轻量级多无人艇自主导航仿真框架

无人水面艇USV是海上自主无人系统的关键组成部分,在民用、军用领域应用广泛,例如海上救援、水质测量、扫雷反潜等,因此对USV导航算法的研究具有重要意义。为了便于进行USV相关算法的验证与部署,本文介绍的这套基于ROS的多无人艇的自主导航仿真平台,轻量化地实现了建图、规划、控制等多种功能,同时自研框架保证了功能的高度可拓展和可定制

FRIGIDWINTER的博客 7995

java实现洗牌功能_java和js实现的洗牌小程序

这几天刚学了java和javascript,简单写了个用java和javascript的小程序JavaScript的// An highlighted blockvar colors = ['红桃','梅花','方片','黑桃']var numbers = ['2','3','4','5','6','7','8','9','10','J','Q','K','A']var puke = new Ar...

weixin_39716264的博客 102

2024年上半年试题二:论性能测试方法及其应用

2025年1月,我以系统分析师的身份参与了公司OA系统的开发与建设。该系统包含的功能有打卡签到、公文流转、工资查询等。我们吸取了之前由于系统使用人数激增暴露出的短时间卡顿等问题,所以在本次开发中,我们非常重视系统的性能测试。通过自动化的测试工具模拟多种正常、峰值及异常负载条件对系统的各项性能指标进行测试。性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样,常见的负载测试和压力测试都属于性能测试。

银帅 548

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java 清除发牌_简单java发牌洗牌小程序

```创建扑克牌类输入代码:package play.card;public class Card {public String num;public String suit;public Card(String num,String suit) {this.num = num;this.suit = suit;}public Card() {super();}@Overridepublic St...

weixin_34019786的博客 93

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

斗地主之洗牌(shuffle)程序的测试程序

在博文http://coolshell.cn/articles/8593.html中, 皓哥已经详细讨论了各种shuffle程序, 并给出了测试的结果, 但博文中没有提供测试代码。 其实, 测试代码也很简单, 在本文中, 我来写一下测试代码。 在之前的博文http://blog.youkuaiyun.com/stpeace/article/details/46583277中, 我已经

认知 行动 坚持 8580

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java发牌程不重複_简单java发牌洗牌小程序

创建扑克牌类输入代码:package play.card; 公共类Card { public String num; 公共字符串; public card(String num,String suit){ this.num = num; 这件衣服=套装; }public Card(){ 超();}@Override public String toString(){ String str = su...

weixin_39638859的博客 82

Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.3 洗牌与抽牌

总项目目标:设计一个简单的纸牌游戏程序,称为"Higher or Lower"(高还是低)。游戏中,玩家需要猜测接下来的一张牌是比当前牌高还是低。根据猜测的准确性,玩家可以得到或失去相应的积分。 使用嵌套的循环结构生成一副完整的牌组, 放在列表startingDeckList中。函数对副本进行洗牌操作,打乱牌组顺序。最后,函数返回洗牌后的牌组副本。程序包含了洗牌和抽牌操作,用于模拟一副牌的洗牌和抽取过程。方法从牌组中移除并返回第一张牌,即列表的最后一个元素。函数接受一个牌组列表作为参数,首先使用。

xpala的博客 395

扑克牌洗牌代码

import java.util.ArrayList; import java.util.List; import java.util.Random; public class Poker { public static void main(String[] args) { //随机数 Random random= new Random(); String []cards =

qq_21344887的博客 979

java编程洗牌过程_今天终于完成了洗牌程序.不过可能有点乱!

import java.applet.*;import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;public class puke extends JApplet{JFrame f=new JFrame();Container y=getContentPane();JButton wash...

weixin_39901558的博客 95
下一篇: datatables隐藏列设置及获取隐藏列的值
哥就是瘦
博客等级 码龄10年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值