我必须制作一个游戏,其中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
答案 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()