用JAVA程序实现模拟洗牌与发牌的过程

这篇博客展示了如何使用Java的ArrayList存储和操作扑克牌,通过定义花色和数字创建扑克牌列表,然后利用Collections.shuffle进行洗牌。程序随机分配三张底牌,并依次给三位用户发牌,每次运行都会产生不同的发牌结果,体现了ArrayList和Collections.shuffle方法在游戏编程中的应用。
摘要由CSDN通过智能技术生成

今天也是混日子的一天

这段代码模拟了扑克牌发牌与洗牌的过程,重点在于用ArrayList存储扑克牌

代码如下

package itheima_03;
//导工具包
import java.util.ArrayList;
import java.util.Collections;
//定义扑克类
public class PokerDemo {
    public static void main(String[] args) {
//        创建扑克列表,泛型为字符串型
        ArrayList<String> poker = new ArrayList<>();
//        定义花色
        String[] colors = {"♣", "♠", "♥", "♦"};
//        定义数字
        String[] numbers = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
//        将花色与数字拼接起来放到扑克列表中
        for (int i = 0; i < colors.length; i++) {
            for (int j = 0; j < numbers.length; j++) {
                poker.add(colors[i] + numbers[j]);
            }
        }
//        向扑克列表中添加大小王
        poker.add("大王");
        poker.add("小王");
//洗牌,利用Collections类的shuffle方法
        Collections.shuffle(poker);
//        创建用户列表与底牌列表
        ArrayList<String> user1 = new ArrayList<>();
        ArrayList<String> user2 = new ArrayList<>();
        ArrayList<String> user3 = new ArrayList<>();
        ArrayList<String> left = new ArrayList<>();
//取出三张牌放进底牌列表中
        for (int i = 0; i < 3; i++) {
            left.add(poker.get(i));
            poker.remove(i);
        }
//向用户发牌
        for (int i = 0; i < poker.size(); i++) {
            if (i % 3 == 0) {
                user1.add(poker.get(i));
            } else if (i % 3 == 1) {
                user2.add(poker.get(i));
            } else if (i % 3 == 2) {
                user3.add(poker.get(i));
            }
        }
//        遍历用户的牌和底牌,打印结果
        System.out.println("用户1的牌是:"+user1);
        System.out.println("用户2的牌是:"+user2);
        System.out.println("用户3的牌是:"+user3);
        System.out.println("底牌是:"+left);
    }
}


结果如下

由于存在Collections类的Shuffle方法,每次发牌的结果不同,我们可以多运行几次得到完全不一样的结果
结果1:
在这里插入图片描述
结果2:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白开水就盒饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值