实施具有多个回合和玩家的简单游戏

时间:2019-01-19 16:16:00

标签: python python-3.x

我必须制作一个游戏,其中n个人扮演子手,并且游戏保持结果,如果他们赢得了本轮比赛,那么他们继续进行下去,直到只剩下一个玩家(该玩家获胜)或一个玩家剩下(无人获胜) 。我的子手代码已准备就绪,因此不需要任何有关hangman函数的内容。但是,我需要一些帮助来使函数执行以下操作:

1)询问要玩多少玩家

2)询问他们的名字并将其存储

3)进行第一轮比赛,如果hangman()== True(表示该球员获胜),则该球员进入下一轮比赛,否则不参加

4)如果有人获胜,那么我们就有赢家,比赛结束

我已经做过游戏,要求玩家人数,要求他们的名字,然后让他们玩。我的hangman()函数返回True或False。但是,看来我有问题。每次玩家玩游戏时,hangman()函数都会运行两次。我不知道为什么会这样。我需要一些帮助修复该问题,并写出每局进行比赛的部分。

def game():
    players_dict={}
    results=[]
    num_of_players=int(input('How many players will play? '))
    for i in range(1,num_of_players+1):
        a=input('Give the name of Player {}: '.format(i))
        players_dict['Player {}'.format(i)]=a
    for i in range(1,num_of_players+1):
        print(players_dict['Player {}'.format(i)])
        hangman()
        if hangman()==False:
            results+=False
        else:
            results+=True

1 个答案:

答案 0 :(得分:1)

您需要做的就是摆脱第一个hangman()呼叫:

...
for i in range(1, num_of_players + 1):
    print(players_dict['Player {}'.format(i)]
    if hangman() is False:
        results += False
    else:
        results += True

如果您需要保留返回的值,请事先将其分配给变量:

...
r = hangman()
if r is False:
    results += False
else:
    results += True

此外,您可以通过编写以下代码(假设您不保留结果)来简化此代码:

results += hangman()