0
点赞
收藏
分享

微信扫一扫

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

DYBOY 2022-03-17 阅读 40
java后端
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();
    }
}
举报

相关推荐

0 条评论