java基础案例6-4斗地主洗牌发牌

package com.itheima;

import java.util.ArrayList;
import java.util.Collections;
import java.util.TreeMap;
import java.util.TreeSet;

public class Main{
    public static void main(String[] args)
    {
        //存储编号和花色
        TreeMap<Integer, String> pokers = new TreeMap<Integer, String>();
        //花色和编号
        String[] colors = {"黑桃", "红桃", "方块", "梅花"};
        String[] numbers = {"3","4","5","6","7","8","9","10","J","O","K","A","2"};
        //储存编号
        ArrayList<Integer> indexes = new ArrayList<Integer>();
        //编号对应编号和花色
        int index = 0;
        for(String number: numbers)
            for(String color: colors)
            {
                pokers.put(index, color + number);
                indexes.add(index);
                index++;
            }
        pokers.put(index, "大王");
        indexes.add(index);
        index++;
        pokers.put(index, "小王");
        indexes.add(index);

        //洗牌
        Collections.shuffle(indexes);

        //发牌
        TreeSet<Integer> first = new TreeSet<Integer>();
        TreeSet<Integer> second = new TreeSet<Integer>();
        TreeSet<Integer> third = new TreeSet<Integer>();
        TreeSet<Integer> end = new TreeSet<Integer>();
        for(int i = 0; i < indexes.size(); i++)
        {
            if(i >= indexes.size() - 3)
                end.add(indexes.get(i));
            else if(i % 3 == 0)
                first.add(indexes.get(i));
            else if(i % 3 == 1)
                second.add(indexes.get(i));
            else if(i % 3 == 2)
                third.add(indexes.get(i));
        }

        //看牌
        lookPoker("张三", first, pokers);
        lookPoker("李四", second, pokers);
        lookPoker("王五", third, pokers);
        lookPoker("底牌", end, pokers);
    }

    public static void lookPoker(String name, TreeSet<Integer> indexes, TreeMap<Integer, String>pokers) {
        System.out.print(name+"的牌为: ");
        for(Integer index : indexes)
        {
            System.out.print(pokers.get(index) + " ");
        }
        System.out.println();
    }
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值