A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写了一下午,出了BUG,找了好一会,亮出来分享一下!
public class DDZ {
        static HashMap<Integer, Card> hm = new HashMap<>();
        static ArrayList<Integer> list = new ArrayList<>();
        static {
                hm.put(1, new Card("大", "☺"));// ♠♥♣♦
                hm.put(2, new Card("小", "☺"));
                list.add(1);
                list.add(2);
                String[] arr = { "♠", "♥", "♣", "♦" };
                String[] arr1 = { "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3" };
                int i = 3;
                for (String s : arr1) {
                        for (String st : arr) {
                                list.add(i);
                                hm.put(i++, new Card(st, s));
                        }
                }
        }

        public static void main(String[] args) {
                Collections.shuffle(list);
                Random r = new Random();
                int d = r.nextInt(52);// 获取list的一个角标
                System.out.println("随机的list的一个角标:" + d);
                System.out.println("扑克牌:" + hm);
                int dzj = list.get(d);
                System.out.println("地主牌的键:" + dzj);

                Card dzp = hm.get(dzj);
                System.out.println("地主牌是:" + dzp);
                ArrayList<Integer> p1 = fapai();
                System.out.println("成龙的键" + p1);
                ArrayList<Integer> p2 = fapai();
                System.out.println("甄子丹的键" + p2);
                ArrayList<Integer> p3 = fapai();
                System.out.println("李连杰的键" + p3);
                ArrayList<Integer> dp = new ArrayList<>();
                dp.addAll(list);
                ArrayList<Card> dipai = zhuanhuan(dp);
                System.out.println("底牌是:" + dipai);

                if (p1.contains(dzj)) {
                        p1.addAll(dp);
                        Collections.sort(p1);
                        System.out.println("成龙是地主");
                }
                ArrayList<Card> person1 = zhuanhuan(p1);
                if (p2.contains(dzj)) {
                        p2.addAll(dp);
                        Collections.sort(p2);
                        System.out.println("甄子丹是地主");
                }
                ArrayList<Card> person2 = zhuanhuan(p2);
                if (p3.contains(dzj)) {
                        p3.addAll(dp);
                        Collections.sort(p3);
                        System.out.println("李连杰是地主");
                }
                ArrayList<Card> person3 = zhuanhuan(p3);
                System.out.println("成龙:" + person1);
                System.out.println("甄子丹:" + person2);
                System.out.println("李连杰:" + person3);

        }

        private static ArrayList<Integer> fapai() {

                ArrayList<Integer> p1 = new ArrayList<>();
                for (int i = 0; i < 17; i++) {
                        int a = list.remove(0);
                        p1.add(a);
                }

                Collections.sort(p1);

                return p1;
        }

        private static ArrayList<Card> zhuanhuan(ArrayList<Integer> list) {
                ArrayList<Card> p = new ArrayList<>();
                for (Integer integer : list) {

                        Card c = hm.get(integer);
                        p.add(c);
                }
                return p;
        }
}

class Card {
        private String color;
        private String numb;

        /**
         * @param color
         * @param numb
         */
        public Card(String color, String numb) {
                super();
                this.color = color;
                this.numb = numb;
        }

        @Override
        public String toString() {
                return color + numb;
        }

}

1 个回复

正序浏览
这个在基础班属于很牛逼很牛逼的代码了当时领悟了好久
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马