zoukankan      html  css  js  c++  java
  • 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();
    }

    }

  • 相关阅读:
    树状数组
    线段树
    最短路(FLOYD)
    欧拉函数
    筛素数
    并查集
    背包方案数问题(礼物)
    [BeijingWc2008]雷涛的小猫
    受欢迎的牛[HAOI2006]
    删除物品[JLOI2013]
  • 原文地址:https://www.cnblogs.com/pikaqui/p/13368016.html
Copyright © 2011-2022 走看看