击鼓传花小游戏

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

使用的队列(先进先出)

 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 @ 2021-07-30 14:17  邢韬  阅读(289)  评论(0编辑  收藏  举报