评论

#小程序云开发挑战赛#-红小包抽奖-赞过

「红小包抽奖」是一款模拟微信红包的数字抽奖小程序,无需花钱,可绑定多个微信群,可切换排序:手气最佳、手气最差、手速最快。

「红小包抽奖」是一款模拟微信红包的数字抽奖小程序,无需花钱,可绑定多个微信群,可切换排序:手气最佳、手气最差、手速最快。

  

说一下应用场景。

如果你有加入一些商家群,那应该经常会看到商家在群里发红包,然后说手气最佳送一个啥啥啥,也有商家会挑手气最差的。

这里有几个小问题。

  1. 如果要找手气最差的,不太好找,尤其人多的时候。
  2. 如果要找手气最佳前几名,或者手气最差后几名,也都不太好找,因为不可以切换排序。
  3. 如果我想一个红包让多个群的人一起来抢,好像也还没办法实现。

「红小包抽奖」解决了以上问题,可以切换排序方式,可以绑定多个群。

当然也可以不绑定群,比如你是写公众号的,那就不用绑定群,公开,所有人都可以来抢。

还有一点很重要,就是不需要真的往红包里塞钱。这其实就是一个模拟微信红包的数字游戏。因为很多人玩微信红包抽奖,关键点还是在“抽奖”,而不是“红包”,金额也不会太大。不过在这款小程序里,没人可以拦住你的任性,发一个亿太简单。

以下是小程序的功能介绍视频。


特别感谢 Neo 老师给了我灵感,才有了这款小程序。Neo 是我的用户,给了我很多建议和帮助。之前做的一个“翻牌抽奖”的小程序,他使用时遇到一个 bug,我们聊的时候,Neo 说,其实直接用微信红包在群里抽奖,感觉效果也还不错。他这句听似不经意的话,刹那间给了我灵感,几天之后就开始付诸行动,花了三周时间,有了现在这款「红小包抽奖」,再次感谢 Neo!

这款小程序已经发布,不过版本是 1.0.0。后面改了几个 bug,作了一些优化,但是没有通过审核,原因是红包类目下架了,可能在作规则修改,也不知道哪天会再次开放。如果不再开放红包类目,那这个 v1.0.0 估计是绝版了。

祝你玩得开心!

最后一次编辑于  2020-09-20  
点赞 9
收藏
评论

2 个评论

  • 朱高
    朱高
    2020-09-17

    有同学好奇红包金额的随机算法,这里分享一下:

    const fixFloatNumber = (num = 0) => {
      const decimal = String(num).split('.')[1]
      let newNum = num
      if (decimal && decimal.length > 2) {
        newNum = parseFloat(parseFloat(num).toFixed(2))
      }
      return newNum
    }
    
    const randomMoney = (infoData) => {
      const { usableMoney = 0, stock = 0, soldNum = 0 } = infoData
      const usableStock = stock - soldNum
      const averageMoney = usableMoney / usableStock
      const stockRatio = soldNum / stock
      let coeff = 1 + stockRatio
    
      // 前面和后面的红包,随机数的最大值会比中间部分的红包要小一些,避免前面的红包金额大概率偏大(尤其是第一个),也避免后面的红包金额大概率偏小(尤其是最后一个)。
      if (stockRatio < 0.1 || stockRatio > 0.9) {
        coeff = 1.3
      } else if (stockRatio < 0.2 || stockRatio > 0.8) {
        coeff = 1.4
      } else if (stockRatio < 0.3 || stockRatio > 0.7) {
        coeff = 1.5
      } else {
        coeff = 1.6
      }
    
      const minMoney = averageMoney / 2
      const maxMoney = averageMoney * coeff
    
      let luckyMoney
    
      if (usableStock === 1) {
        luckyMoney = usableMoney
      } else {
        luckyMoney = Math.round(((Math.random() * (maxMoney - minMoney)) + minMoney) * 100) / 100
      }
    
      return fixFloatNumber(luckyMoney)
    }
    


    2020-09-17
    赞同 3
    回复
  • 青寒
    青寒
    2020-09-24

    这个弄好了可玩性会很强。

    2020-09-24
    赞同 1
    回复 3
    • 朱高
      朱高
      2020-09-24
      列了一些后续待开发功能,挺好玩的,只等红包类目重新开放。
      2020-09-24
      1
      回复
    • 刘洋(论文辅导+PPT)
      刘洋(论文辅导+PPT)
      2020-09-26回复朱高
      企业好像可以发啊
      2020-09-26
      回复
    • 朱高
      朱高
      2020-09-26回复刘洋(论文辅导+PPT)
      发不了,类目已经下架,在社交大类里已经看不到红包了,估计在整改。
      2020-09-26
      回复
登录 后发表内容