按照斗地主的规则,完成洗牌发牌的动作。 具体规则: 使用 54 张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人 17 张牌,最后三 张留作底牌。


package day_02_Demo.pokerDemo;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

//按照斗地主的规则,完成洗牌发牌的动作。 具体规则:
//使用 54 张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人 17 张牌,最后三
//张留作底牌。
public class Poker {
    public static void main(String[] args) {
//  准备牌:
//创建三个集合分别是:扑克箱pokerBox,扑克花色colors,扑克数字numbers
        ArrayList<String> pokerBox = new ArrayList<>();
        Collection<String> colors = new ArrayList<>();
        Collection<String> numbers = new ArrayList<>();

        colors.add("♠");
        colors.add("♥");
        colors.add("♦");
        colors.add("♣");
        for (int i = 2; i <=10 ; i++) {
            numbers.add(i+"");//注意拼接
        }
        numbers.add("A");
        numbers.add("J");
        numbers.add("Q");
        numbers.add("K");
        //添加大王,小王
        pokerBox.add("大王");
        pokerBox.add("小王");
        //拼接花色和数字,
//        System.out.println(colors);
//        System.out.println(numbers);
        for (String color:colors ) {
            for (String number:numbers ) {
                String s = color+number;
                pokerBox.add(s);
            }
        }
        System.out.println(pokerBox);
        //打乱扑克牌:洗牌
        Collections.shuffle( pokerBox);
        System.out.println(pokerBox);
//• 发牌
//将每个人以及底牌设计为 ArrayList,将最后 3 张牌直接存放于底牌,剩余牌通过对3 取模依次发牌。
        //创建三个玩家player,和底牌
        Collection<String> player1 = new ArrayList<>(); 
        Collection<String> player2 = new ArrayList<>(); 
        Collection<String> player3 = new ArrayList<>(); 
        Collection<String> diPai = new ArrayList<>();

        //遍历扑克箱pokerBox
        for (int i = 0; i <pokerBox.size() ; i++) {
            //获取牌面
//            String card = (String) ((List<?>) pokerBox).get(i);
            String card = pokerBox.get(i);
            if (i >=51) {
                diPai.add(card);
            }else if (i%3 == 0){
                player1.add(card);
            }else if (i%3 == 1){
                player2.add(card);
            }else {
                player3.add(card);
            }
        }


//• 看牌
//直接打印每个集合。
        System.out.println("tom:"+player1);
        System.out.println("JACK:"+player2);
        System.out.println("LILI:"+player3);
        System.out.println("tom:"+diPai);
    }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM