1. 程式人生 > 其它 >Collections類操作集合模擬鬥地主

Collections類操作集合模擬鬥地主

通過操作Collections類模擬鬥地主

首先先定義牌的數字和花色,使用hashmap來定義牌,使用arraylist來定義三個玩家的牌以及底牌。

String[] colors = {"♣","♦","♠","♥"};
	String[] numbers = {"3","4","5","6","7","8","9","10","J","Q"
,"K","A","2"}; Map<Integer,String> pai = new HashMap<Integer, String>(); String[] colors = {"♣","♦","♠","♥"}; String[] numbers = {"3","4","5","6","7","8","9"
,"10","J","Q","K","A","2"}; Map<Integer,String> pai = new HashMap<Integer, String>(); List<Integer> xuhao = new ArrayList<Integer>(); List<String> player1 = new ArrayList<String>(); List<String> player2 =
new ArrayList<String>(); List<String> player3 = new ArrayList<String>(); List<String> dipai = new ArrayList<String>();

然後將牌放進牌盒裡

int index = 0;
	for(String s1:colors) {
		for(String s2:numbers) {
			pai.put(index, s1+s2);
			xuhao.add(index);
			index++;
		}
	}

然後進行牌的打亂
在這裡插入圖片描述

接著進行發牌

for(int i = 0 ; i<pai.size() ; i++) {
		if(i<3)
			dipai.add(pai.get(xuhao.get(i)));
		else if(i%3 == 0)
			player1.add(pai.get(xuhao.get(i)));
		else if(i%3 == 1)
			player2.add(pai.get(xuhao.get(i)));
		else if(i%3 == 2)
			player3.add(pai.get(xuhao.get(i)));
	}

最後進行看牌

static void Lookpai(List list) {
		System.out.println(list);
	}
System.out.print("一號選手的牌:");
	Lookpai(player1);
	System.out.print("二號選手的牌:");
	Lookpai(player2);
	System.out.print("三號選手的牌:");
	Lookpai(player3);
	System.out.print("底牌:");
	Lookpai(dipai);

在這裡插入圖片描述

但是牌順序不是按升序,我們需要對它進行改進。
我們使用TreeSet表示玩家的牌和底牌,並使用通過打亂序號list,而牌hash的順序不打亂。通過序號來訪問牌得到有順序牌。

TreeSet<Integer> player1 = new TreeSet<Integer>();
	TreeSet<Integer> player2 = new TreeSet<Integer>();
	TreeSet<Integer> player3 = new TreeSet<Integer>();
	TreeSet<Integer> dipai = new TreeSet<Integer>();

TreeSet會自動按升序處理,得到的序號就是有序的。

ollections.shuffle(xuhao);
	for(int i = 0 ; i<pai.size() ; i++) {
		if(i<3)
			dipai.add(xuhao.get(i));
		else if(i%3 == 0)
			player1.add(xuhao.get(i));
		else if(i%3 == 1)
			player2.add(xuhao.get(i));
		else if(i%3 == 2)
			player3.add(xuhao.get(i));
	}

最後通過序號來訪問hash表中的牌

static void Lookpai(TreeSet<Integer> set,HashMap<Integer, String> pai) {
		for(Integer x:set) {
			System.out.print(pai.get(x)+"  ");
		
		}
		System.out.println();
	}

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

最後的最後!!!
乾飯!!!!!