//定义两个数组,用来存放花色和牌号 String[]color={"♠","♥","♣","♦"}; String[]number={"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; //创建一个Map集合,key代表1-54标号,值代表牌面:花色+牌号 HashMap<Integer, String> map = new HashMap<>(); //创建一个list集合用来单独存map集合中的key; ArrayList<Integer> list = new ArrayList<>(); //遍历color和number,把牌存入map集合中 int index=1;//设置index变量来代表map集合中的key; for(int i=0;i<color.length;i++){ for(int j=0;j<number.length;j++){ map.put(index,color[i]+number[j]); //把map集合中的key,存放到list集合中去 list.add(index); index++; } } //把大王和小王放入map集合中 map.put(index,"大王"); map.put(index+1,"小王"); //把大小王对应的标号存入list集合中 Collections.addAll(list,index,index+1); //定义三个玩家 ArrayList<String> player1 = new ArrayList<>(); ArrayList<String> player2 = new ArrayList<>(); ArrayList<String> player3 = new ArrayList<>(); //定义一个集合存储底牌 ArrayList<String> bottom = new ArrayList<>(); //发牌方法1: for(int i=1;i<=list.size();i++){ //每次发牌前先洗一次牌 if(i==1){ Collections.shuffle(list); } //获得打乱顺序后的标号 Integer n = list.get(i - 1); //获得底牌 if(i<=3){ bottom.add(map.get(n)); } //分别给三位玩家发牌 else if(i%3==0){ player1.add(map.get(n)); }else if(i%3==1){ player2.add(map.get(n)); }else if(i%3==2){ player3.add(map.get(n)); } } //发牌方法2: // for(int i=1;i<=list.size();i++){ // //每次发牌前先洗一次牌 // if(i==1){ // Collections.shuffle(list); // } // //获得打乱顺序后的标号 // Integer n = list.get(i - 1); // //获得底牌 // if(list.size()-i>=0&&list.size()-i<3){ // bottom.add(map.get(n)); // } // //分别给三位玩家发牌 // else if(i%3==0){ // player1.add(map.get(n)); // }else if(i%3==1){ // player2.add(map.get(n)); // }else if(i%3==2){ // player3.add(map.get(n)); // } // } // System.out.print("玩家1的牌是:"); for(String s1:player1){ System.out.print(s1+" "); } System.out.println(); System.out.print("玩家2的牌是:"); for(String s2:player2){ System.out.print(s2+" "); } System.out.println(); System.out.print("玩家3的牌是:"); for(String s3:player3){ System.out.print(s3+" "); } System.out.println(); System.out.print("底牌是:"); for(String s4:bottom){ System.out.print(s4+" "); }