请注意,我不是一个经验丰富的程序员。这是我用全局变量编写的第二个程序。第一种语言甚至不是真正的语言
所以我用python制作了一个游戏,运行在Replit上。通用域名格式。每次最后一段代码运行时,我都会收到一个错误。
UnboundLocalError:在赋值之前引用了局部变量“playerExtraSoldiers”。
这是游戏的链接,进入文件>主要的py是代码
playerExtraSoldiers是一个有问题的变量,我尝试过重命名它,确保每个事件都拼写正确,等等。
它将此变量用作嵌套函数的一部分。定义变量并标记为“全局”的函数位于其上方,并在其之前运行。
引用变量的代码。(第175-182行)
def playerGainSoldiers():
playerExtraSoldiers+=100*len(playerCountries)
if(ownsNorth==1):
playerExtraSoldiers+=250
if(ownsCentral==1):
playerExtraSoldiers+=600
if(ownsSouth==1):
playerExtraSoldiers+=350
这是一个很长的函数,我定义了很多变量。(第92-96行)
#Extra soldiers
global playerExtraSoldiers
playerExtraSoldiers=100
global opponentExtraSoldiers
opponentExtraSoldiers=100
我尝试了以下方法来修复它,但没有成功:
-重新存储变量,完全删除并重写它出现的每一行。
-将零件移动到定义的位置
-通过将其移动到def Playergain士兵中,这在某一点上起到了作用,但它不能
继续重置为100,因为这会毁了我的比赛
-没有嵌套函数
如果因为某种原因第93行看起来像这样,最新版本还没有加载,这是我测试解决方案的一部分,修复它不会改变任何事情
#global playerExtraSoldiers