java集合--模拟斗地主发牌洗牌
import java.util.*; /**
* @Date: 2020/6/17 19:53
*/
public class Test04 {
public static void main(String[] args) {
// 请编写斗地主洗牌发牌程序
HashMap<Integer, String> pk = new HashMap<>();//存整副牌
ArrayList<String> num = new ArrayList<>();//牌面
ArrayList<String> color = new ArrayList<>();//存花色
Collections.addAll(num, "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3");
Collections.addAll(color, "♠", "♥", "♣", "♦");
int id = 0;//给牌大到小编号
pk.put(id++, "大");
pk.put(id++, "小");
//将牌面和花色拼接一起加入整副牌中
for (int i = 0; i < num.size(); i++) {
for (int j = 0; j < color.size(); j++) {
pk.put(id++, color.get(j) + num.get(i));
}
}
//将排序编号提取出来便于打乱顺序
ArrayList<Integer> list = new ArrayList<>();
Set<Integer> i = pk.keySet();
for (Integer integer : i) {
list.add(integer);
}
Collections.shuffle(list);//洗牌
TreeSet<Integer> play1 = new TreeSet<>();//玩家一
TreeSet<Integer> play2 = new TreeSet<>();//玩家二
TreeSet<Integer> play3 = new TreeSet<>();//玩家三
TreeSet<Integer> dipai = new TreeSet<>();//底牌
//发牌
for (int a = 0; a < list.size(); a++) {
if (a >= 51) {
dipai.add(list.get(a));
} else if (a % 3 == 0) {
play1.add(list.get(a));
} else if (a % 3 == 1) {
play2.add(list.get(a));
} else {
play3.add(list.get(a));
}
}
heq("玩家一:", play1, pk);
heq("玩家二:", play2, pk);
heq("玩家三:", play3, pk);
heq("底牌:", dipai, pk);
}
private static void heq(String p, TreeSet<Integer> play, HashMap<Integer, String> pk) {
System.out.print(p + "\t");
for (Integer index : play) {
String s = pk.get(index);
System.out.print(s + "\t");
}
System.out.println();
}
}
玩家一: ♥2 ♣2 ♣A ♥K ♦K ♥Q ♠J ♥J ♦J ♥10 ♠9 ♥8 ♦8 ♠7 ♣7 ♠5 ♣5
玩家二: ♠2 ♦2 ♠K ♠Q ♣J ♣10 ♦10 ♣9 ♦9 ♠6 ♦6 ♥5 ♠4 ♥4 ♦4 ♠3 ♣3
玩家三: 大 小 ♠A ♥A ♦A ♣K ♣Q ♦Q ♥9 ♠8 ♣8 ♦7 ♥6 ♣6 ♦5 ♣4 ♦3
底牌: ♠10 ♥7 ♥3
java集合--模拟斗地主发牌洗牌的更多相关文章
- java 模拟斗地主发牌洗牌
一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...
- Java学习笔记34(集合框架八:综合案例:模拟斗地主的洗牌发牌)
规则: 1.54张扑克牌,有花色 2.顺序打乱,一人一张依次发牌,一人17张,留三张作为底牌 3.看牌:按大小王2A....43的序排列打印 示例: package demo; import java ...
- java模拟斗地主发牌看牌
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; public class Dou ...
- Java模拟斗地主发牌和洗牌
package cn.itcast_04; import java.util.ArrayList; import java.util.Collections; import java.util.Has ...
- Java用集合实现斗地主发牌
本文以java双列集合HashMap为核心实现发牌操作: 思路: 1.准备牌:创建一个Map集合,存储牌的索引和组装好的牌 创建一个lis ...
- JAVA代码之斗地主发牌
理解很好理解,关键是思路 按照斗地主的规则,完成洗牌发牌的动作: 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. ...
- php 模拟斗地主发牌简单易懂
闲来无聊,就写了这个方法,也算是熟悉下php的数组操作,还请各位大神多指教.$arr 数组,好像有点问题,应该 2=>'方片2',3=>'梅花2',4=>'红心2',5=>'黑 ...
- 用java集合模拟登录和注册功能
package com.linkage.login; import java.util.HashMap;import java.util.Iterator;import java.util.Map;i ...
- java list随机截取(洗牌)
public void solution(){ List<Integer> givenList = Arrays.asList(1, 2, 3,4,5,6); Collections.sh ...
随机推荐
- ATT&CK如何落地到安全产品
科普:ATT&CK是什么 ATT&CK的提出是为了解决业界对黑客行为.事件的描述不一致.不直观的问题,换句话说它解决了描述黑客行为 (TTP) 的语言和词库,将描述黑客攻击的语言统一化 ...
- 【项目】关于TeenCode第二代评测机的技术分析
晚上睡不着觉,仔细研读了洛谷的第四代评测机技术分析后,突然发现自己写的TeenCode评测机竟然有这么多地方可以改进,这不得不让我诞生了实现第二代TeenCode评测机的想法.[第一代评测机挺可怜的, ...
- Java 第十一届 蓝桥杯 省模拟赛十六进制转换成十进制
问题描述 请问十六进制数1949对应的十进制数是多少?请特别注意给定的是十六进制,求的是十进制. 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这 ...
- StringBuilder的线程为什么不安全
StringBuffer和StringBuilder的区别在哪里? StringBuffer是线程安全的,StringBuilder是线程不安全的. 那么StringBuilder不安全在哪里?在想这 ...
- 一个Jmeter模拟上传文件接口的实例
资料参考:https://blog.csdn.net/u010390063/article/details/78329373 项目中,避免不了要用到很多上传文件.图片的接口,那么碰到这类接口该如何进行 ...
- ant构建Jmeter脚本的build文件配置(build.xml)
使用此构建文件可自动发送邮件 代码如下: <?xml version="1.0" encoding="UTF8"?> <project na ...
- tensorflow2.0学习笔记第二章第三节
2.3激活函数sigmoid函数 f(x)= 1/(1 + e^-x)tf.nn.sigmoid(x)特点:(1)求导后的数值在0-0.25之间,链式相乘之后容易使得值趋近于0,形成梯度消失 (2)输 ...
- centos7 和centos6 服务操作命令对比
以httpd为例子: 指令名称 centos 6 centos 7 启动服务 service httpd start systemctl start httpd.service 关闭服务 servic ...
- Nice Jquery Validator 常用规则整理
一些简单规则 numeric: [/^[0-9]*$/, '请填写数值'], money: [/^(?:0|[1-9]\d*)(?:\.\d{1,2})?$/, "请填写有效的金额" ...
- 【分区】使用 GPT 分区表分区并格式化 (非 FreeBSD 系统)
新购买的 Linux 云服务器,由于数据盘未做分区和格式化,无法使用. 注意: 数据盘中的数据在格式化后将全部被清空.请在格式化之前,确保数据盘中没有数据或已对重要数据进行备份.为避免服务发生异常,格 ...