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 ...
随机推荐
- java反射调用dubbo接口
需求:项目增加幂等 场景:1.三个项目:a .b.c2.a项目加幂等3.b项目dubbo调用项目a的时候超时没有获取返回结果,增加重试机制(非立即重试,3min or 5min 后重试)4.c项目是一 ...
- python爬虫知识脉络
- 安卓学习第一节--环境搭建及Android Studio 安装
1.安装JDK 2.安装AS 安装参考网址 https://www.cnblogs.com/xiadewang/p/7820377.html 下载网址: http://www.android-stud ...
- JS Object.defineProperties()方法
JS Object.defineProperties()方法 描述: Object.defineProperties()方法为目标对象同时配置多个属性. 语法: Object.defineProper ...
- 第二阶段第六次spring会议
昨天我将对初始页面进行加工和修改. 我用两个小动物作为按钮分别进入动物便签界面和植物便签界面,可以让用户自由选择. 今天我将尝试对软件进行添加搜索引擎的界面. private void linkLab ...
- Jackson注解简介
1.注解: @JsonInclude(JsonInclude.Include.NON_NULL) 1.如果放在属性上,如果该属性为NULL则不参与序列化 ;2.如果放在类上,那对这个类的全部属性起作用 ...
- [C#.net]获取文本文件的编码,自动区分GB2312和UTF8
昨天生产突然反馈上传的结果查询出现了乱码,我赶紧打开后台数据库,发现果真有数据变成了乱码.这个上传程序都运行3个多月了,从未发生乱码现象,查看程序的运行日志,发现日志里的中文都变成了乱码,然后对比之前 ...
- Appium+Python自动化 1 环境搭建(适用windows系统-Android移动端自动化)
一.安装并配置 java jdk ①下载 java jdk后 安装,安装完成后,配置环境变量 打开计算机->系统属性->高级系统设置->环境变量->新建(系统变量),如图所示: ...
- 检查SQL Server被哪个进程占用,且杀进程。
-----检查DB的名字---------------------------------------DECLARE @dbName varchar(50)SET @dbName='RegisterO ...
- 【微信小程序】模仿58同城页面制作以及动态数据加载
完成动态数据的加载,如下 使用上班的空余时间慢慢的学习,相信总有一天我会很熟悉的掌握这门技术. 本次学习小总结: 微信小程序使用的代码基本与HTML.CSS.JS等前段有关知识一样. 微信小程序js使 ...