我正在尝试为简单的基于文本的冒险游戏创建战斗功能。我们还没有在课堂上讨论课程,但经过一些搜索后,它似乎是最好的方法。但是,我一直得到一个NameError:名称'user'未定义。
到目前为止,这是代码,我一直在搜索和搜索,我只是不知道哪里错了。
import sys
import random
import time
number = random.randint(0,20)
class user:
def __init__ (self, player_name, player_health, health_potion):
self.__player_health = player_health
self.__player_name = player_name
self.__health_potion = health_potion
def getName(self):
return self.__player_name
def getHealth(self):
return self.__player_health
def getPotion(self):
return self.__health_potion
def setHealth(self):
self.__player_health = 100
def minusHealth(self, number):
self.__player_health -= number
return self.__player_health
def minusPotion(self):
self.__health_potion -= 1
return self.__health_potion
def plusPotion(self, number1):
self.__health_potion += number1
def plusHealth(self):
self.__player_health += 20
def fight(soldier, player1, name1):
player1 = user(name1, player1.getHealth(), player1.getPotion())
soldier = user('Soldier', soldier.getHealth(), soldier.getPotion())
p = 0
while p == 0:
time.sleep(2)
attack = input("1 = Attack with weapon, 2 = use potion")
if attack == "1":
time.sleep(1)
print("You strike at your enemy. Soldier's health now is", soldier.minusHealth(number))
print("Soldier hits you back and your health is now at", player1.minusHealth(number))
elif attack == "2":
time.sleep(1)
print("You use a first aid-kit!")
player1.plusHealth(), player1.minusPotion()
if player1.getHealth() > 100:
player1.setHealth()
print("Soldier hits you back and your health is now at", player.minusHealth(number))
elif enemy.getHealth() <= 0:
print("You have won the fight!")
s = 2
def main():
name1 = input("What would you like your player to be named?")
time.sleep(1)
player1 = user(name1, 100, 0)
soldier = user('Soldier', 80, 0)
print("Your characters stats are: Health:", player1.getHealth())
time.sleep(2)
soldier.setHealth(80)
fight(soldier, player1, name1)
booty1 = input("Type ' 1 ' to loot the enemy")
if booty1 == "1":
print("You find two first-aid kits")
player1.__plusPotion(2)
main()
答案 0 :(得分:0)
main像类方法一样缩进
unindent主要电话和定义