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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*模拟打升级发两幅扑克,四个玩家.每人27张牌. 按照花色分类排序,
* 例如:
[大王, 黑桃K, 黑桃K, 黑桃Q, 黑桃7, 黑桃5, 黑桃3, 黑桃2, 红桃J,
红桃9, 红桃7, 红桃2, 梅花A, 梅花Q, 梅花J, 梅花10, 梅花8, 梅花5,
梅花4, 梅花3, 梅花2, 方片A, 方片A, 方片J, 方片7, 方片4, 方片3]
*/
public class Test {
     public static void main(String[] args) {
                //1.盒子
             HashMap<Integer, String> pkmap =new HashMap<Integer, String>();
             ArrayList<Integer> pknum=new ArrayList<Integer>();
            //2.造牌
             zp(pkmap,pknum);
            //3.洗牌
             Collections.shuffle(pknum);
            //4.发牌
             fp(pkmap,pknum);
        }


        private static void zp(HashMap<Integer, String> pkmap,ArrayList<Integer> pknum) {
          //花色,数字
                ArrayList<String> color = new ArrayList<String>();
                ArrayList<String> num = new ArrayList<String>();
                Collections.addAll(color, "♠", "♥", "♣", "♦");
                Collections.addAll(num, "2","2","A","A","K","K","Q","Q","J","J","10","10","9","9","8","8","7","7","6","6","5","5","4","4","3","3");
                pkmap.put(0, "大王");   pknum.add(0);
                pkmap.put(1, "小王");   pknum.add(1);
                pkmap.put(2, "大王");   pknum.add(2);
                pkmap.put(3, "小王");   pknum.add(3);
                int index=4;
                for (String c: color) {
                        for (String n : num) {
                                pkmap.put(index,c+n);   pknum.add(index);
                                index++;
                        }
                }
        }

        private static void fp(HashMap<Integer, String> pkmap,ArrayList<Integer> pknum) {
                //玩家,底牌
                ArrayList<Integer> w1=new ArrayList<Integer>();
                ArrayList<Integer> w2=new ArrayList<Integer>();
                ArrayList<Integer> w3=new ArrayList<Integer>();
                ArrayList<Integer> w4=new ArrayList<Integer>();
                ArrayList<Integer> dp=new ArrayList<Integer>();
                for(int i=0;i<pknum.size();i++){
                        if(i>=100){
                                dp.add(pknum.get(i));
                        }else if (i%4==0){
                                w1.add(pknum.get(i));
                        }else if (i%4==1){
                                w2.add(pknum.get(i));

                        }else if (i%4==2){
                                w3.add(pknum.get(i));

                        }else if (i%4==3){
                             w4.add(pknum.get(i));

                    }       
            }
                //排序
                Collections.sort(w1);
                Collections.sort(w2);
                Collections.sort(w3);
                Collections.sort(w4);
                Collections.sort(dp);
            look("刘备",w1,pkmap);
            look("关羽",w2,pkmap);
            look("张飞",w3,pkmap);
            look("曹操",w4,pkmap);
            look("底牌",dp,pkmap);
          
        }
        private static void look(String name, ArrayList<Integer> w,HashMap<Integer, String> pkmap) {
                System.out.print(name+": ");
                for (Integer k : w) {
                        String v = pkmap.get(k);
                        System.out.print(v+" ");
                }
                System.out.println( );
        }
       
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马