Java模拟斗地主发牌和洗牌
- package cn.itcast_04;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.TreeSet;
- /*
- * 思路:
- * A:创建一个HashMap集合
- * B:创建一个ArrayList集合
- * C:创建花色数组和点数数组
- * D:从0开始往HashMap里面存储编号,并存储对应的牌
- * 同时往ArrayList里面存储编号即可。
- * E:洗牌(洗的是编号)
- * F:发牌(发的也是编号,为了保证编号是排序的,就创建TreeSet集合接收)
- * G:看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
- */
- public class PokerDemo {
- public static void main(String[] args) {
- // 创建一个HashMap集合
- HashMap<Integer, String> hm = new HashMap<Integer, String>();
- // 创建一个ArrayList集合
- ArrayList<Integer> array = new ArrayList<Integer>();
- // 创建花色数组和点数数组
- // 定义一个花色数组
- String[] colors = { "♠", "♥", "♣", "♦" };
- // 定义一个点数数组
- String[] numbers = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",
- "K", "A", "2", };
- // 从0开始往HashMap里面存储编号,并存储对应的牌,同时往ArrayList里面存储编号即可。
- int index = 0;
- for (String number : numbers) {
- for (String color : colors) {
- String poker = color.concat(number);
- hm.put(index, poker);
- array.add(index);
- index++;
- }
- }
- hm.put(index, "小王");
- array.add(index);
- index++;
- hm.put(index, "大王");
- array.add(index);
- // 洗牌(洗的是编号)
- Collections.shuffle(array);
- // 发牌(发的也是编号,为了保证编号是排序的,就创建TreeSet集合接收)
- TreeSet<Integer> fengQingYang = new TreeSet<Integer>();
- TreeSet<Integer> linQingXia = new TreeSet<Integer>();
- TreeSet<Integer> liuYi = new TreeSet<Integer>();
- TreeSet<Integer> diPai = new TreeSet<Integer>();
- for (int x = 0; x < array.size(); x++) {
- if (x >= array.size() - 3) {
- diPai.add(array.get(x));
- } else if (x % 3 == 0) {
- fengQingYang.add(array.get(x));
- } else if (x % 3 == 1) {
- linQingXia.add(array.get(x));
- } else if (x % 3 == 2) {
- liuYi.add(array.get(x));
- }
- }
- // 看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
- lookPoker("风清扬", fengQingYang, hm);
- lookPoker("林青霞", linQingXia, hm);
- lookPoker("刘意", liuYi, hm);
- lookPoker("底牌", diPai, hm);
- }
- // 写看牌的功能
- public static void lookPoker(String name, TreeSet<Integer> ts,
- HashMap<Integer, String> hm) {
- System.out.print(name + "的牌是:");
- for (Integer key : ts) {
- String value = hm.get(key);
- System.out.print(value + " ");
- }
- System.out.println();
- }
- }
Java模拟斗地主发牌和洗牌的更多相关文章
- java 模拟斗地主发牌洗牌
		一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ... 
- java模拟斗地主发牌看牌
		import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; public class Dou ... 
- java集合--模拟斗地主发牌洗牌
		import java.util.*; /** * @Date: 2020/6/17 19:53 */public class Test04 { public static void main(Str ... 
- java斗地主扑克 扑克牌 洗牌 发牌 Collection 集合练习
		package com.swift.poker; import java.util.ArrayList; import java.util.Collections; /*训练考核知识点:Collect ... 
- 实现斗地主纸牌游戏---洗牌 发牌 看底牌的具体功能------Map集合存储方法 遍历的应用
		该Demo只是斗地主的游戏的一部分,实现的斗地主的组合牌 洗牌 发牌 看牌的功能,主要应用Map集合进行练习 package cn.lijun import java.util.ArrayList ... 
- Java模拟斗地主(实现大小排序)
		import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Li ... 
- Java实现斗地主发牌(Collections工具类的应用)
		package com.doudou_01; import java.util.ArrayList; import java.util.Collections; import java.util.Li ... 
- Java    模拟斗地主
		模拟斗地主 public class M1 { public static void main(String args[]) { DouDiZhu02(); } private static void ... 
- Java程序斗地主发牌代码,List、Map集合的应用
		Java集合存储的灵活运用List集合存储 54个编号 Map <key,value> key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如 黑桃2 用2 ... 
随机推荐
- shell速查
			Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,常见的脚本解释器有: bash:是Linux标准默认的shell.bash由Brian Fox和Chet Ramey共同完成,是Bourn ... 
- “天龙八步”细说浏览器输入URL后发生了什么
			本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ... 
- ----关于统计字符出现次数的JS循环以及indesxOf函数----
			以下将会通过JS循环判断字符“banana”出现次数 以及调用indexOf中的函数来实现统计 <!DOCTYPE html> <html> <body> &l ... 
- BSOJ3760||洛谷P1453 城市环路 题解
			城市环路 Description 一座城市,往往会被人们划分为几个区域,例如住宅区.商业区.工业区等等.B市就被分为了以下的两个区域——城市中心和城市郊区.在着这两个区域的中间是一条围绕B市的环路,环 ... 
- 20175316 盛茂淞 Arrays和String单元测试
			Arrays和String单元测试 具体描述: 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 String类 charAt split Arr ... 
- PHP中逻辑运算符的高效用法---&&和||
			偶尔遇到这个,查了一下,所以就摘录了. 逻辑运算符无非是将值进行逻辑运算.还有其它用法吗?首先让我们先看一下下面的代码,然后我们再一起展开话题.提前给出结论就是(&&)or(||)”这 ... 
- Toggle组件切换开关,控制开关图片显示与隐藏
			UGUI_Image 组件简单笔记 Rect Transform:用于控制 UI 物体的基本属性 Image 基本使用 1.Image 组件是用于显示图片资源的.使用方式有两种:1.显示纯粹的颜色:2 ... 
- pt-query-digest  使用说明
			pt-query-digest --user=anemometer --password=123456 --socket=/tmp/mysql.sock --port=43306 --review h ... 
- HTTP二、HTTP请求处理过程的七个步骤
			HTTP02 HTTP请求处理过程的七个步骤 1.web服务处理步骤 web服务的处理过程可总结为七个步骤: 1)发起请求:客户端向服务器端发起连接请求,建立”三次握手“: 2)接收请 ... 
- 计算机网络六:无线局域网、IEEE 802.11、WIFI和蓝牙
			无线局域网.IEEE 802.11.WIFI和蓝牙 ㈠无线局域网 1.定义 无线局域网络(Wireless Local Area Networks),简称WLAN.它是相当便利的数据传输系 ... 
