1. 程式人生 > >使用Java中ArrayList實現鬥地主發牌

使用Java中ArrayList實現鬥地主發牌

實現步驟: 1、造牌 A、首先造撲克花色 B、生成J、Q、K、A特殊牌 C、講花色和撲克進行拼接 2、建立三個玩家 3、洗牌 4、發牌 5、留三張底牌

 public class Demo1Poker {
	public static void main(String[] args) {
		//1、造牌	2、
		ArrayList<String> pokerBox=new ArrayList<>();
		ArrayList<String> colors=new ArrayList<>();
		ArrayList<String> numbers=new ArrayList<>();
		
		colors.add("♠");
		colors.add("♥");
		colors.add("♦");
		colors.add("♣");
		
		for(int i=2;i<=10;i++){
			numbers.add(i+"");
		}
		numbers.add("J");
		numbers.add("Q");
		numbers.add("K");
		numbers.add("A");
		
		//造牌 先拿花色,在拿牌面值,進行拼接
		for(String color:colors){
			for(String number:numbers){
				pokerBox.add(color+number);
			}
		}
		//已經造了52張牌
		pokerBox.add("小王");
		pokerBox.add("大王");
		
//		System.out.println(pokerBox);
		Collections.shuffle(pokerBox);
//		System.out.println(pokerBox);
		//建立玩家
		ArrayList<String> player1=new ArrayList<>();
		ArrayList<String> player2=new ArrayList<>();
		ArrayList<String> player3=new ArrayList<>();
		
		
		for(int i=0;i<pokerBox.size();i++){
			if(i>=pokerBox.size()-3){
				
			}else if(i%3==0){
				//玩家一的撲克
				player1.add(pokerBox.get(i));
			}else if(i%3==1){
				//玩家二的撲克
				player2.add(pokerBox.get(i));
			}else if(i%3==2){
				//玩家三的撲克
				player3.add(pokerBox.get(i));
			}
		}
		System.out.println("玩家1:"+player1.size()+"張牌,牌是:"+player1.toString());
		System.out.println("玩家2:"+player2.size()+"張牌,牌是:"+player2.toString());
		System.out.println("玩家3:"+player3.size()+"張牌,牌是:"+player3.toString());
		
		
	}
}

最後沒有實現發到玩家手上的撲克,沒有進行順序排列。

結果: 在這裡插入圖片描述