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. CSS选择器使用

    今天要对CSS选择器的使用方法做一个全面的总结(几乎全部是从这篇文章摘抄的 https://blog.csdn.net/qq_39241986/article/details/82185697) CS ...

  2. mybatis源码配置文件解析之五:解析mappers标签

    在上篇博客中分析了plugins标签,<mybatis源码配置文件解析之四:解析plugins标签>,了解了其使用方式及背后的原理.现在来分析<mappers>标签. 一.概述 ...

  3. MySQL 字符串索引优化方案

    字符串建立索引的优化 1. 建立前缀索引 假设建立一个支持邮箱登录的用户表,对于邮件字段来说,可以有以下几种建立索引的方式: 直接对整个字符串建立索引 alter table SUser add in ...

  4. 你从来没了解过的CSS浮动

    浮动到底是做什么呢?他们是如何影响相关元素的盒模型的呢?浮动的元素与内联元素有什么不同呢?制定浮动元素的位置的具体规则是什么?clear属性是如何工作的,并且它的作用是什么? 即使是经验丰富的开发者也 ...

  5. 「单调队列优化DP」P2034 选择数字

    「单调队列优化DP」P2034 选择数字 题面描述: 给定一行n个非负整数a[1]..a[n].现在你可以选择其中若干个数,但不能有超过k个连续的数字被选择.你的任务是使得选出的数字的和最大. 输入格 ...

  6. (一)学习了解OrchardCore笔记——开篇:基于asp.net core的OrchardCore

    想深入了解OrchadCore源码许久了,但是读源码的时候遇到很多问题而网上的参考资料太少了(几乎都是OrchadCms不带OrchardCore的),现在解决得差不多了,做下笔记方便自己查看,有错误 ...

  7. HotSpot的类模型(4)

    我们继续接着上一篇 HotSpot的类模型(3)分析,这次主要分析表示java数组的C++类. 4.ArrayKlass类 ArrayKlass继承自Klass,是所有数组类的抽象基类,类及重要属性的 ...

  8. class文件的基本结构及proxy源码分析二

    前文地址:https://www.cnblogs.com/tera/p/13267630.html 本系列文章主要是博主在学习spring aop的过程中了解到其使用了java动态代理,本着究根问底的 ...

  9. python numpy indexerror: too many indices for array

    import numpy as np #data 原来数组 #arr_1 新数组 #将data的第一列赋值给arr_1的第一列 arr_1 = np.array((data.shape[0],5)) ...

  10. 【IDEA】创建maven项目,webapp没有被标识,无法识别

    问题描述 新建maven项目模块后,webapp目录未被标识,也就是没有小蓝点的图标显示. 解决方法 点击"File"下的"Project Strucure", ...