1. 程式人生 > >java SE集合類實現鬥地主洗牌、牌排序

java SE集合類實現鬥地主洗牌、牌排序

java的集合方便了我們管理和操作大量的資料,在很多地方都用多,特別在java Web要操作資料庫時,那是必不可少的!!!集合類的作用是用於儲存、檢索和操縱資料,以及將資料從一個方法傳輸至另一個方法等等。

很簡單的程式碼就可以實現

package list;

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

import org.junit.Test;

public class faatPaai {

    @Test
    public
void SaiPaai() { //HashMap的key方便發牌時獲取牌 HashMap<Integer,String> paais = new HashMap<Integer,String>(); ArrayList<Integer> arrys = new ArrayList<Integer>(); //牌的四種顏色 String[] colors = { "♠", "♥", "♣", "♦" }; //牌的數字,("A", "2")放在後面方便牌排序 String[] numbers = { "3"
, "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K","A", "2" }; int index = 0; //數字放在第一個for也是為方便牌排序 for (String number : numbers) { for (String color : colors) { paais.put(++index,color.concat(number)); arrys.add(index); } } paais.put(++index,"小王"
); arrys.add(index); paais.put(++index,"大王"); arrys.add(index); //洗牌 Collections.shuffle(arrys); //TreeSet類自帶排序,方便操作 TreeSet<Integer> peasant1 = new TreeSet<Integer>(); TreeSet<Integer> peasant2 = new TreeSet<Integer>(); TreeSet<Integer> landlord = new TreeSet<Integer>(); TreeSet<Integer> daiPaai = new TreeSet<Integer>(); for (int i = 0; i < paais.size(); i++) { //牌剩下三張是發給底牌 if (i >= paais.size() - 3) { daiPaai.add(arrys.get(i)); } else if (i % 3 == 0) { peasant1.add(arrys.get(i)); } else if (i % 3 == 1) { peasant2.add(arrys.get(i)); } else if (i % 3 == 2) { landlord.add(arrys.get(i)); } } //發牌 faaiPaai("底牌",daiPaai,paais); faaiPaai("農民",peasant1,paais); faaiPaai("農民",peasant2,paais); faaiPaai("地主",landlord,paais); } public void faaiPaai(String name,TreeSet<Integer> personage,HashMap<Integer,String> paais){ System.out.print(name+"牌為:"); for(Integer paaisou : personage){ String paai = paais.get(paaisou); System.out.print(paai+" "); } System.out.println(); } }