1. 程式人生 > >ArrayList模擬鬥地主的洗牌,發牌和看牌

ArrayList模擬鬥地主的洗牌,發牌和看牌

模擬 小數 public for new 輸出結果 pre light ati

ArrayList模擬鬥地主的洗牌,發牌和看牌

/*
* ArrayList模擬鬥地主的洗牌,發牌和看牌
*
* 分析:
* 1.創建一個牌盒
* 2.裝牌
* 3.洗牌
* 4.發牌
* 5.看牌
*/

代碼:

import java.util.ArrayList;
import java.util.Collections;

/**
 *  ArrayList模擬鬥地主的洗牌,發牌和看牌
 * @author TP
 *
 */
public class Doudizhu {
	/*
	 *  ArrayList模擬鬥地主的洗牌,發牌和看牌
	 * 
	 * 分析:
	 * 		1.創建一個牌盒
	 * 		2.裝牌
	 * 		3.洗牌
	 * 		4.發牌
	 * 		5.看牌
	 */
	
	public static void main(String[] args) {
		
		//1.創建一個牌盒
		ArrayList<String> array = new ArrayList<String>();
		
		//2.裝牌
		//牌的花色:紅桃  ? ,黑桃 ? ,梅花 ? ,方塊   ?
		//定義一個花色數組
		String[] colors = {"?","?","?","?"};
		
		//定義 一個大小數組
		String[] num = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
		
		//定義字符串來放大小王
		String smallBoss = "小王";
		String bigBoss = "大王";
		
		//把花色和大小放入集合中
		for(String color : colors){
			for(String num1 : num){
				array.add(color.concat(num1));
			}
		}
		
		//裝入大小王
		array.add(smallBoss);
		array.add(bigBoss);
		
		//3.洗牌
		Collections.shuffle(array);
		
		//4.發牌
		ArrayList<String> zhangsan = new ArrayList<String>();
		ArrayList<String>  lisi= new ArrayList<String>();
		ArrayList<String> wangwu = new ArrayList<String>();
		ArrayList<String> dipei = new ArrayList<String>();
		
		for(int i = 0; i < array.size(); i++){
			//如索引大於等於array.size()-3,則是底牌
			if(i >= array.size()-3){
				dipei.add(array.get(i));
			}else if(i % 3 == 0){
				zhangsan.add(array.get(i));
			}else if(i % 3 == 1){
				lisi.add(array.get(i));
			}else if(i % 3 == 2){
				wangwu.add(array.get(i));
			}
		}
		
		//5.看牌
		System.out.println("array : "+array);
		System.out.println("張三 : "+zhangsan);
		System.out.println("李四 : "+lisi);
		System.out.println("王五 : "+wangwu);
		System.out.println("底牌 : "+dipei);
	}

}

  輸出結果:

    

    array : [?4, ?K, ?A, ?J, ?3, ?2, ?J, ?7, ?4, ?Q, ?3, ?6, ?4, ?7, 大王, ?5, ?K, ?A, ?9, ?5, ?10, ?Q, ?A, ?10, ?6, ?Q, ?2, ?7, ?6, ?5, ?J, ?8, ?3, ?8, 小王, ?8, ?5, ?10, ?6, ?10, ?K, ?J, ?A, ?8, ?2, ?7, ?K, ?9, ?Q, ?2, ?9, ?9, ?4, ?3]

    張三 : [?4, ?J, ?J, ?Q, ?4, ?5, ?9, ?Q, ?6, ?7, ?J, ?8, ?5, ?10, ?A, ?7, ?Q]
    李四 : [?K, ?3, ?7, ?3, ?7, ?K, ?5, ?A, ?Q, ?6, ?8, 小王, ?10, ?K, ?8, ?K, ?2]
    王五 : [?A, ?2, ?4, ?6, 大王, ?A, ?10, ?10, ?2, ?5, ?3, ?8, ?6, ?J, ?2, ?9, ?9]
    底牌 : [?9, ?4, ?3]

ArrayList模擬鬥地主的洗牌,發牌和看牌