欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

约瑟夫环(高级版)

程序员文章站 2022-06-26 18:07:05
约瑟夫环(高级版)def move(players,step): # 移动step前的元素到列表末尾 num = step - 1 while num > 0: tmp = players.pop(0) players.append(tmp) num = num - 1 return players #根据step做了元素的移动def play(players,step,alive): #生成一个列表,从[1,...

约瑟夫环(高级版)

def move(players,step):
    # 移动step前的元素到列表末尾
    num = step - 1
    while num > 0:
        tmp = players.pop(0)
        players.append(tmp)
        num = num - 1
    return players #根据step做了元素的移动
def play(players,step,alive):
    #生成一个列表,从[1,....,players]
    list1 = [i for i in range(1,players+1)]
    # 进入游戏的循环,每次数到step淘汰,step之前的元素移动到列表末尾
    #游戏结束的条件:列表的剩余人数小于alive
    while len(list1) > alive:
            list1 = move(list1,step)
            list1.pop(0) #此时的step的元素在列表第一个位置,使用pop(0)从列表中删除
    return list1
players_num = int(input("请输入参加游戏的人数:"))
step_num = int(input("请输入淘汰的数字:"))
alive_num = int(input("请输入幸存人数:"))
alive_list =play(players_num,step_num,alive_num)
print(alive_list)     

本文地址:https://blog.csdn.net/AX400/article/details/110181848

相关标签: python 游戏