- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试构建一个简单的战斗序列,用户可以在其中选择他们的“职业”(战士、弓箭手、法师)以及他们想要战斗的怪物(哥布林、巨魔、兽人)。
我目前的代码是:
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\tserver_sandbox.py”,第 109 行,在 文件“C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver_sandbox.py”,第 102 行,在 fightSequence 中 humanAttack 中的文件“C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver_sandbox.py”,第 63 行builtins.NameError: 全局名称 'Monster' 未定义
谢谢!
最佳答案
在这里初始化 Monster 变量:
if monsterChoice == "Goblin":
Monster = Goblin()
elif monsterChoice == "Troll":
Monster = Troll()
elif monsterChoice == "Orc":
Monster = Orc()
但是如果这些都不是真的并且没有输入任何 if 语句怎么办?您应该在 if 语句之前为变量设置默认值,以便处理用户输入一些无意义的情况:
Monster = DefaultRace
if monsterChoice == "Goblin":
Monster = Goblin()
elif monsterChoice == "Troll":
Monster = Troll()
elif monsterChoice == "Orc":
Monster = Orc()
最好将整个事情放在一个循环中,并在给出无意义的比赛时要求用户输入有效的比赛。
while True:
monsterChoice = input("What kind of monster do you want to fight? (Goblin, Troll, Orc)? ")
if monsterChoice in ["Goblin","Troll","Orc"]:
break
else:
print "Unrecognized race requested, please select one of Goblin, Troll, Orc."
关于Python 战斗序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243831/
以下是有关战列舰及其参与的战斗的架构: Ships(name, yearLaunched, country, numGuns, gunSize, displacement) Battles(shi
我花了一个非常令人沮丧的晚上试图获得 wxpython在我的 MacBook Pro 上工作(运行 Snow Leopard 10.6.6)。通过阅读此处和其他网站上有关此主题的各种主题,这是我迄今为
这是一个关于战列舰和他们参加的战斗的模式: Ships(name, yearLaunched, country, numGuns, gunSize, displacement) Battles(s
您好,我正在尝试将 Jasper (4.0.2) 报告与 JBoss 6 一起使用,并使用 XML 文件作为数据源。然而,所需的库 JAR 存在相当多的重叠,并且由于我无法排除 JBoss 库,所以我
我有两个 相互重叠的元素,例如: ------------- | | | A | | | | ------------ |
我看过一些专门介绍 hasOwnProperty 的帖子,但我仍然质疑是否(以及何时)应该在简单的 obj.prop 上使用它 if (obj.hasOwnProperty("prop")) 对于检查
我正在为 Android 手机开发一个基于 Java 的回合制 RPG,目前我正在尝试弄清楚如何处理具有超出伤害的额外变量的攻击。例如,当目标具有燃烧效果时,我想让火焰攻击额外造成 10% 的伤害。我
我有一个它正在选择的怪物列表。 def monsters(): whatMonster = random.randint(0, 25) monster = pickMonste
一个多星期以来,我们一直在与 SurfaceViews 相关的一些问题作斗争,但没有找到合适的解决方案。我们阅读了论坛中关于类似问题(甚至 Mixare 源代码)的其他问题,但找不到答案,所以我们希望
我有一个顶部 div,它有 position: fixed。在 div 之后,我有一个菜单 div 也有 position: fixed,它将被定位为与顶部 div 重叠,因此它需要一个正确的 z-i
我正在尝试使用带 SSL 的 curl,但我收到有关证书的永久性错误。我知道 OSX 在 curl 证书方面一团糟,我想我在为开发人员创建自己的自签名证书(本地主机上的 node_ssl_server
I have written this pen 编辑 see this pen of Alexander Omara for a shorter version of my pen 基本上,我们将 b
我是一名优秀的程序员,十分优秀!