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 ...
随机推荐
- 管程(Monitor)概念及Java的实现原理
互斥 互斥访问是并发编程要解决的核心问题之一. 有许多种方法可以满足临界区的互斥访问.大体上可以分为三种, 一种是软件方法,即由用户程序承担互斥访问的责任,而不需要依赖编程语言或操作系统,譬如Dekk ...
- 深入理解JVM(③)——之HotSpot虚拟机对象探秘
前言 上篇文章介绍了Java虚拟机的运行时数据区域,大致明白了Java虚拟机内存模型的概况,下面就基于实用优先的原则,以最常用的虚拟机HotSpot和最常用的内存区域Java堆为例,升入探讨一下Hot ...
- 【大厂面试02期】Redis过期key是怎么样清理的?
PS:本文已收录到1.1K Star数开源学习指南--<大厂面试指北>,如果想要了解更多大厂面试相关的内容,了解更多可以看 http://notfound9.github.io/inter ...
- (Java实现) 洛谷 P1051 谁拿了最多奖学金
题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上 ...
- Java实现 LeetCode 153 寻找旋转排序数组中的最小值
153. 寻找旋转排序数组中的最小值 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 请找出其中 ...
- Java实现 蓝桥杯VIP 算法提高 不同单词个数统计
算法提高 不同单词个数统计 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数.例如:对于句子"one little t ...
- java代码(3)----guava复写Object常用方法
guava复写Object常用方法 Guava是一个Google的基于java1.6的类库集合的扩展项目,这个库提供用于集合,缓存,支持原语,并发性,字符串处理,I/O和验证的实用方法, 这些高质量的 ...
- JDBC连接泄露问题的排查过程总结
当前使用的Spring JDBC版本是5.0.0.RC1,HikariCP版本是3.1.0. 今天测试同学反馈在前端页面点击次数多了,就报500错误,数据显示不出来.于是我在后台服务日志中观察发现Hi ...
- 一个static和面试官扯了一个小时,舌战加强版
一:背景 1. 讲故事 最近也是奇怪,在社区里看到好几篇文章聊static 的玩法以及怎么拿这个和面试官扯半个小时,有点意思,点进去看都是java版的,这就没意思了,怎么也得有一篇和面试官扯C# 中的 ...
- pytorch入门2.2构建回归模型初体验(开始训练)
pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...