我是一个菜鸟,正在制作Yahtzee游戏,我编写了多人游戏。在Python 2.7中,我希望有一个提示,用户可以输入玩家的数量,即2,3,4,2007等,之后输入的玩家数量,即3,用户将输入名称球员,即迈克,汤姆,吉姆,然后我可以在我的计划中使用以保持得分(即迈克的得分是7,他非常糟糕,吉姆有250,他很漂亮好等)。我已经看到了使用字典,类和数组的建议,但是我最后哪个是最好的,最糟糕的是,我不能做出我正在努力工作的东西。
from collections import defaultdict
d = defaultdict(int)
d = {}
players = raw_input('How many players?')
players = int(players)
for i in range (1,players+1):
d = raw_input('Enter player name')
print d
答案 0 :(得分:0)
在你的for循环中,你将玩家输入的任何内容作为名称分配给d
。因此,d
立即不再引用任何字典,而是字符串......无论名称是什么。特定变量一次只能引用一个对象。从逻辑上讲,如果你考虑将变量重新分配给新变量时会发生什么,这是直截了当的,当提供的所有对象都是标签d
时,解释器如何可能区分多个可能的对象。
尝试这样的事情,dict
对我来说似乎很好:
players_dict = {}
num_players = raw_input("Enter number of players: ")
for i in num_players:
name = raw_input("Enter name for player %s:" % i)
# set initial score to 0
players_dict[name] = 0
答案 1 :(得分:0)
谢谢大家的帮助。在你的帮助下,我想出了下面的代码(使用一个列表并附加到它上面),它起作用了:
player_names = []
input_players = int(raw_input('how many players?'))
for i in range(0,input_players):
name = raw_input('enter player name')
name = name.upper()
player_names.append(name)
#using my new player names to iterate through turns:
for i in range(0,13):
for i in player_names:
print i # placeholder for my turn function