阅读送书抽奖?玩转抽奖游戏,js-tool-big-box工具库新上抽奖功能

先讨论一个问题,你做软件工作是为了什么?从高中选专业,就喜欢上了软件开发?还是当初毕业不知道干啥,不喜欢自己的专业,投入软件开发的怀抱?还是干着干着别的,突然觉得互联网行业真不赖,然后学了学,开始了软件开发生涯?

目录

1 你真的很喜欢软件开发工作吗?

2  我开发的一个好玩的JS工具

3 功能介绍

4 工具使用

4.1 引入工具包

4.2 定义备选人员名单 

4.3  调用抽奖方法

4.4 使用方法总结


1 你真的很喜欢软件开发工作吗?

那么你喜欢自己的职业吗?热爱吗?哈哈,是不是灵魂拷问。思考这个问题很简单,试想一下,你上班时间除了开发,摸鱼时间在干什么?下了班,你在做什么?遇到外面的事物,你是否会用互联网思维,或者用你的软件思维去思考这件事呢?如果你觉得自己有钱有闲了,你会不会通过自己的本职工作去出发,展开一些事情呢?还是另辟蹊径,觉得自己开个店更合适,完全抛却了自己的本职软件行当?思考清了这些事情,你应该就明白,自己是不是真的很喜欢自己的软件开发工作了。

2  我开发的一个好玩的JS工具

先抛开上面那个灵魂拷问,我发现大家都在CSDN上阅读送书,这个活动挺好的,既使得自己的博客撰写更有动力,又帮助图书作者做了推广,而且帮助自己的粉丝们赢得了福利,最重要的是,大家都开心了。人或者嘛,开心最重要哇!对吧。武大郎如果当初可以好好的和西门庆聊一聊,哪会有那么多事呢。

等活动结束了,大家会给粉丝送书,如果这个时候,可以有个抽奖工具,就像每周一三六摇奖那样的工具,那该有多完美。我曾经好多次,盯着屏幕上的摇奖直播视频,看啊看,然后关掉视频,我不禁感叹,这个摇奖工具真是差劲,摇不到我的心坎上呢咋就。

所以,看见大家送书,我就心头一热,在 js-tool-big-box 这个npm工具包上,新增了一个抽取幸运读者的功能。

3 功能介绍

  1. 我们先获取备选用户名单,这里可以简单做一个字符串,或者数组数据,把用户名单加进去;
  2. 这样就可以获取备选名单人数,有了人数,就可以从人数中得到一个随机值,取出这个随机值;
  3. 如果只是从中获取1个幸运读者,就这结束了;
  4. 如果需要获取多个,那么就需要把这个幸运读者从数组中删除,继续寻找剩余读者中的随机值;
  5. 这样遍历几遍,就取到了需要个数的幸运读者;

4 工具使用

4.1 引入工具包

执行安装命令

npm i js-tool-big-box

项目中引入,对于抽奖功能,工具中提供了 dataBox 的对象,可供调用

import { dataBox } from 'js-tool-big-box';

4.2 定义备选人员名单 

例如我们设定一个40人的备选名单,然后为了界面好看,我们还添加了幸运读者的变量,下面的代码一看就是vue写法,对吧

data () {
    return {
      people: '张三0, 张三1, 张三2, 张三3, 张三4, 张三5, 张三6, 张三7, 张三8, 张三9, 张三10, 张三11, 张三12, 张三13, 张三14, 张三15, 张三16, 张三17, 张三18, 张三19, 张三20, 张三21, 张三22, 张三23, 张三24, 张三25, 张三26, 张三27, 张三27, 张三29, 张三30, 张三31, 张三32, 张三33, 张三34, 张三35, 张三36, 张三37, 张三38, 张三39, 张三40',
      luckPeople: [],
    }
  },

4.3  调用抽奖方法

抽奖功能方法名是luck,这是属于dataBox对象下的一个方法,

this.luckPeople = dataBox.luck(peopleData, 3);

4.4 使用方法总结

方法名返回值入参
luck根据第二个入参返回幸运获奖者

第一个参数必填,表示所有备选用户名单,传入的是一个数组;

第二个参数必填,表示需要从中选取几个幸运者

  • 76
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 85
    评论
编写go-cqhttp插件需要使用go语言,以下是一个简单的示例代码,你可以参考一下: ```go package main import ( "github.com/Mrs4s/go-cqhttp-sdk/cqp" "github.com/Mrs4s/go-cqhttp-sdk/cqp/app" "math/rand" "time" ) func main() { // 初始化应用 app.New("com.example.myapp") // 注册抽奖命令 cqp.AddCommand("抽奖", func(ctx *cqp.PrivateMessageContext) { // 生成随机数 rand.Seed(time.Now().UnixNano()) result := rand.Intn(100) + 1 // 发送中奖提示 if result <= 10 { ctx.Reply("恭喜你中奖了!") } else { ctx.Reply("很遗憾,没有中奖。") } }) // 注册投票命令 cqp.AddCommand("投票", func(ctx *cqp.PrivateMessageContext) { // 获取投票选项 options := ctx.Message[3:] // 初始化投票结果 result := make(map[string]int) // 发送投票提示 ctx.Reply("请投票,选项为:" + options) // 监听群聊消息,统计投票结果 handler := func(ctx *cqp.GroupMessageContext) { // 判断是否为投票消息 if !ctx.IsReply() || ctx.ReplyMessage == nil || ctx.ReplyMessage.GroupID != ctx.GroupID { return } // 获取投票选项 option := ctx.ReplyMessage.RawMessage[3:] // 统计投票结果 if _, ok := result[option]; ok { result[option]++ } else { result[option] = 1 } } cqp.OnGroupMessage(handler) // 等待一段时间后发送投票结果 time.Sleep(30 * time.Second) msg := "投票结果为:\n" for option, count := range result { msg += option + ":" + string(count) + "\n" } ctx.Reply(msg) }) // 运行应用 app.Run() } ``` 在上面的代码中,我们使用了go-cqhttp-sdk来编写go-cqhttp插件。我们注册了两个命令,分别是抽奖和投票。当用户在群聊中输入抽奖命令时,插件会生成一个随机数,并根据随机数判断是否中奖;当用户在群聊中输入投票命令时,插件会根据用户输入的选项进行投票,并在一定时间后统计投票结果并发送到群聊中。 你可以根据自己的需求修改命令的名称、消息内容、投票选项等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 85
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

经海路大白狗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值