面試題--模擬鬥地主洗牌發牌看牌

問題

  • 模擬鬥地主洗牌發牌和看牌
  • 思路:
  1. 先構造一副撲克包括大小王
  2. 使用Collections.shuffle()實現洗牌
  3. 實現發牌利用Arraylist.add()
  4. 實現看牌功能

代碼


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

//模擬鬥地主洗牌發牌
public class MyTest05 {
    public static void main(String[] args){
//        組成puke
        ArrayList<String> pukers = new ArrayList<>();
        String[] colours={"♠","♦","♣","♥"};
        String[] nums={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
        for (String colour:colours){
            for (String num:nums){
                pukers.add(colour.concat(num));

            }
        }
        pukers.add("★");
        pukers.add("☆");
        System.out.println(pukers.toString());
//        洗牌
        Collections.shuffle(pukers);
//        Collections.shuffle(pukers);

//        發牌
        ArrayList<String> 大頭 = new ArrayList<>();
        ArrayList<String> 老王 = new ArrayList<>();
        ArrayList<String> 小王 = new ArrayList<>();
        ArrayList<String> 底牌 = new ArrayList<>();

        for (int i=0;i<pukers.size();i++) {
            if (i<pukers.size()-3) {
                if (i % 3 == 0) {
                    大頭.add(pukers.get(i));
                } else if (i % 3 == 1) {
                    老王.add(pukers.get(i));
                } else if (i % 3 == 2) {
                    小王.add(pukers.get(i));
                }
            }else {
                底牌.add(pukers.get(i));
            }
        }


//        看牌
        lookPuker("大頭",大頭);
        lookPuker("老王",老王);
        lookPuker("小王",小王);
        lookPuker("底牌",底牌);


//       看牌方法
    }
    private static void lookPuker(String name,ArrayList<String> lists){
        System.out.print(name+":\n");
        for (String list:lists){
            System.out.print(list+"  ");

        }
        System.out.println();
    }
}


結果輸出:
大頭:
♥Q ♦A ♠5 ♣3 ♥3 ♦Q ★ ♦K ♥9 ♠Q ♦6 ♦8 ♥7 ♠10 ☆ ♦7 ♥8
老王:
♦5 ♣Q ♣10 ♠2 ♥5 ♥4 ♠J ♠K ♠6 ♦3 ♠A ♦4 ♣2 ♣4 ♣A ♦2 ♥A
小王:
♣9 ♣7 ♠3 ♥6 ♣J ♣8 ♦9 ♣5 ♠8 ♥10 ♦10 ♣K ♥2 ♦J ♥J ♠9 ♥K
底牌:
♠4 ♣6 ♠7

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章