【发布时间】:2019-11-03 02:55:48
【问题描述】:
我正在尝试制作一个简单的掷骰子游戏,其中两名玩家掷骰子一次,共五轮,得分最高的人获胜。
我已经尝试在函数内和函数外将 score1 变量设置为 0,但这会导致每次将分数重置为 0。
#setting the scores as 0 before.
score1=0
score2=0
def round1():
print('Round 1, lets go')
input("Player 1 press ENTER to roll dice")
diceroll1()
input("Player 2 press ENTER to roll dice")
diceroll2()
round2()
#Round 1, calls upon dice roll functions and.
#dice roll function for player 1
def diceroll1():
import random
number = random.randint(1,6)
print("Your number is: " + str(number))
if number % 2 == 0:
number = number + 10
score1 = score1 + number
print("Your new score is: " + str(score1))
else:
number = number - 5
score1 = score1 + number
print("Your new score is: " + str(score1))
if score1 < 0:
score1 = 0
else:
score1=score1
#dice roll function for player 2
def diceroll2():
import random
number = random.randint(1,6)
print("Your number is: " + str(number))
score2
if number % 2 == 0:
number = number + 10
score2 = score2 + number
print("Your new score is: " + str(score2))
else:
number = number - 5
score2 = score2 + number
print("Your new score is: " + str(score2))
if score2 < 0:
score2 = 0
else:
score2=score2
我希望它简单地将骰子值添加到分数中,但我收到此错误:
UnboundLocalError: 赋值前引用了局部变量'score1'
【问题讨论】:
-
欢迎来到 StackOverflow。您的缩进已关闭,这在 Python 中至关重要。此外,还不清楚这些函数是如何被调用的。您没有向我们提供错误的完整回溯。请给我们一个完整的代码 sn-p,我们可以运行它然后自己查看错误。阅读并关注How to create a Minimal, Complete, and Verifiable example。
标签: python variables variable-assignment