A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 周龙剑 于 2018-7-26 15:00 编辑

斗地主的发牌代码

[AppleScript] 纯文本查看 复制代码
[/align]
[align=left]public class Test2{[/align]
[size=3]    public static void main(String[] args) {   定义静态的main方法
        ArrayList<String> pokerBox=new ArrayList<>();  定义54张牌的集合对象
        ArrayList<String> colors=new ArrayList<>();       定义纸牌中的花色的集合对象
        ArrayList<String> numbers=new ArrayList<>();   定义每种花色中相同数字的集合对象    定义对象是为了更好的添加元素和调用,因为集合中可以存储不同类型的元素[/size][size=3]        colors.add("♥");
        colors.add("♦");
        colors.add("♠");
        colors.add("♣");
        for (int i = 1; i <= 13; i++) { 定义for循环,每循环一次,都会往集合添加一次元素,因为往集合中添加元素,一次只能添加一个
            numbers.add(i+"");
        }

numbers.add("J");
        numbers.add("Q");
        numbers.add("K");
        numbers.add("A");

        for (String color : colors) {    定义嵌套循环,将数字和花色的集合集合到54张纸牌集合中
            for (String number : numbers) {
                String card=color+number;
                pokerBox.add(card);
            }
        }
        pokerBox.add("大王");
        pokerBox.add("小王");最后添加2个特殊纸牌到54张纸牌集合中
        Collections.shuffle(pokerBox); Collections中的方法,用于打算集合中的元素0
        ArrayList<String> player1=new ArrayList<>();  定义玩家对象集合
        ArrayList<String> player2=new ArrayList<>();
        ArrayList<String> player3=new ArrayList<>();
        ArrayList<String> diPai=new ArrayList<>();定义底牌对象
        for (int i = 0; i < pokerBox.size(); i++) {  定义for循环,模拟发牌的动作,
            String card=pokerBox.get(i);                 每递进一个数字,就从纸牌集合中拿出来一张牌
            if(i>=51){                                             如果纸牌剩余3张是,作为底牌
                diPai.add(card);
            }else if(i%3==0){                                  如果不是剩余3张,就三个人轮流拿牌
                player1.add(card);                                并将拿到的牌添加到各自的对象集合中
            }else if(i%3==1){
                player2.add(card);
            }else{
                player3.add(card);
            }
        }
        System.out.println("令狐冲"+player1);     打印他手的牌的集合
        System.out.println("任盈盈"+player2);     [/size][size=3]打印她手的牌的集合[/size][size=3]
        System.out.println("岳灵姗"+player3);     [/size][size=3]打印她手的牌的集合[/size][size=3]
        System.out.println("底牌"+diPai);            打印底牌的集合
    }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马