Java实现斗地主发牌功能

实现思路:

  1.   List集合存储 54个编号
  2.   Map <key,value>  key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如  黑桃2
  3.   用2个数组 存放 花色+ 13张牌
  4.   将牌的信息 存入到 list和map
  5.   发牌了...  (需要打乱顺序)
  6.   看一下 自己是什么牌 (看牌)

实现代码:

public static void main(String[] args) {
        //新建一个集合存除54个编号
        List<String> list = new ArrayList<>();
        //新建一个map集合存储扑克牌信息
        List<String> colors = new ArrayList<>();
        colors.add("♥");
        colors.add("♠");
        colors.add("♦");
        colors.add("♣");

        List<String> numbers = new ArrayList<>();
        numbers.add("A");
        numbers.add("2");
        numbers.add("3");
        numbers.add("4");
        numbers.add("5");
        numbers.add("6");
        numbers.add("7");
        numbers.add("8");
        numbers.add("9");
        numbers.add("10");
        numbers.add("J");
        numbers.add("Q");
        numbers.add("K");
        int index = 0;
        for(String num : numbers){
            for (String col : colors){
               list.add(num+col);
            }
        }
        list.add("大王");
        list.add("小王");
        Collections.shuffle(list);

        //设置玩家和底牌
        List<String> p1 = new ArrayList<>();
        List<String> p2 = new ArrayList<>();
        List<String> p3 = new ArrayList<>();
        List<String> bottom = new ArrayList<>();
        Collections.shuffle(list);
        //5.  发牌了...  (需要打乱顺序)
        for (int i = 0; i < list.size(); i++) {
            //先取出底牌
            if(i<3){
                bottom.add(list.get(i));
            }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));
            }
        }

        //看牌
        show("张三",p1);
        show("李四",p2);
        show("王五",p3);
        show("底牌",bottom);

    }

    private static void show(String name, List<String> list) {
        System.out.print(name+":   ");

        for (int i = 0; i <list.size() ; i++) {
            System.out.print(list.get(i)+",");
        }
        System.out.println();
    }

代码执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值