如何在玩家回合期间为玩家分配分数并相应地从分数中添加/删除分数

时间:2019-05-15 05:10:39

标签: python

在这个游戏中,我的任务是做游戏,其中一部分是游戏中所有玩家均以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

我希望在轮到自己的骰子后,将掷出的两个骰子的值添加到该人的分数中,然后从此处显示一个记分板,以显示大厅中所有玩家的当前分数,并将继续进行下一个发生相同事件的玩家。

1 个答案:

答案 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