Map集合存储牌号和牌面,把Map集合的牌号转为List,Collections对List打乱顺序和排序,发牌号,牌号排序,根据牌号显示牌面,打印玩家的牌和底牌内容。
public class PokeBox { public static void main(String[] args) { //造牌 HashMap<Integer,String> pokeBox = new HashMap<>(); String[] colors = "♠,♥,♣,♦".split(","); String[] nums = "2,A,K,Q,J,10,9,8,7,6,5,4,3".split(","); Integer index = 54; ArrayList<Integer> pokeNums = new ArrayList<>(); pokeBox.put(index,"大王"); pokeNums.add(index); index--; pokeBox.put(index,"小王"); pokeNums.add(index); index--; for (String num : nums) { for (String color : colors) { String poke = color+num; pokeBox.put(index,poke); pokeNums.add(index); index--; } } // System.out.println(pokeBox); // System.out.println(pokeNums); //洗牌,定义三个玩家和底牌 Collections.shuffle(pokeNums); ArrayList<Integer> player1 = new ArrayList<>(); ArrayList<Integer> player2 = new ArrayList<>(); ArrayList<Integer> player3 = new ArrayList<>(); ArrayList<Integer> diPai = new ArrayList<>(); //发牌 for (int i = 0; i < pokeNums.size(); i++) { Integer pokeNum = pokeNums.get(i); if (i>50){ diPai.add(pokeNum); }else { if (i%3==0){ player1.add(pokeNum); }else if (i%3==1){ player2.add(pokeNum); }else { player3.add(pokeNum); } } } // System.out.println(player1); // System.out.println(player2); // System.out.println(player3); // System.out.println(diPai); //排序 shoepoke(pokeBox, player1,"海贼"); shoepoke(pokeBox, player2,"平民"); shoepoke(pokeBox, player3,"海军"); shoepoke(pokeBox, diPai,"恶魔果实"); } private static void shoepoke(HashMap<Integer, String> pokeBox, ArrayList<Integer> player1,String name) { Collections.sort(player1); // System.out.println("玩家1的牌"+player1); //打印 System.out.print(name+":"); for (int i = 0; i < player1.size(); i++) { Integer num = player1.get(i); String poke = pokeBox.get(num); if (i==player1.size()-1){ System.out.println(poke+"]"); }else if(i == 0){ System.out.print("["+poke+","); }else { System.out.print(poke+","); } } } }