我正在使用功能迷你游戏进行街机游戏。我使用硬币作为游戏进度变量,它是全局变量。但是,当我运行该程序并玩剪刀石头布游戏并退出时,它告诉我硬币是局部变量,并且在赋值之前已被引用。
以前,这是通过rps_score变量或剪刀石头布得分变量发生的。这是一个全局变量,因此可以防止错误。当我玩剪刀石头布游戏时,它使用rps_score变量。通过在rps函数开始时将rps_score分配为0来解决此问题。
此后发生硬币错误。当我离开石头剪刀布游戏时,它说出未绑定错误(因为我只在函数结尾使用了coins变量,这是离开游戏部分所在的位置)。我想到的唯一解决方案是在函数开始时说硬币=硬币,当然,它不起作用。
# this is at the beginning(these are global variables)
coins = 0
rps_score = 0
...
def rps():
print("Welcome to Rock, Paper, Scissors!")
print("Type R for Rock, P for Paper, S for Scissors")
print("For your convenience, turn on CAP LOCK")
rps_score = 0
# took the coins = coins away
while True: # main loop, runs computer-generated moves and compares with
the player moves, changes rps_score
...
...
elif player_move == "L":
print("You received " + str(rps_score) + " coins")
coins += rps_score
rps_score = 0
game_selection()
else:
print("Error")
UnboundLocalError: local variable 'coins' referenced before assignment