斗地主洗牌、发牌,重新排序
package co.yonglang.controller.android;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Test {
	private static final String[] pokerNum = { "A", "2", "3", "4", "5", "6", "7", "8", "9",
            									"10", "J", "Q", "K" };
	private static final String[] pokerColor = { "黑桃", "红桃", "梅花", "方块" };
	
	/**
	 * 
	 * @return
	 */
	public static List<Card> newPoker() {
	    List<Card> list = new ArrayList<Card>();
	    Card card0=new Card();
	    Card card1=new Card();
	    for (int x = 0; x < pokerColor.length; x++) {
	            for (int y = 0; y < pokerNum.length; y++) {
	            	Card card=new Card();
	            	card.setColor(pokerColor[x]);
	            	card.setNumber(pokerNum[y]);
	            	switch(pokerColor[x]){ 
	            		case "黑桃":card.setColorIndex("4"); break;
	            		case "红桃":card.setColorIndex("3"); break;
	            		case "梅花":card.setColorIndex("2"); break;
	            		case "方块":card.setColorIndex("1"); break;
	            	}
	            	switch(pokerNum[y]){ 
	            		case "A":card.setNumberIndex("12"); break;
	            		case "2":card.setNumberIndex("13"); break;
	            		case "3":card.setNumberIndex("1"); break;
	            		case "4":card.setNumberIndex("2"); break;
	            		case "5":card.setNumberIndex("3"); break;
	            		case "6":card.setNumberIndex("4"); break;
	            		case "7":card.setNumberIndex("5"); break;
	            		case "8":card.setNumberIndex("6"); break;
	            		case "9":card.setNumberIndex("7"); break;
	            		case "10":card.setNumberIndex("8"); break;
	            		case "J":card.setNumberIndex("9"); break;
	            		case "Q":card.setNumberIndex("10"); break;
	            		case "K":card.setNumberIndex("11");  break;
	            	}
	            	list.add(card);
	            }
	    }
	    card0.setColor("");
	    card0.setNumber("大王");
	    card0.setNumberIndex("15");
	    card0.setColorIndex("5");
	    card1.setColor("");
	    card1.setNumber("小王");
	    card1.setNumberIndex("14");
	    card1.setColorIndex("5");
	    list.add(card0);
	    list.add(card1);
	    return list;
	}
		
	/**
	 * 洗牌 
	 * @param list
	 * @return
	 */
	public static List<Card> washPoker(List<Card> list) {
	    Collections.shuffle(list);
	    return list;
	}
		
	/**
	 * 发牌玩家
	 * @param l1
	 * @param l2
	 * @param l3
	 * @param poker
	 */
	public  void playPoker(List<Card> l1, List<Card> l2, List<Card> l3,
	            List<Card> poker) {
		List<Card> l0=new ArrayList<Card>();
	    for (int x = 0; x < poker.size(); x++) {
	            if (x < poker.size() - 3) {
	                    l1.add(poker.get(x));
	                    l2.add(poker.get(++x));
	                    l3.add(poker.get(++x));
	            } else {
	            	l0.add(poker.get(x));
	            }
	    }
	    //发完牌排序,从大到小
		this.order(l1);
		this.order(l2);
		this.order(l3);
		this.order(l0);
		for(Card card:l0){		    	
	    	System.out.println(card.getColor()+card.getNumber());
	    }
	    System.out.println("玩家1 :============================================================================================");
	    for(Card card:l1){		    	
	    	System.out.println(card.getColor()+card.getNumber());
	    }
	    System.out.println("玩家2 : ============================================================================================");
	    for(Card card:l2){		    	
	    	System.out.println(card.getColor()+card.getNumber());
	    }
	    System.out.println("玩家3 :============================================================================================");
	    for(Card card:l3){		    	
	    	System.out.println(card.getColor()+card.getNumber());
	    }
	    System.out.println("============================================================================================");
	}
		
	//对list排序
	public void order(List<Card> list){
		Collections.sort(list,new Comparator<Card>() {
			@Override
			public int compare(Card o1, Card o2) {
				int num =Integer.valueOf(o2.getNumberIndex()).compareTo(Integer.valueOf(o1.getNumberIndex()));					
				if(num ==0)
					return Integer.valueOf(o2.getColorIndex()).compareTo(Integer.valueOf(o1.getColorIndex()));
				return num;
			}
		});
	}
			
	public static void main(String[] args) {
		List<Card> l1=new ArrayList<Card>();
		List<Card> l2=new ArrayList<Card>();
		List<Card> l3=new ArrayList<Card>();
		List<Card> list=newPoker();
		List<Card> washList=washPoker(list);
		Test doudizhu=new Test();
		doudizhu.playPoker(l1, l2, l3, washList);
		
	}
}
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号