在这个游戏中,我的任务是做游戏,其中一部分是游戏中所有玩家均以0分开始,并且必须努力通过掷骰子来获得100分。玩家决定停止滚动后,将显示每位玩家的得分。我的问题是,相对于最初有多少位玩家,我不知道如何为每个玩家分别分配一个“得分”变量,例如
玩家1:掷出2和5 玩家1分= +25 等等。
本质上,我需要有关如何检查(例如)用户是否在开始输入中有3个玩家在玩的游戏的帮助,将为每个包含其得分的玩家分配3个不同的变量,这些变量会随着游戏的进行而变化。
我不知道正确的代码应该包含什么,因此我为什么要寻求帮助
import random
playerList = []
count = 0
def rollTurn():
dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
print("Your first dice rolled a: {}".format(dice1))
print("Your second dice rolled a: {}".format(dice2))
print("-------------------------MAIN MENU-------------------------")
print("1. Play a game \n2. See the Rules \n3. Exit")
print("-------------------------MAIN MENU-------------------------")
userAsk = int(input("Enter number of choice"))
if userAsk == 1:
userNun=int(input("Number of players?\n> "))
while len(playerList) != userNun:
userNames=input("Please input name of player number {}/{}\n> ".format(len(playerList)+1, userNun))
playerList.append(userNames)
random.shuffle(playerList)
print("Randomizing list..:",playerList)
print("It's your turn:" , random.choice(playerList))
rollTurn()
while count < 900000:
rollAgain=input("Would you like to roll again?")
if rollAgain == "Yes":
count = count + 1
rollTurn()
elif rollAgain == "No":
print("You decided to skip")
break
我希望在轮到自己的骰子后,将掷出的两个骰子的值添加到该人的分数中,然后从此处显示一个记分板,以显示大厅中所有玩家的当前分数,并将继续进行下一个发生相同事件的玩家。
答案 0 :(得分:0)
您应该使用dict:而不是使用playerList
的列表:
playerList = {}
playerList['my_name'] = {
"score": 0
}
如果需要获取数据,可以迭代字典中的键。例如在Python3中:
for player, obj in playerList.items():
print(player, obj['score'])
添加数据的过程与此类似:
playerList['my_name']['score'] = playerList['my_name']['score'] + 10