击鼓传花小游戏
围成一圈传花,传到某个位置时,淘汰这个人,最终留下者为胜利者
使用的队列(先进先出)
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 }