模擬闘地主洗牌-発牌-看牌


模擬闘地主洗牌-発牌-看牌
/*闘地主打牌的想法:*A:HashMap集合を作成する:メモリカードの番号と対応するカード*B:ArrayList集合を作成する:メモリカードの番号*C:花色配列と点数配列を作成する:52枚のカード*D:0からHashMapに番号を格納する対応するカードを格納*同時にArrayListに番号を格納すればよい*E:洗札(洗は番号)*F:発札(発も番号であり、番号がソートされていることを保証するためにTreeSetコレクション受信を作成)*G:見札(TreeSetコレクションを巡り、番号(秩序ある番号)を取得し、HashMapコレクションに対応するカードを探す)*
/*
 *         :
 * 		A:    HashMap  :           
 * 		B:    ArrayList  :      
 * 		C:           :52  
 * 		D: 0   HashMap      ,       
 *           ArrayList        
 *      E:  (     )
 *      F:  (      ,          ,   TreeSet    )
 *      G:  (  TreeSet  ,    (     ), HashMap       )
 */

package cn.itcast_03;

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

public class PokerDemo {
	public static void main(String[] args) {
		//     HashMap  
		HashMap hm = new HashMap();

		//     ArrayList  
		ArrayList array = new ArrayList();

		//            
		//         
		String[] colors = { "♠", "♥", "♣", "♦" };
		//         
		String[] numbers = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2" };

		//  0   HashMap      ,       ,   ArrayList        。
		int index = 0;

		for (String number : numbers) {
			for (String color : colors) {
				String poker = color.concat(number);
				hm.put(index, poker); //   
				array.add(index); //    
				index++; //    1
			}
		}
		hm.put(index, "  ");
		array.add(index);
		index++;
		hm.put(index, "  ");
		array.add(index);

		//   (     ):              
		Collections.shuffle(array);

		//   (      ,          ,   TreeSet    )
		TreeSet cmm = new TreeSet();
		TreeSet ldw = new TreeSet();
		TreeSet ylw = new TreeSet();
		TreeSet diPai = new TreeSet();

		for (int x = 0; x < array.size(); x++) {
			if (x >= array.size() - 3) {
				diPai.add(array.get(x));
			} else if (x % 3 == 0) {
				cmm.add(array.get(x));
			} else if (x % 3 == 1) {
				ldw.add(array.get(x));
			} else if (x % 3 == 2) {
				ylw.add(array.get(x));
			}
		}

		//   (  TreeSet  ,    , HashMap       )
		lookPoker(" ", cmm, hm);
		lookPoker(" ", ldw, hm);
		lookPoker(" ", ylw, hm);
		lookPoker("  ", diPai, hm);
	}

	//       
	public static void lookPoker(String name, TreeSet ts, HashMap hm) {
		System.out.print(name + "   :");
		for (Integer key : ts) {
			String value = hm.get(key);
			System.out.print(value + " ");
		}
		System.out.println();
	}
}