JAVA单排日记-2019/12/28-1-集合综合案例:斗地主

在这里插入图片描述

自己写的版本1:

import java.util.*;

public class DemoDDZ {
    public static void main(String[] args) {
        ArrayList<String> style = new ArrayList<>();
        ArrayList<String> num = new ArrayList<>();
        ArrayList<String> card = new ArrayList<>();
        ArrayList<String> one = new ArrayList<>();
        ArrayList<String> two = new ArrayList<>();
        ArrayList<String> three = new ArrayList<>();
        
        style.add("♠");
        style.add("♥");
        style.add("♦");
        style.add("♣");

        num.add("A");
        num.add("2");
        num.add("3");
        num.add("4");
        num.add("5");
        num.add("6");
        num.add("7");
        num.add("8");
        num.add("9");
        num.add("10");
        num.add("J");
        num.add("Q");
        num.add("K");

        for (int i = 0; i < style.size(); i++) {
            for (int i1 = 0; i1 < num.size(); i1++) {
                card.add(style.get(i) + num.get(i1));
            }
        }
        card.add("大王");
        card.add("小王");
        Collections.shuffle(card);

        for (int i = 0; i < card.size() - 3; i += 3) {
            one.add(card.get(i));
            two.add(card.get(i + 1));
            three.add(card.get(i + 2));
        }

        System.out.println(one);
        System.out.println(two);
        System.out.println(three);
    }
}

在这里插入图片描述

版本2

import java.util.*;

public class DemoDDZ {
    public static void main(String[] args) {
        ArrayList<String> style = new ArrayList<>();
        ArrayList<String> num = new ArrayList<>();
        ArrayList<String> card = new ArrayList<>();
        ArrayList<String> one = new ArrayList<>();
        ArrayList<String> two = new ArrayList<>();
        ArrayList<String> three = new ArrayList<>();
        ArrayList<String> leftcard = new ArrayList<>();

        style.add("♠");
        style.add("♥");
        style.add("♦");
        style.add("♣");

        num.add("A");
        num.add("2");
        num.add("3");
        num.add("4");
        num.add("5");
        num.add("6");
        num.add("7");
        num.add("8");
        num.add("9");
        num.add("10");
        num.add("J");
        num.add("Q");
        num.add("K");

        for (int i = 0; i < style.size(); i++) {
            for (int i1 = 0; i1 < num.size(); i1++) {
                card.add(style.get(i) + num.get(i1));
            }
        }
        card.add("大王");
        card.add("小王");
        Collections.shuffle(card);


        //抽出最后三张放入leftcard
        for (int i = 0; i < 3; i++) {
            leftcard.add(card.get(card.size() - 1));
            card.remove(card.size() - 1);
        }

        //剩下的51张按顺序分
        Iterator<String> ite = card.iterator();
        while (ite.hasNext()) {
            one.add(ite.next());
            two.add(ite.next());
            three.add(ite.next());
        }

        System.out.println(one);
        System.out.println(two);
        System.out.println(three);
    }
}

发牌过程优化思想

在这里插入图片描述

优化后代码
import java.util.*;

public class DemoDDZ {
    public static void main(String[] args) {
        ArrayList<String> card = new ArrayList<>();
        ArrayList<String> one = new ArrayList<>();
        ArrayList<String> two = new ArrayList<>();
        ArrayList<String> three = new ArrayList<>();
        ArrayList<String> leftcard = new ArrayList<>();

        String[] style = {"♠", "♥", "♦", "♣"};
        String[] num = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};


        for (int i = 0; i < style.length; i++) {
            for (int i1 = 0; i1 < num.length; i1++) {
                card.add(style[i] + num[i1]);
            }
        }
        card.add("大王");
        card.add("小王");

        Collections.shuffle(card);

        for (int i = 0; i < card.size(); i++) {
            if (i < 51) {
                if (i % 3 == 0) {
                    one.add(card.get(i));
                } else if (i % 3 == 1) {
                    two.add(card.get(i));
                } else {
                    three.add(card.get(i));
                }
            } else {
                leftcard.add(card.get(i));
            }
        }

        System.out.println(one);
        System.out.println(two);
        System.out.println(three);
        System.out.println(leftcard);
    }
}

在这里插入图片描述

发布了90 篇原创文章 · 获赞 1 · 访问量 2061

猜你喜欢

转载自blog.csdn.net/wangzilong1995/article/details/103748367