我试图建立一个简单的战斗序列,用户选择他们的“类”(战士,弓箭手,法师),以及他们想战斗的怪物(妖精,巨魔,兽人)。在
到目前为止,我掌握的代码是:
import random
def choosePlayerClass():
class Warrior:
health = 100
attack = 10
defense = 10
class Archer:
health = 75
attack = 15
defense = 7
class Mage:
health = 50
attack = 20
defense = 5
playerChoice = input("What class do you want to be? (Warrior, Archer, Mage)? ")
if playerChoice == "Warrior":
Player = Warrior()
elif playerChoice == "Archer":
Player = Archer()
elif playerChoice == "Mage":
Player = Mage()
return Player
def chooseMonsterClass():
class Goblin:
health = 25
attack = 10
defense = 5
description = "Goblin"
class Troll:
health = 50
attack = 13
defense = 7
description = "Troll"
class Orc:
health = 75
attack = 15
defense = 10
description = "Orc"
monsterChoice = input("What kind of monster do you want to fight? (Goblin, Troll, Orc)? ")
if monsterChoice == "Goblin":
Monster = Goblin()
elif monsterChoice == "Troll":
Monster = Troll()
elif monsterChoice == "Orc":
Monster = Orc
return Monster
def fightSequence():
Player = choosePlayerClass()
Monster = chooseMonsterClass()
encounter = 1
turn = 'player'
while encounter == 1:
if turn == 'player':
action = input("What would you like to do (Attack)? ")
if action == 'Attack':
encounter = humanAttack(Player)
turn = 'monster'
elif turn == 'monster':
encounter = monsterAttack(Monster)
turn = 'player'
fightSequence()
我得到一个错误:
回溯(最近一次呼叫): 文件“C:\Program Files(x86)\Wing IDE 101 4.1\src\debug\t服务器_沙盒.py“,第109行,in 文件“C:\Program Files(x86)\Wing IDE 101 4.1\src\debug\t服务器_沙盒.py“,102号线,按战斗顺序排列 文件“C:\Program Files(x86)\Wing IDE 101 4.1\src\debug\t服务器_沙盒.py“,第63行,在人肉攻击 builtins.name错误:未定义全局名称“怪物”
谢谢!在
在这里初始化怪物变量:
但是,如果这些都不是真的,也没有输入if语句呢?您应该在if语句之前使用默认值设置变量,以便处理用户输入一些无意义的内容:
^{pr2}$最好还是把整个事情放在一个循环中,当给出一个无意义的竞争时,让用户输入一个有效的比赛。在
您希望在函数
chooseMonsterClass
或fightSequence
中的开头使用一个全局声明global Monster
。两个都试试(同时)。所以应该是:相关问题 更多 >
编程相关推荐