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集合的应用的更多相关文章

  1. Android(java)学习笔记102:Map集合功能概述

    下面通过代码引入Map集合:如下 package cn.itcast_01; import java.util.HashMap; import java.util.Map; /* * 作为学生来说,是 ...

  2. Android(java)学习笔记41:Map集合功能概述

    1. 下面通过代码引入Map集合: 如下 package cn.itcast_01; import java.util.HashMap; import java.util.Map; /* * 作为学生 ...

  3. Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)

    import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...

  4. java 模拟斗地主发牌洗牌

    一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...

  5. java学习第18天(map集合)

    Map集合是将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 存储的是键值对形式的元素,键唯一,值可以重复,有点类似于数据库中的主键加数据.主要功能有: A:添加功能 put ...

  6. Android(java)学习笔记105:Map集合的遍历之键值对对象找键和值

    package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map ...

  7. Android(java)学习笔记104:Map集合的遍历之键找值

    package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map ...

  8. Android(java)学习笔记103:Map集合的获取功能

    package cn.itcast_01; import java.util.Collection; import java.util.HashMap; import java.util.Map; i ...

  9. Java程序国际化学习代码一

    Java程序国际化初识 1.基本思路 Java程序的国际化的思路是将程序中的标签.提示等信息放在资源文件中,程序需要支持哪些国家.语言环境,就对应提供相应的资源文件.资源文件是key-value对,每 ...

随机推荐

  1. Maven搭建Spring MVC

    Maven搭建SpringMVC 点击Enable Auto Import 下面配置文件 配置两个文件 web.app-->Web-INF--web.xml <!DOCTYPE web-a ...

  2. SpringBoot--使用Mybatis分页插件

    1.导入分页插件包和jpa包 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...

  3. 基于jQuery的打字机函数

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. could not resolve property(无法解析属性)

    could not resolve property(无法解析属性) 顾名思义在写hql语句的时候,属性写错了! 请检查大小写,是实体类的,不是数据库表的! 一个一个检查,仔细看!

  5. (1)RabbitMQ简介与安装

    1.RabbitMQ简介 因为RabbitMQ是基于开源的AMQP协议来实现的,所以在了解MQ时候,首先我们来了解下AMQP协议.AMQP,即Advanced Message Queuing Prot ...

  6. 一.5.序列化应用之服务器制造厂与型号app功能

    1.环境准备: (python36env) [vagrant@CentOS7 apps]$ django-admin startapp manufacturer (1)激活:'manufacturer ...

  7. 部署LNMP环境——Yum安装(113资讯网)

    Yum安装优点:安装东西,方便快捷,特别是不用考虑包依赖 教程(Centos做演示,其他系统大同小异): 1.更换国内Yum源: [root@root xx ]# rm -rf /etc/yum.re ...

  8. 【Oracle】表碎片重用规则

    看完该篇文章你可以了解如下问题:表碎片是如何产生的,这些碎片能否重用? 数据库版本如下: SYS@zkm> select banner from v$version where rownum=1 ...

  9. 阿里云Linux CentOS8.1 64位服务器安装LNMP(Linux+Nginx+MySQL+PHP) 并发调试之Nginx配置

    搭建好LNMP环境之后,接着要考虑的就是整个系统的并发能力了. 一.Nginx的配置 Nginx有很好的并发能力.但是要想使它的并发能力能够施展出来,需要在初步安装好的Nginx上做一些配置.主要需要 ...

  10. a标签绑定点击事件失败

    如图 然后对a标签绑定点击事件  无效 换成span标签可以