挺有意思的,队列,先进先出,排队进行!

简介:
/**
 * [Queue]
 * @param {[Int]} size [队列大小]
 */
function Queue(size) {
    var list = [];

    //向队列中添加数据
    this.push = function(data) {
        if (data==null) {
            return false;
        }
        //如果传递了size参数就设置了队列的大小
        if (size != null && !isNaN(size)) {
            if (list.length == size) {
                this.pop();
            }
        }
        list.unshift(data);
        return true;
    }

    //从队列中取出数据
    this.pop = function() {
        return list.pop();
    }

    //返回队列的大小
    this.size = function() {
        return list.length;
    }

    //返回队列的内容
    this.quere = function() {
        return list;
    }
}

这个类是核心!
项目中有个刷小礼物的功能,如果同时有多个人刷,就会出现乱七八糟的效果,没有秩序!
通过队列,就能很好的解决!

先定义一个全局队列!

var queue = new Queue(100);

当有礼物刷的时候,就将其存入队列当中!刷第一个礼物的时候,锁死!等第一个礼物刷完的时候,解锁!然后查询队列中是否还有未刷完的礼物,继续刷!

刷礼物,锁上!

queue.push(content); // 存入队列
if (big_gift_flag) {
    big_gift_flag = false;
    var pop = queue.pop();
    showAnim('big_gift_'+ pop.customer_id +'_'+pop.gift_id,pop.gift_id);
}

刷完,解锁!判断队列是否还有未刷的礼物!

big_gift_flag = true;
if (queue.quere().length > 0) {
    big_gift_flag = false;
    var pop = queue.pop();
    showAnim('big_gift_' + pop.customer_id + '_' + pop.gift_id, pop.gift_id);
}

很有意思,第一次使用了队列的思想!


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6710353.html,如需转载请自行联系原作者

相关文章
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
【NeurIPS'24】阿里云 PAI 团队论文被收录为 Spotlight,并完成主题演讲分享
12月10日,NeurIPS 2024在温哥华开幕,阿里云PAI团队论文《PertEval: Unveiling Real Knowledge Capacity of LLMs with Knowledge-Invariant Perturbations》入选Spotlight,PAI团队还进行了“可信AI的技术解读与最佳实践”主题演讲,展示AI工程化平台产品能力。
|
10月前
|
人工智能
SynCamMaster:快手联合浙大、清华等大学推出的多视角视频生成模型
SynCamMaster是由快手科技联合浙江大学、清华大学等机构推出的全球首个多视角视频生成模型,能够结合6自由度相机姿势,从任意视点生成开放世界视频。该模型通过增强预训练的文本到视频模型,确保不同视点的内容一致性,支持多摄像机视频生成,并在多个应用场景中展现出巨大潜力。
200 4
SynCamMaster:快手联合浙大、清华等大学推出的多视角视频生成模型
阿里云域名收费标准(com/cn等不同后缀价格表)
阿里云域名多少钱一年?阿里云域名价格?域名后缀不同新注册价格、续费价格及转入价格也不同
|
监控 安全 Cloud Native
分布式之彻底搞懂网关
《分布式》系列
2780 6
分布式之彻底搞懂网关
|
安全 Java
开发问题01:java.security.InvalidKeyException: Illegal key size
开发问题01:java.security.InvalidKeyException: Illegal key size
617 1
|
NoSQL 安全 JavaScript
Redis分布式锁故障
Redis分布式锁故障
Redis分布式锁故障
|
计算机视觉 智慧交通
智慧交通day02-车流量检测实现13:基于虚拟线圈法的车辆统计+视频中的车流量统计原理解析
虚拟线圈车辆计数法的原理是在采集到的交通流视频中,在需要进行车辆计数的道路或路段上设置一条或一条以上的检测线对通过车辆进行检测,从而完成计数工作。检测线的设置原则一般是在检测车道上设置一条垂直于车道线
756 0
|
XML Java 数据库连接
SpringBoot 整合 MyBatis-Plus
SpringBoot 整合 MyBatis-Plus,超详细史上最全。 MyBatisX插件的安装与使用。
695 0
SpringBoot 整合 MyBatis-Plus
|
机器学习/深度学习 前端开发 IDE
从阿里前端工程化中台实践,看中台建设的舍与得
近日,阿里巴巴高级前端技术专家朱华军(阿大)受 InfoQ 采访邀约,分享了阿里集团前端工程化中台的实践过程,以及实践背后的经验与思考。他在采访中强调,前端工程化一定是大趋势,但不建议大家盲目地追求工程化,对于大部分规模不大的前端团队而言,工程体系的建设和规范并不是当务之急。以下为采访问答实录。
3432 0
从阿里前端工程化中台实践,看中台建设的舍与得
|
程序员 C语言
Qt编写自定义控件60-声音波形图
一、前言 这个控件源自于一个音乐播放器,在写该音乐播放器的时候,需要将音频的数据转换成对应的频谱显示,采用的fmod第三方库来处理(fmod声音系统是为游戏开发者准备的革命性音频引擎,非常强大和牛逼),fmod负责拿到音频数据对应的采样频谱数据,然后传给这个控件进行绘制即可,本控件主需要专注于绘制即可,这样fmod对应封装的类专注于音频采集等处理,实现了隔离,修改和增加功能比较方便,声音波形图控件除了可以设置采样的深度以外,还支持三种数据样式展示,线条样式、柱状样式、平滑样式。
1968 0