Java集合 斗地主综合题
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; /* * 斗地主玩牌 */ public class DouDiZhu { public static void main(String[] args) { //1. 准备扑克牌 HashMap<Integer,String> pooker = new HashMap<Integer, String>(); ArrayList<Integer> pookerNumber = new ArrayList<Integer>(); String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; String[] colors = {"红桃","黑桃","方片","草花"}; int index = 2; for(String number : numbers){ for(String color : colors){ pooker.put(index, color+number); pookerNumber.add(index); index++; } } pooker.put(0, "大王"); pookerNumber.add(0); pooker.put(1, "小王"); pookerNumber.add(1); //2. 洗牌 Collections.shuffle(pookerNumber); //三个玩家集合 一个底牌集合 ArrayList<Integer> player1 = new ArrayList<Integer>(); ArrayList<Integer> player2 = new ArrayList<Integer>(); ArrayList<Integer> player3 = new ArrayList<Integer>(); ArrayList<Integer> bottom = new ArrayList<Integer>(); //利用ArrayList集合中元素的索引 索引%3 for(int i = 0 ; i < pookerNumber.size() ; i++){ //前三张牌 先拿出 做为底牌 if(i < 3){ bottom.add( pookerNumber.get(i)); }else if(i % 3 == 0){ player1.add( pookerNumber.get(i) );//第一个玩家 拿牌 }else if( i % 3 == 1){ player2.add( pookerNumber.get(i) );//第二个玩家 拿牌 }else if( i % 3 == 2){ player3.add( pookerNumber.get(i) );//第三个玩家 拿牌 } } //3.每个玩家手中的牌 排序 Collections.sort(player1); Collections.sort(player2); Collections.sort(player3); //4.显示牌面 look("刘德华",player1,pooker); look("张曼玉",player2,pooker); look("林青霞",player3,pooker); look("底牌",bottom,pooker); } public static void look(String name,ArrayList<Integer> player,HashMap<Integer,String> pooker){ System.out.print(name+" "); for(Integer key : player){ String value = pooker.get(key); System.out.print(value+" "); } System.out.println(); } }