【Java学习笔记】模拟微信拼手气红包的案例

这篇Java学习笔记介绍了如何模拟微信拼手气红包的案例,包括红包金额的随机生成算法,以及如何实现用户发红包和抢红包的功能。作者创建了User类,包含发普通红包和拼手气红包的方法,并使用for循环和ArrayList进行固定轮数的发/抢操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Java学习笔记】模拟微信拼手气红包的案例

参考百度文库:微信红包随机金额生成算法模拟及应用中关于微信拼手气红包随机算法的叙述。

Java SE已经粗略的学习了一遍,我对其中的微信红包模拟颇感兴趣,今天花时间实现了均等金额的普通红包及随机金额的拼手气红包,明天继续围绕红包案例,讨论两种常见的玩法。

我编写了一个User类,这个类中含有2个私有字段,其中用分表示钱的数量:

	private String name;
	//用分来表示钱,避免使用浮点类型表示
	private int moneyCountByCents;

这个类中含有一个私有方法,用于将用分表示的钱转换为用元表示:

//用于返回字符串类型的,用元表示的钱数,一直精确2位小数的私有方法
    private String turnYuan(int moneyCountByCents) {
   
        String str = new String();
        str += (moneyCountByCents/100);
        str += ".";
        str += (moneyCountByCents%100/10);
        str += (moneyCountByCents%10);
        return str;
    }

设定User类的对象,既能发红包,也能抢红包。其中红包类型又分为普通红包与拼手气红包。

首先是发普通红包的方法:

//用于发普通红包的方法
    public ArrayList<Integer> sendUsualRedPacket(int num,int moneyCountByCents) {
   
        ArrayList<Integer> redPacket = new ArrayList<>();
        //一个判断,如果User要发的红包总金额大于自己剩余的钱,那么就把红包总金额赋值为自己剩余的钱
        //如果User要发的红包总金额大于自己剩余的钱,那么就把红包总金额赋值为自己剩余的钱
        //如果User要发的红包总金额大于自己剩余的钱,那么就把红包总金额赋值为自己剩余的钱
        if (this.moneyCountByCents >= moneyCountByCents) {
   
            this.moneyCountByCents -= moneyCountByCents;
        }else if (this.moneyCountByCents < num){
   
            System.out.println(this.name + "现在只有"
                    + turnYuan(this.moneyCountByCents)
                    + "元钱,已经没法给在座的各位发红包了。");
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值