我的代码可以在这里找到并运行:https://repl.it/Bda9/10
现在我专注于'探索'然后'攻击'路径,但由于某种原因,这段代码不会发生一次攻击。我需要至少在今晚工作。我们刚开始OOP而且......好吧......这让我感到很沮丧。
导致该错误的原因是什么? 为什么代码不能识别敌人(我认为这就是错误的含义)?
答案 0 :(得分:2)
首先,你应该尝试pare down your code一个最小的例子,所以回答者不必做位于bug的工作。你还应该发布堆栈跟踪(repl.it提供它),这样我们就可以检查我们得到的错误和你做的错误。
Enemy.enemy_attacks
方法出错。在此方法中,self
引用Enemy
对象,而不再引用Player
对象,就像调用它的方法一样。敌人的属性,例如attack
,是self
的属性,而不是self.enemy
的属性; Enemy
对象没有enemy
属性,因此当您尝试访问它时会出错。
另请注意,在此方法中,玩家为p
(作为参数传递),而不是self.p
(第66行;将玩家作为敌人的属性,但是你有意义“不这样做”或player
(第69行,可能只是一个错字)。
您的困难似乎与self
的含义有关。如果此答案不足以解决您的问题,请尝试编辑问题以添加您对self
的含义的理解。