【JAVA】简单的斗地主

发牌、看牌

需求: 斗地主中实现发牌和看牌
在这里插入图片描述

public class PokerDemo {
    public static void main(String[] args) {
        //创建一个空牌盒,ArrayList实现
        ArrayList<String> array = new ArrayList<String>();

        //装牌(A到K四种花色,大王小王)
        //定义四种花色
        String[] colors = {"♦", "♣", "♥", "♠"};
        //定义十三张点
        String[] numbers = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "k", "A"};
        for (String color : colors){
            for (String number : numbers){
                array.add(color + number);
            }
        }
        array.add("大王");
        array.add("小王");
//        System.out.println(array);

        //洗牌
        Collections.shuffle(array);

        //发牌
        //定义三个对象存放三个人的牌,以及三张底牌
        ArrayList<String> benben = new ArrayList<String>();
        ArrayList<String> doudou = new ArrayList<String>();
        ArrayList<String> qiqi = new ArrayList<String>();
        ArrayList<String> dipai = new ArrayList<String>();

        for (int i = 0; i < array.size(); i++){
            String poker = array.get(i);
            if (i >= array.size() - 3){
                dipai.add(poker);
            } else if (i % 3 == 0){
                benben.add(poker);
            }else if (i % 3 == 1){
                doudou.add(poker);
            }else if (i % 3 == 2){
                qiqi.add(poker);
            }
        }
//        System.out.print(dipai);

        //看牌
        lookPoker("笨笨", benben);
        lookPoker("兜兜", doudou);
        lookPoker("琪琪", qiqi);
        lookPoker("底牌", dipai);
    }

    public static void lookPoker(String name, ArrayList poker){
        System.out.print(name + "的牌:");
        for (int i = 0; i < poker.size(); i++){
            System.out.print(poker.get(i) + " ");
        }
        System.out.println();
    }
}

//显示结果
笨笨的牌:♣A ♥10 ♥J ♥89 大王 ♠448638 ♦k 小王 ♣625 
兜兜的牌:♣9 ♣Q ♠9779 ♣J ♥38 ♦Q ♣7 ♠A ♦5 ♦A ♠Q ♦10 ♥A 
琪琪的牌:♣101044 ♠J ♦2 ♣k ♠k ♣5 ♦J ♠232 ♥k ♥Q ♦66 
底牌的牌:♠735 

模拟斗地主

需求: 通过程序实现模拟斗地主过长中的发牌、看牌、要求进行排序
在这里插入图片描述

public class pokerTest {
    public static void main(String[] args) {
        //创建HashMap
        HashMap<Integer, String> hm = new HashMap<Integer, String>();

        //创建ArrayList
        ArrayList<Integer> al = new ArrayList<Integer>();

        //创建花色和点数数组
        String[] colors = {"♦", "♣", "♠", "♥"};
        String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};

        //往HashMap中存储编号和牌,往ArrayList中存储编号
        int index = 0;
        for (String number : numbers){
            for (String color : colors){
                hm.put(index, color + number);
                al.add(index);
                index++;
            }
        }
        hm.put(index,"小王");
        al.add(index);
        index++;
        hm.put(index,"大王");
        al.add(index);

        //洗牌
        Collections.shuffle(al);

        //创建三个TreeSet对象,发牌
        TreeSet<Integer> xiaoming = new TreeSet<Integer>();
        TreeSet<Integer> xiaohong = new TreeSet<Integer>();
        TreeSet<Integer> xiaoli = new TreeSet<Integer>();
        TreeSet<Integer> dipai = new TreeSet<Integer>();

        for (int i = 0; i < al.size(); i++){
            int x = al.get(i);
            if (i >= al.size() - 3){
                dipai.add(x);
            }else if (i % 3 == 0){
                xiaoming.add(x);
            }else if (i % 3 == 1){
                xiaohong.add(x);
            }else if (i % 3 == 2){
                xiaoli.add(x);
            }
        }

        //看牌
        lp("小明", xiaoming, hm);
        lp("小红", xiaoming, hm);
        lp("小李", xiaoli, hm);

        lp("底牌", dipai, hm);
    }
    
    //看牌的方法
    public static void lp(String name, TreeSet<Integer> treeSet, HashMap<Integer, String> hm){
        System.out.print(name + "的牌:");
        for (Integer ts : treeSet){
            System.out.print(hm.get(ts) + " ");
        }
        System.out.println();
    }
}

//显示结果
小明的牌:34556699 ♦J ♦Q ♠Q ♦K ♣K ♠A ♣22 大王 
小红的牌:34556699 ♦J ♦Q ♠Q ♦K ♣K ♠A ♣22 大王 
小李的牌:44667778889 ♥Q ♠K ♦A ♣A ♥A ♦2 
底牌的牌:8 ♥J ♥K 

猜你喜欢

转载自blog.csdn.net/joker_Ling/article/details/108416699
今日推荐