Java案例之鬥地主

Java案例之鬥地主

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

public class PokerGame {
    public static void main(String[] args) {
        //1.準備顏色
        ArrayList<String> color = new ArrayList<>();
        //2.樣式
        color.add("♥");
        color.add("♠");
        color.add("♦");
        color.add("♣");
        //3.數字
        ArrayList<String> number = new ArrayList<>();
        for (int i = 2; i <= 10; i++) {
            number.add(i + "");//將數字類型轉換成字符串類型
        }
        number.add("J");
        number.add("Q");
        number.add("K");
        number.add("A");

        //定義一個雙列集合map 用於將色號與牌號連接在一起
        HashMap<Integer, String> map = new HashMap<>(); //integer代表的是鍵 string代表的是值
        //定義一個紙牌的編號
        int index = 0;
        for (String thisNumber : number) {
            for (String thisColor : color) {
                map.put(index++, thisColor + thisNumber);
            }
        }
        map.put(index++, "大😊");
        map.put(index++, "小😊");
        System.out.println(map);

        System.out.println("*************************************************************************************************");
        ArrayList<Integer> cards = new ArrayList<>();
        for (int i = 0; i <= 53; i++) {
            cards.add(i);//0到53按順序排列
        }
        //洗牌後
        System.out.println("默認:" + cards);
        Collections.shuffle(cards);
        System.out.println("洗牌後:" + cards);

        //創建三個玩家和底牌
        ArrayList<Integer> player1 = new ArrayList<>();
        ArrayList<Integer> player2 = new ArrayList<>();
        ArrayList<Integer> player3 = new ArrayList<>();
        ArrayList<Integer> undercards = new ArrayList<>();

        for (int i = 0; i < cards.size(); i++) {
            if (i >= 51) {
                //3張底牌
                undercards.add(cards.get(i));
            } else {
                //3個人平分
                if (i % 3 == 0) {
                    player1.add(cards.get(i));
                } else if (i % 3 == 1) {
                    player2.add(cards.get(i));
                } else{
                    player3.add(cards.get(i));
                }
            }
        }
        System.out.println("玩家1" + player1);
        System.out.println("玩家2" + player2);
        System.out.println("玩家3" + player3);
        //對每一個玩家手中的poker進行排序
        Collections.sort(player1);
        Collections.sort(player2);
        Collections.sort(player3);
        Collections.sort(undercards);
        System.out.println("---------------------以下是洗牌後的效果哦!-------------------------");
        System.out.println("玩家1" + player1);
        System.out.println("玩家2" + player2);
        System.out.println("玩家3" + player3);
        System.out.println("底牌" + undercards);

        //變牌
        ArrayList<String> splayer1 = new ArrayList<>();
        ArrayList<String> splayer2 = new ArrayList<>();
        ArrayList<String> splayer3 = new ArrayList<>();
        ArrayList<String> sundercards = new ArrayList<>();
            for (Integer key1 : player1) {
                    splayer1.add(map.get(key1));
                }

            for (Integer key2 : player2) {
                    splayer2.add(map.get(key2));
                }

            for (Integer key3 : player3) {
                    splayer3.add(map.get(key3));
                }

            for (Integer key4 : undercards) {
                    sundercards.add(map.get(key4));
                }

            System.out.println("小強:" + splayer1);
            System.out.println("小紅:" + splayer2);
            System.out.println("小光:" + splayer3);
            System.out.println("底牌:" + sundercards);
        }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章