1. 程式人生 > >模擬鬥地主洗牌和發牌並對牌進行排序

模擬鬥地主洗牌和發牌並對牌進行排序


package com.luffy.map;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.TreeSet;

public class Demo2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 1撲克
		String[] num = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
		String[] color = {"紅桃", "黑桃", "方塊", "梅花"};
		HashMap<Integer, String> poker = new HashMap<>();
		ArrayList<Integer> pokerIndex = new ArrayList<>(); 
		int index = 0;
		for (String s1 : num) {
			for (String s2 : color) {
				poker.put(index, s2.concat(s1));
				pokerIndex.add(index);
				index += 1;
			}		
		}
		System.out.println(index);
		
		// 洗牌 對index進行亂序
		Collections.shuffle(pokerIndex);      
//		for (Integer key : pokerIndex) {
//			System.out.println(poker.get(key) );
//		}
		
		// 發牌  TreeSet會自動對index進行排序
		TreeSet<Integer> number1 = new TreeSet<>();
		TreeSet<Integer> number2 = new TreeSet<>();
		TreeSet<Integer> number3 = new TreeSet<>();
		
		TreeSet<Integer> dipai = new TreeSet<>();
		
		for (int index2 = 0; index2 < poker.size() - 3; index2++) {
			if (index2 % 3 == 0) {
				number1.add(pokerIndex.get(index2));
			} else if (index2 % 3 == 1) {
				number2.add(pokerIndex.get(index2));
			} else {
				number3.add(pokerIndex.get(index2));
			}
		}
		
		dipai.add(pokerIndex.get(poker.size()-3));
		dipai.add(pokerIndex.get(poker.size()-2));
		dipai.add(pokerIndex.get(poker.size()-1));
		
		// 看牌
		lookPoker("numbr1", number1, poker);
		lookPoker("number2", number2, poker);
		lookPoker("numbr3", number3, poker);
		lookPoker("dipai", dipai, poker);
		
	}

	private static void lookPoker(String name, TreeSet<Integer> number1, HashMap<Integer, String> poker) {
		// TODO Auto-generated method stub
		System.out.println("name" + "=" + name);
		for (Integer integer : number1) {
			System.out.print(poker.get(integer));
		}
		System.out.println();
	}

}