我正在嘗試創建一個簡單的基於文本的冒險遊戲的戰鬥功能。我們在課堂上還沒有講授課程,但在做了一些探索之後,這似乎是最好的方式。但是,我一直得到一個NameError:name'user'沒有定義。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()
你確定這不是你的縮進一個問題嗎?你的班級裏有主要的代碼。嘗試把它拿出來。 – 2014-10-03 04:40:14
按照慣例,大部分大寫一個類的名字。所以這將是'類用戶(...)' – dawg 2014-10-03 04:56:24