JAVA集合练习:斗地主发牌

利用集合简单实现斗地主发牌和洗牌   如何利用集合简单实现斗地主发牌和洗牌 目录   如何利用集合简单实现斗地主发牌和洗牌   1、利用ArrayList简单模拟斗地主的洗牌与发牌 代码如下 2、利用HashMap等模拟斗地主的洗牌与发牌 改进思路如下: 代码如下 运行结果如下 1、利用ArrayList简单模拟斗地主的洗牌与发牌 代码如下 package porker.demo; impor... 阅读详情

学完集合可以练习一个小题目: 斗地主发牌

package test1;


import java.util.ArrayList;
import java.util.Collections;
//斗地主发牌程式编写
public class TestPoker {
	public static void main(String[] args) {
		//三个玩家,起名
		Player p1 = new Player("RayLu");
		Player p2 = new Player("Bleach");
		Player p3 = new Player("Tom");
		//整副扑克牌对象创建
		Poker poker = new Poker();
		//洗牌
		poker.pokerShuffle();
		//发牌
		for(int i = 0; i < poker.getPoker().size(); i++){
			if( i % 3 == 0){
				p1.getPoker().add(poker.getPoker().get(i));
			}else if( i%3==1){
				p2.getPoker().add(poker.getPoker().get(i));
			}else if(i%3 ==2){
				p3.getPoker().add(poker.getPoker().get(i));
			}
		}
		//发牌完成,遍历每个玩家手中的牌
		for(int i = 0; i < p1.getPoker().size(); i++){
			System.out.println(p1.getName()+"手中第"+(i+1)+"张牌是:"+p1.getPoker().get(i));
		}
		for(int i = 0; i < p2.getPoker().size(); i++){
			System.out.println(p2.getName()+"手中第"+(i+1)+"张牌是:"+p2.getPoker().get(i));
		}
		for(int i = 0; i < p3.getPoker().size(); i++){
			System.out.println(p3.getName()+"手中第"+(i+1)+"张牌是:"+p3.getPoker().get(i));
		}
	}
}




class Poker{
	private String[] pokerColor = new String[]{"红桃","黑桃","方片","梅花"};
	private String[] pokerNum = new String[]{"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
	private ArrayList<String> poker;
	
	public Poker(){
		poker = new ArrayList<String>();
		for(int i =0; i < this.pokerColor.length; i++){
			for (int j = 0; j < this.pokerNum.length; j++){
				String str = pokerColor[i] + pokerNum[j];
				poker.add(str);
			}
		}
		poker.add("大王");
		poker.add("小王");


	}
	//获取整副扑克牌
	public ArrayList<String> getPoker(){
		return poker;
	}
	//重洗扑克牌
	public void pokerShuffle(){
		Collections.shuffle(poker);
	}
}
//斗地主玩家
class Player{
	private String name;//玩家姓名
	private ArrayList<String> poker;//玩家手中的牌


	public ArrayList<String> getPoker() {
		return poker;
	}


	public void setPoker(ArrayList<String> poker) {
		this.poker = poker;
	}


	public String getName() {
		return name;
	}


	public void setName(String name) {
		this.name = name;
	}


	public Player(String name) {
		super();
		this.name = name;
		poker = new ArrayList<String>();
	}


	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		return result;
	}


	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Player other = (Player) obj;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
	
}


java基础--集合案例斗地主发牌排序 package com.henu; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; public class Demo04_斗地主_制牌_洗牌_发牌_有序 { public sta... 阅读详情

相关推荐

揭秘欢乐豆诈骗!Java 如何用集合实现欢乐斗地主发牌+源码解析

斗地主我想大家都会玩吧,今天分享一个 Java集合实现欢乐斗地主发牌教程! 1.什么是集合 2.实现以下斗地主的发牌机制 2.1整体的程序架构 2.2实现发牌的操作 2.2.1先拥有一副牌 洗牌 根据人员的个数 发牌的操作 牌进行整理(排序) 展示自己的牌 3.发牌原理的解析(真实的对战场景) 4.Java集合学习体系 兴趣是学习的老师,当一个人对做一件事产生兴趣时,慢慢地就开始喜欢这件事。编程也是一样的。 ...

大仙 2726

Java实现三人斗地主发牌程序

按照斗地主的规则,完成洗牌发牌的动作。 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。 所用到的知识点为:集合,增强for循环 方法为:add(),get(),shuffle() import java.util.ArrayList; import java.util.Collections; public class Poker { ...

weixin_42223113的博客 1374

Java--通过集合代码来解释斗地主发牌过程

你打过牌吗? 你想知道系统是如何把牌随机的分配给玩家的吗? 今天的代码将介绍(以斗地主为例)系统的发牌系统的·代码内容 接下来,去探寻以下吧!!!!! 一:当你什么都没有时,想打牌时要干什么?(买牌) 牌是由花色和数字和大小王组成 第1:创建两个数组 花色数组 String [] aa = {"♥","♣","♦","♠"}; //为了方便观看用图来代替 数字数组 String [] bb = {"3","4","5","6","7","8","9","10","J","Q","K","A","2

m0_52479012的博客 1351

JavaSE——集合框架二(2/6)-综合案例-斗地主游戏(做牌、洗牌、发牌、排序、看牌)

/每张牌是存在牌值大小的@Override//首先必须有一副牌//1.做出54张牌,存入到集合allCards//a.所有牌的点数//b.所有牌的花色//表示每张牌的牌值大小//c.遍历点数,再遍历花色,组织牌size++;//得到一张牌//存入牌库//单独存入大小王//小王//大王。

li13437542099的博客 441

简单三人扑克牌发牌代码(主要是思路)

简单三人扑克牌发牌代码(主要是思路)说明:自己想法,不一定完美,但思路差不多,希望能帮到大家

Java实现的发牌程序

发牌程序 1. 编写程序,项目名和类名均为PokerGame。 2. 实现功能: (1) 共有m幅扑克牌,每幅扑克牌不包括大王和小王共52张牌。 (2) 可能有n个人参与扑克游戏,2<=n<=52。 (3) 程序运行时输入扑克牌幅数m和人数n,然后所有牌分别依次分发给n个人。不能整除时,每个人的牌数可以不同,如3个人1幅牌,则第1个人18张,第2个和第3个人17张牌。 (4) 发牌完成后按花色(顺序为黑桃、红心、草花、方块)和牌面大小输出每个人得到的牌。 例如: 输入扑克牌幅数:1 输入人数:3 输出如下: 第1个人: 黑桃:K 10 5 A 红心:10 3 2 草花:K 10 8 6 3 A 方块:Q J 5 2 第2个人: ....... 第3个人: ...... 3. 实现要求: (1) 使用数组存放发牌情况。 (2) 编写不同方法完成不同功能。 提交:打包为可以执行的JAR文档,其中要包含源程序文件。

Java用集合实现斗地主洗牌发牌

案列分析 准备4种花色牌与13种数值牌循环嵌套为52张牌,加两种特殊牌大王小王牌共54种,再进行洗牌发牌 文章目录一、思路分析二、准备牌1.准备一个集合存放所有牌2.准备两个数组分别存取扑克牌的4种花色和13种数值3.进行嵌套组合形成52张牌加到所有牌中4.把特殊牌(大王,小王)加到所有牌集合中共54张牌三、洗牌1.使用集合的工具类Collections中的方法使用默认随机源对指定列表进行置换四、发牌1.创建4个集合分别存取 玩家1 玩家2 玩家3 地主牌2. 总牌数先取三张放到地主牌中和依次发牌玩家3.

weixin_46235428的博客 2148

java编写的斗地主功能

模拟斗地主功能,有需要研究的可以看一下! 2017-12-22测试完成功能

Java 集合 案例:斗地主

题目要求:通过自制54张扑克牌,发给3人,留下3张底牌,分别显示不同人的手牌与底牌 算法思想: 4种花色,每种13张牌,使用for嵌套循环,产生52张牌再加入大小王 创建牌与花色: String[] hs = {"♠", "♥", "♣", "♦"}; String[] number = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"}; 为了方便表示与操作每一张牌,可以用1--54的数字代替54种牌,通过此思

ljk的博客 615

5个IO口驱动188数码管:查理复用算法在TM52F1363上的极致应用

本文深入解析了如何利用查理复用算法,在TM52F1363单片机上仅用5个IO口驱动188数码管。通过精密的硬件连接与软件时序控制,结合高阻态和动态扫描策略,实现了在极致资源限制下的稳定显示,为成本敏感型嵌入式产品提供了高效的IO复用解决方案。

numpy6sculptor的博客 476

【5G演进】4G到5G演进之网络架构与协议栈

4G到5G演进之网络架构与协议栈

Learning makes me happy (0^◇^0) 5528

Java实现模拟斗地主洗牌、发牌、看牌并排序

1、模拟斗地主洗牌、发牌、看牌 /* * 模拟斗地主洗牌、发牌、看牌*/ package PokerDemo; import java.util.ArrayList; import java.util.Collections; public class Poker { public static void main(String[] args) { //定义牌盒 ArrayList<String> arr=new ArrayList<S

weixin_45734473的博客 3956

Flow Matching03-01:微分方程【微分方程(描述变化规律的方程):包含未知函数和它的导数的方程】【公式解(精确)、数值解(逼近)】

好的,我将从数学角度详细解释Flow Matching,从高中生能理解的基础知识开始,逐步深入到高级概念。

u013250861的博客 218

【java-集合 阶段小结】模拟斗地主洗牌发牌

前两天在家里和妈妈姐姐一起玩了斗地主,玩的时候我妈突然问我“欢乐斗地主是怎么洗牌发牌的?”一下给我问不会了,昨天晚上睡前突然想起来这件事。 1.思路分析 思来想去这个案例的难点就难在洗牌上面,如果使用Random生成随机数来实现乱序,也可以实现这个案例,但是有没有更简便的方法呢。 ...

weixin_42562275的博客 1243

[深入研究4G/5G/6G专题-31]: 5G NR开机流程5.2 - UE Attach流程(Registeration Request/Accept/Complete)

目录前言:前置条件:第1章 5G NR UE attach流程(从UE log的视角看)1.0 NAS消息解析器1.1 消息交互流程1.2 UE Registeration Request消息(AMF->基站->UE)1.3 AMF Registeration Accept消息(AMF->基站->UE)1.4 UE Register complete消息(UE->基站->AMF)第2章 UE Register...............

文火冰糖(王文兵)的博客 7万+

【以太网硬件十二】以太网端口自协商过程解密之二

简述以太网端口自协商的过程

highman110的博客 2486

Java实现斗地主发牌的两种方法(集合)

斗地主规则为使用 54 张牌打乱顺序,3 个玩家参与游戏,3 人交替摸牌,每人 17 张牌,后 3 张留作底牌。 实现思路: 1.准备牌 2.洗牌 3.发牌 4.排序 5.看牌 第一种方法:以java双列集合HashMap为核心实现发牌 代码如下: public static void main(String[] args) { //准备牌堆创建map集合,存放牌 Map<Integer,String> pai=new HashMap<>();

weixin_43898051的博客 2269

【26美赛C题】Data With The Stars第三问[影响因素分析模型]思路与代码

本文针对2026美赛C题《Dancing with the Stars》第二问,提出了一套系统的影响因素分析框架。通过多元回归模型和固定效应模型,量化分析了明星特征(年龄、职业等)、舞者搭档和比赛周次对评分的影响,发现评委与观众偏好存在差异。研究采用方差分解评估舞者效应占比,通过最优年龄分析和交互效应检验揭示非线性关系。最后运用差异性检验和结构方程模型(SEM)比较评委与观众偏好,为比赛结果预测和选手优化提供量化依据。该分析框架可系统揭示比赛成绩的关键驱动因素。

一键难忘的博客 756

斗地主练习(按照斗地主的规则,完成洗牌发牌的动作。)

按照斗地主的规则,完成洗牌发牌的动作。 具体规则: 使用54张牌; 打乱顺序; 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌; public class Test { public static void main(String[] args){ //全部的牌 ArrayList all=new ArrayList(); //玩家1的牌 ArrayList peopl...

么古的博客 3910

基于YOLOv13+CBAM注意力机制

本教程详细介绍了CBAM注意力机制的原理及其在YOLOv13中的集成方法。CBAM通过通道注意力和空间注意力两个模块,动态调整特征权重以增强模型性能。通道模块利用池化操作和共享MLP生成通道权重,空间模块则通过池化和卷积生成空间权重。教程提供了在YOLOv13中实现CBAM的具体步骤,包括模块代码定义、模型配置修改等关键环节,帮助开发者在目标检测任务中提升模型表现。

FJN110的博客 305

寄存器与计数器设计(Verilog)

always @(posedge Reset or posedge Clock)//请在括号中补充敏感信号列表。always @(negedge Resetn , posedge Clock)//请在括号中补充敏感信号列表。always @(negedge Resetn,posedge Clock)//请在括号中补充敏感信号列表。//为了便于自动评测,请勿更改n的值。//为了便于自动评测,请勿更改n的值。//为了便于自动评测,请勿更改n的值。//为了便于自动评测,请勿更改n的值。

M_inherit的博客 360

Java--实现简单的斗地主的发牌(集合ArrayList练习)

Java–实现简单的斗地主的发牌(集合ArrayList练习) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型...

归子莫的博客 655

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java 模拟斗地主发牌过程

Java模拟斗地主扑克牌游戏中的发牌和看牌过程,旨在加深对集合的理解和熟练对集合的应用。

Jacks丶的博客 819

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java集合模拟斗地主洗牌和发牌

使用Java集合模拟斗地主洗牌发牌 分析: 一共要实现四个步骤: 1.获得一副新牌 一副新牌包含三个属性: 花色:黑桃,红桃,梅花,方块(♠,♥,♣,♦) 点数:A,2,3,4,5,6,7,8,9,10,J,Q,K 王牌:小王、大王 2.洗牌 新牌是按照从小到大排好的,为保证游戏公平,所以要把牌的顺序洗乱 3.发牌 把洗好的牌分到玩家守正,并留下三张作为底牌 三位玩家:叶凡...

dai_ma_dong的博客 479

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java小练习——斗地主发牌

Java小练习——斗地主发牌 这是自己在java学习中做的一个小练习,其中存在的问题欢迎大家批评指正。 使用面向对象思维模拟斗地主洗牌发牌的过程(熟悉list集合的使用)。下面主要介绍其中的一些方法,如果需要源码的话,可以自己去网盘下,提取码:v3cz。 初始化卡牌数组 创建54张牌的Card对象,放入list集合中。 private String[] f = { "♠", "♣", "♥", "♦" }; // private String[] f = { "黑桃", "梅花", "红心", "方块

weixin_45877744的博客 427

java集合框架的练习之斗地主洗牌发牌的模拟(初级版)

Collections是java.util下的类,它包含有各种有关集合操作的静态方法。集中,Collections.shuffle()可使集合所存内容随机置换. 要求:借用集合模拟斗地主洗牌和发牌,牌没有排序

striner的博客 1254
上一篇: 使用不同方法查找数组中某个特定值,并计算时间(改正二分法查找错误和数组转化集合错误)
下一篇: Linux下安装JDK1.7
路路的小豆
博客等级 码龄10年 1763粉丝 99原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值