1. 程式人生 > >【java學習筆記】模擬鬥地主功能

【java學習筆記】模擬鬥地主功能

模擬鬥地主的功能:1.組合牌 2.洗牌 3.發牌 4.看牌,目的是溫習回顧一下java集合框架的應用。

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
public class Poker {
    public static void main(String[] args) {
        /*
         * 1.組合牌 建立Map集合,key是編號,value是牌
         */
        HashMap<Integer, String> poker = new
HashMap<Integer, String>(); /* 建立List集合儲存編號 */ ArrayList<Integer> pokerNumber = new ArrayList<Integer>(); /* 定義13個點數的陣列 */ String[] figures = { "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3" }; /* 定義4個花色的陣列 */ String[] colors
= { "♥", "♠", "♦", "♣" }; /* 定義整數變數,作為key */ int index = 2; /* 遍歷陣列,將花色和點數的組合儲存到Map集合中 */ for (String figure : figures) { for (String color : colors) { poker.put(index, figure + color); pokerNumber.add(index); index
++; } } /* 儲存大小王 */ poker.put(0, "大王"); pokerNumber.add(0); poker.put(1, "小王"); pokerNumber.add(1); /* 洗牌:將牌的序號打亂 */ Collections.shuffle(pokerNumber); /* 發牌:將牌編號,發給玩家集合,底牌集合 */ ArrayList<Integer> playerA = new ArrayList<Integer>(); ArrayList<Integer> playerB = new ArrayList<Integer>(); ArrayList<Integer> playerC = new ArrayList<Integer>(); ArrayList<Integer> bottom = new ArrayList<Integer>(); /* 發牌:集合索引%3 */ for (int i = 0; i < pokerNumber.size(); i++) { /* 先存底牌 */ if (i < 3) { bottom.add(pokerNumber.get(i)); } else if (i % 3 == 0) { /* 發給玩家A */ playerA.add(pokerNumber.get(i)); } else if (i % 3 == 1) { /* 發給玩家B */ playerB.add(pokerNumber.get(i)); } else if (i % 3 == 2) { /* 發給玩家C */ playerC.add(pokerNumber.get(i)); } } /* 對玩家集合的編號進行排序 */ Collections.sort(playerA); Collections.sort(playerB); Collections.sort(playerC); /* 看牌 */ look("小莉", playerA, poker); look("小涵", playerB, poker); look("小琳", playerC, poker); look("底牌", bottom, poker); } /** * 看牌:將玩家集合中的編號作為key,去poker集合中查詢value */ public static void look(String name, ArrayList<Integer> player, HashMap<Integer, String> poker) { /* 遍歷ArrayList集合,獲取值作為key,到集合Map中查詢Value */ System.out.print(name + ":"); for (Integer key : player) { String value = poker.get(key); System.out.print(value + " "); } System.out.println(); } }