Java 集合鬥地主

具體需求

寫一個模擬鬥地主程序(比較簡單),不需要花哨的界面,只在Console控制檯顯示。模擬鬥地主的存牌、洗牌、發牌、看牌、對牌進行排序等操作。

大致實現步驟

  • 創建HaspMap存牌
  • 創建ArrayList存牌的索引
  • 設置花色與點數,並存儲索引到ArrayList,存儲索引和牌,實現存牌功能
  • 使用Collections.shuffle對索引進行打亂,實現洗牌功能
  • 使用TreeSet存儲索引(TreeSet對值進行自動排序),實現發牌、排序功能
  • 輸出看牌

實現代碼

package Poker;
import java.util.*;
public class PokerDemoPlus {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HashMap<Integer,String> poker = new HashMap<Integer, String>();
		ArrayList<Integer> array = new ArrayList<Integer>();
		String[] colors = {"♦","♣","♥","♠"};
		String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
		
		int index = 0;
		for(String number : numbers)
			for(String color : colors) {
				poker.put(index, color+number);
				array.add(index++);
			}
		poker.put(index, "小王");
		array.add(index++);
		poker.put(index, "大王");
		array.add(index);
		
		Collections.shuffle(array);
		
		TreeSet<Integer> fqy = new TreeSet<Integer>();
		TreeSet<Integer> lhc = new TreeSet<Integer>();
		TreeSet<Integer> zwj = new TreeSet<Integer>();
		TreeSet<Integer> dp = new TreeSet<Integer>();
		
		for(int i = 0 ; i < array.size() ; i ++ ) {
			Integer x = array.get(i);
			if(i>=array.size()-3) dp.add(x);
			else if(i%3==0) fqy.add(x);
			else if(i%3==1) lhc.add(x);
			else if(i%3==2) zwj.add(x);
		}
		lookPoker("風清揚", fqy, poker);
		lookPoker("令狐沖", lhc, poker);
		lookPoker("張無忌", zwj, poker);
		lookPoker("底牌", dp, poker);
	}
	public static void lookPoker(String name,TreeSet<Integer> ts,HashMap<Integer, String> hs) {
		System.out.print(name + "的牌是:");
		for(Integer i : ts) {
			String s = hs.get(i);
			System.out.print(s + " ");
		}
		System.out.println();
	}
}

效果展示

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章