我的代码工作不正常,当我定义敌人时,它说敌人没有定义:
class Gnome:
def __init__(enemy, name):
enemy.name = name
enemy.health2 = 50
enemy.health = enemy.health2
enemy.attack = 7
enemy.goldgain = 6
GnomeIG = Gnome("Gnome")
class Goblin:
def __init__(enemy, name):
enemy.name = name
enemy.health2 = 38
enemy.health = enemy.health2
enemy.attack = 5
enemy.goldgain = 3
GoblinIG = Goblin("Goblin")
class Wolf:
def __init__(enemy, name):
enemy.name = name
enemy.health2 = 20
enemy.health = enemy.health2
enemy.attack = 3
enemy.goldgain = 1
WolfIG = Wolf("Wolf")
这就是游戏:
def prefight():
global enemy
enemynum = random.randint(1, 3)
if enemynum == "1":
enemy = GnomeIG
elif enemynum == "2":
enemy = GoblinIG
elif enemynum == "3":
enemy = WolfIG
fight()
所有的线都有'敌人什么的'给出未定义的错误。你知道吗
def fight():
print("You have encountered a %s!" % enemy.name)
print("Player Life: %d/%d | Enemy Life: %i/%i" % (PlayerIG.health,
PlayerIG.health2, enemy.health, enemy.health2))
print("Potions: %i\n" % PlayerIG.potions)
print("1. Attack")
print("2. Drink Potion")
print("3. Run")
option = input("> ")
if option == "1":
attack()
elif option == "2":
drinkpotion()
elif option == "3":
run()
else:
fight()
错误:
文件“C:/Users/Leo/PycharmProjects/RPG Proj/角色扮演者,第231行
主()
文件“C:/Users/Leo/PycharmProjects/RPG Proj/角色扮演者,第51行
开始()
文件“C:/Users/Leo/PycharmProjects/RPG Proj/角色扮演者“,第65行,起始处”
开始1()
文件“C:/Users/Leo/PycharmProjects/RPG Proj/角色扮演者,第84行,在start1中
野生()
文件“C:/Users/Leo/PycharmProjects/RPG Proj/角色扮演者,第104行,在野外
战斗()
文件“C:/Users/Leo/PycharmProjects/RPG Proj/角色扮演者“,第118行,在战斗中
print(“您遇到了%s!”% 敌人名称)你知道吗
名称错误:未定义名称“敌人”
这行代码生成一个介于1和3之间的整数
但是,条件句是针对字符串进行测试的。你知道吗
这意味着不会输入if或elif语句,因此不会定义敌人,因为字符串永远不会等于整数。你知道吗
要解决此问题,请更改if和elif语句,以检查enemynum是否等于1、2或3作为整数 e、 g
看起来您调用main()->;start()->;start1()->;fight(),而实际上从未调用prefight()。所以它永远不会有机会引入这个名为敌人的变量。你知道吗
相关问题 更多 >
编程相关推荐