JavaScript队列结构——击鼓传花游戏

//队列类
function Queue(){this.items = []//将元素添加到队列中Queue.prototype.enqueue = function(item){this.items.push(item)}//从队列中删除前端元素Queue.prototype.dequeue = function(){return this.items.shift()}//查看前端元素(不改变原队列)Queue.prototype.front = function(){return this.items[0]}//查看队列是否为空Queue.prototype.isEmpty = function(){return this.items.length == 0}//查看队列中元素个数Queue.prototype.size = function(){return this.items.length}//toString方法Queue.prototype.toString = function(){return this.items.join(' ')}
}/*
击鼓传花游戏,玩家按顺序从1开始数数,数到指定的num时出局
剩下的玩家接着重新从1开始数数
最后剩下的玩家获胜
*/
function passGame(players , num){//创建队列对象const queue = new Queue()//将所有玩家添加进队列players.forEach(item => {queue.enqueue(item)})//判断剩余玩家数量,剩余数量为1时结束游戏//最后剩下的玩家为获胜者while(queue.items.length > 1){//下标从0开始,每轮循环num-1次//已经数过数并且数的数不是num的玩家,从队列首端移到尾端for (let i = 0; i < num - 1; i++){queue.enqueue(queue.dequeue())}//循环结束后,淘汰数到num的玩家queue.dequeue()}//返回结果const winner = queue.front()console.log('获胜者为:' + winner)return winner
}

JavaScript队列结构——击鼓传花游戏相关推荐

  1. JavaScript通过队列和双端队列实现击鼓传花游戏

    游戏规则: 民间击鼓传花游戏,也称传彩球.数人.十数人或数十人围成一个圆圈,把花尽快地传递给旁边的人.某一时刻传花停止,这个时候花在谁手里,谁就退圈.结束游戏.重复该过程,直到只剩一个人(胜利者). ...

  2. JS使用普通队列实现击鼓传花游戏

    最近复习到了数据结构中的普通队列部分,来实现一个击鼓传花游戏的应用. 循环队列的一个例子就是击鼓传花(hot potato),在这个游戏中,孩子们围成一个圆圈,把花尽快地传递给旁边的人.某一时刻传话停 ...

  3. javascript——队列(击鼓传花)

    队列(FIFO)规则:先进先出 击鼓传花游戏规则: 所有的人围成一个圈,规定一个数字,从第一个人的名字开始数,数到谁就淘汰谁,最后剩下的人获胜. 代码: <!DOCTYPE html> & ...

  4. 前端用队列实现击鼓传花游戏

    // 封装队列(基于数组) class Queue {// 属性items = [];// 方法// 1.将元素加入到队列中enqueue(element: any) {this.items.push ...

  5. 利用JS实现循环队列--击鼓传花游戏

    由于队列经常被应用在计算机领域和我们的现实生活中,就出现了一些队列的修改版,其中一种叫做循环队列. 循环队列的一个例子就是击鼓传花游戏. 在这个游戏中,孩子们围成一个圆圈,把花尽快的传递给旁边的人.某 ...

  6. 三、队列:优先队列+循环队列(击鼓传花算法)

    队列: 队列是遵循FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序的项.队列在尾部添加新元素,并从顶部移除元素.最新添加的元素必须排在队列的末尾. 在现实中, ...

  7. 数据结构--队列--js击鼓传花算法实现

    击鼓传花游戏 原游戏规则: 班级中玩一个游戏,所有学生围成一圈,从某位同学手里开始向旁边的同学传一束花. 这个时候某个人(比如班长),在击鼓,鼓声停下的一刻,花落在谁手里,谁就出来表演节目 一般在编程 ...

  8. 用队列解决击鼓传花算法题

    题目: 标号为0~6的6个小朋友围成一圈,开始数数,数到数字5的人自动淘汰,不断循环,剩下的最后一个人胜利. 问:最后胜利的人是谁? 解析: 将这6个学生放入队列中,每个人报一个数的同时出队,并重新进 ...

  9. java击鼓传花游戏list_集体互动游戏《击鼓传花游戏》

    一.游戏道具: 鼓或音乐(音响与手机播放).花(可其他物品代替) 二.参加人员: 集体参加 三.游戏规则: 击鼓传花游戏规则都是有哪些?首先大家要围着坐成一圈,本来是要打鼓的可是我们没有鼓,只好就地取 ...

最新文章

  1. 数据变金矿:一文读懂序列模型(附用例)
  2. 【bzoj3150】 cqoi2013—新Nim游戏
  3. 独家 | 避免神经网络过拟合的5种技术(附链接)
  4. 在没有任何数据时进行无效的读取尝试。_技术转载——JVM运行时内存是怎么分布的?...
  5. 数组的定义格式三_省略的静态初始化
  6. C语言 指针和数组区别 - C语言零基础入门教程
  7. 那些实用的Nginx规则
  8. [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能
  9. Form 表单提交参数
  10. 一套SpringBoot+VUE全平台支付系统源码
  11. 软考真题答案-2021年11月系统集成项目管理工程师上午题(一)
  12. AI 智能头像生成神器|PhotoShot
  13. MySQL-数据表创建命令
  14. AI 智能修复老照片,效果惊艳到我了!| 附代码
  15. 小米8 twrp recovery_小米手机机型怎么刷入脸谱Magisk模块详细教程
  16. NOSQL,MongoDB分布式集群架构
  17. 由 Microsoft 或 IP 网关供应商伙伴测试过的 PBX 配置
  18. 阿里云OSS配合PicGo搭建图床
  19. 传送带效果实现 | Unity
  20. 笨办法学python3 学习笔记 习题20-21

热门文章

  1. scrapy-redis分布式爬虫全站爬取顶点小说网
  2. 【JavaScript-17】BOM-04 获取页面宽高、盒子宽高
  3. gson解析字符串中带引号
  4. html文字破碎特效,CSS3黑镜破裂文本效果
  5. 自学JavaScript的几个例子
  6. 什么是外汇?怎么玩?炒外汇能赚钱吗?
  7. 软件测试中银行贷款项目流程
  8. ASP.NET Core Filter
  9. 海浪相关术语波高、浪高等
  10. oracle到神通,我的ORACLE笔记(三)