【发布时间】:2012-07-29 03:54:10
【问题描述】:
我刚开始学习python,希望你们能帮助我更好地理解事物。如果你曾经为 gameboy 玩过 pokemon 游戏,你会更了解我想要做什么。我从一个文字冒险开始,你可以做一些简单的事情,但现在我正处于口袋妖怪互相争斗的地步。所以这就是我想要实现的目标。
- 宝可梦大战开始
- 你攻击目标
- 目标失去生命并反击
- 第一个到 0 hp 损失
当然这些都是打印出来的。
这是我目前所拥有的战斗,我不确定我现在有多准确。只是真的想看看我离正确地做这件事有多近。
class Pokemon(object):
sName = "pidgy"
nAttack = 5
nHealth = 10
nEvasion = 1
def __init__(self, name, atk, hp, evd):
self.sName = name
self.nAttack = atk
self.nHealth = hp
self.nEvasion = evd
def fight(target, self):
target.nHealth - self.nAttack
def battle():
print "A wild appeared"
#pikachu = Pokemon("Pikafaggot", 18, 80, 21)
pidgy = Pokemon("Pidgy", 18, 80, 21)
pidgy.fight(pikachu)
#pikachu.fight(pidgy)
完整代码在这里: http://pastebin.com/ikmRuE5z
我也在寻找有关如何管理变量的建议;我似乎在顶部有一个变量的杂货清单,我认为这不是好的做法,它们应该放在哪里?
【问题讨论】:
-
您的具体问题是什么?如果您问为什么您的
fight方法不起作用,那是因为您没有保存减法的结果。 -
我的问题是如何,这应该如何让它正常工作。但是,是的,我将如何通过结果?返回?
-
我不太确定如何回答这个问题,因为它更像是一个广泛的代码审查。您应该尝试在这里要求进行代码审查:codereview.stackexchange.com ...但是是的,您不应该如此大量地使用全局变量。操作应该将结果返回给调用者。
-
谢谢。但是为了缩小问题的范围,我将如何正确返回值并且我是否正确使用类?另外,我可以将这些变量放在哪里,以免它们被推到顶部?