Java程序斗地主发牌代码,List、Map集合的应用
Java集合存储的灵活运用
List集合存储 54个编号
Map <key,value> key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如 黑桃2
用2个数组 存放 花色+ 13张牌
将牌的信息 存入到 list和map
发牌了… (需要打乱顺序)
看一下 自己是什么牌 (看牌)
代码如下
package DouDiZhu;
import java.util.*;
public class DouDiZhuDemo {
public static void main(String[] args) {
//存放编号
List<Integer> list=new ArrayList<>();
//保存牌的信息
Map<Integer,String> map=new HashMap<>();
//存放4中花色
String []color={"♥","♠","♦","♣"};
//存放13张牌
String [] number={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//记录 54张牌 从0-53
Integer Zongpai=0;
//存储牌信息到上面两个集合
for(String num:number){
for(String col:color){
map.put(Zongpai,col+num);
list.add(Zongpai);
Zongpai++;
}
}
//给54张牌添加大小王
map.put(52,"大王");
map.put(53,"小王");
list.add(52);
list.add(53);
//发牌之前打乱牌的顺序
Collections.shuffle(list); //打乱0-53
//发牌准备人数和底牌(3人,底牌3张)
List<Integer> p1=new ArrayList<>();//第一个人
List<Integer> p2=new ArrayList<>();//第二个人
List<Integer> p3=new ArrayList<>();//第三个人
List<Integer> dipai=new ArrayList<>();//三张底牌
//开始发牌了
for (int i = 0;i<list.size() ; i++) {
//先把三张底牌拿出来
if (i<3){
dipai.add(list.get(i));
}//现在剩余51张牌了
else if(i%3==0){
p1.add(list.get(i));
}else if(i%3==1){
p2.add(list.get(i));
}else {
p3.add(list.get(i));
}
}
//将自己的牌排序
Collections.sort(p1);
Collections.sort(p2);
Collections.sort(p3);
Collections.sort(dipai);
//看牌 (有3个人名 . 每个人都可以看自己的集合数据)
// 需要3个数据 , 姓名+p1/p2/p3+map
show("夏飞飞",p1,map);
show("吕登登",p2,map);
show("马总",p3,map);
}
private static void show(String name, List<Integer> list, Map<Integer, String> map) {
//首先看到的名字
System.out.println(name+" ");
for(Integer in:list){
String value = map.get(in);
System.out.print(value+" ");
}
System.out.println();
}
}
Java程序斗地主发牌代码,List、Map集合的应用的更多相关文章
- Android(java)学习笔记102:Map集合功能概述
下面通过代码引入Map集合:如下 package cn.itcast_01; import java.util.HashMap; import java.util.Map; /* * 作为学生来说,是 ...
- Android(java)学习笔记41:Map集合功能概述
1. 下面通过代码引入Map集合: 如下 package cn.itcast_01; import java.util.HashMap; import java.util.Map; /* * 作为学生 ...
- Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)
import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...
- java 模拟斗地主发牌洗牌
一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...
- java学习第18天(map集合)
Map集合是将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 存储的是键值对形式的元素,键唯一,值可以重复,有点类似于数据库中的主键加数据.主要功能有: A:添加功能 put ...
- Android(java)学习笔记105:Map集合的遍历之键值对对象找键和值
package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map ...
- Android(java)学习笔记104:Map集合的遍历之键找值
package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map ...
- Android(java)学习笔记103:Map集合的获取功能
package cn.itcast_01; import java.util.Collection; import java.util.HashMap; import java.util.Map; i ...
- Java程序国际化学习代码一
Java程序国际化初识 1.基本思路 Java程序的国际化的思路是将程序中的标签.提示等信息放在资源文件中,程序需要支持哪些国家.语言环境,就对应提供相应的资源文件.资源文件是key-value对,每 ...
随机推荐
- 使用docker创建mysql容器
1.拉取mysql容器 docker pull mysql:5.7
- Java工具类——日期相关的类
前言 在日常的开发工作当中,我们经常需要用到日期相关的类(包括日期类已经处理日期的类),所以,我就专门整理了一篇关于日期相关的类,希望可以帮助到大家. 正文 一.日期类介绍 在 Java 里面,操作日 ...
- java.math.BigDecimal cannot be cast to [Ljava.lang.Object;
从数据库中使用sum函数取出统计值后,放进list中,遍历list的时候强转化成Object是报错. BigDecimal .Integer不是基本类型,是int的包装类,无法把包装当做基本类型来用. ...
- Centos7 上安装FastDFS
Centos7 上安装 FastDFS 本文章摘抄于 风止鱼歇 博客地址:https://www.cnblogs.com/yufeng218/p/8111961.html 1.安装gcc(编译时需要 ...
- tkinter的控件
包含如下控件: Button 按钮控件 Canvas 画布控件,显示图形元素如线程或文本 Checkbutton 多选框控件,用于在程序中提供多项选择框 Entry 单行输入控件,用于显示简单的文本 ...
- [NLP] REFORMER: THE EFFICIENT TRANSFORMER
1.现状 (1) 模型层数加深 (2) 模型参数量变大 (3) 难以训练 (4) 难以fine-tune 2. 单层参数量和占用内存分析 层 参数设置 参数量与占用内存 1 layer 0.5Bill ...
- js小案例(排他案例)
描述:点击哪个,哪个就变蓝色,其余的都是粉色 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- springboot集成springDataJpa
1.引用依赖 <!--spring-data-jpa--> <dependency> <groupId>org.springframework.boot</g ...
- redis.cluster/memcached.cluster/wmware esxi
1. 安装配置redis的cluster 集群 redis 集群高可用 实验环境 192.168.198.131 openvpn-server #42-Ubuntu SMP Mon Jun 8 14: ...
- CSS中link和@import的使用区别
我们都知道在html中引入外部的CSS 有2种方式,link标签和@import,他们又什么区别呢? 1.从属关系区别@import是 CSS 提供的语法规则,只有导入样式表的作用:link是HTML ...