【发布时间】:2015-02-16 05:58:50
【问题描述】:
我正在制作一个非常简单的游戏,它的表面上有硬币,玩家是黑色方块(目前),计算机 AI 是目前的企鹅。昨晚我得到了我实施的一切工作。我说已实施是因为我什至还没有开始实施残局场景/条件。昨晚我很高兴我让 AI 工作了……太好了。在这个小范式中是不可能获胜的。我决定取消 AI 进行对角转弯的能力。我通过在 elif 中添加一个 if 语句来做到这一点:
# Uncomment if you want the AI to be able to go diagonal
'''def hunt(self, player_xy):
if player_xy[0] > self.get_x():
self.set_x(self.get_x() + 3)
elif player_xy[0] < self.get_x():
self.set_x(self.get_x() - 3)
if player_xy[1] > self.get_y():
self.set_y(self.get_y() + 3)
elif player_xy[1] < self.get_y():
self.set_y(self.get_y() - 3) '''
def hunt(self, player_xy):
if player_xy[0] > self.get_x():
self.set_x(self.get_x() + 3)
elif player_xy[0] < self.get_x():
self.set_x(self.get_x() - 3)
elif player_xy[1] > self.get_y():
self.set_y(self.get_y() + 3)
elif player_xy[1] < self.get_y():
self.set_y(self.get_y() - 3)
我在背景上有一个标签,告诉我 AI 在哪里,所以我可以跟踪它。当 if 语句仍然是 if 语句时,我可以看到标签移动,我可以看到精灵移动。当我将一行更改为 elif 时,我仍然看到标签移动(因此精灵正在移动),但我在任何地方都看不到精灵。说真的,1 行。
对为什么会发生这种情况或我应该怎么做有什么想法吗?我可以发布更多代码,但由于我将其隔离为 1 行,我认为它不会有帮助。
【问题讨论】: