击鼓传花小游戏

围成一圈传花,传到某个位置时,淘汰这个人,最终留下者为胜利者

使用的队列(先进先出)

复制代码
 1 function hotPotato(elementList, num){
 2     /*
 3      * elementList 参与人员(数组)
 4      * num 淘汰位置
 5      */
 6     const queue = new Queue()   // 创建队列
 7     const elimitatedList = []   // 淘汰名单
 8     for(let i = 0; i <elementList.length; i++){
 9         // 将参与人员导入队列
10         queue.enqueue(elementList[i])
11     }
12     while(queue.size()>1){
13         for(let i = 0; i < num; i++){
14             // 击鼓传花,第一个人拿到花,传给第二个人,删除第一个人,加到最后一位,以此类推
15             queue.enqueue(queue.dequeue())
16         }
17         elimitatedList.push(queue.dequeue())    // 淘汰的人加入淘汰名单中
18     }
19     return {
20         "elimitated": elimitatedList,
21         "winner": queue.dequeue()
22     }
23 }
复制代码

 

posted @   邢韬  阅读(301)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
点击右上角即可分享
微信分享提示