2016-10-31 102 views
-5

此代码是pacman编码项目的一部分,它用于初始化幻影行为。任何人都可以解释它做了什么?Python pacman代码:需要说明

class GhostAgent(Agent): 
    def __init__(self, index): 
     self.index = index 

    def getAction(self, state): 
     dist = self.getDistribution(state) 
     if len(dist) == 0: 
      return Directions.STOP 
     else: 
      return util.chooseFromDistribution(dist) 

    def getDistribution(self, state): 
     "Returns a Counter encoding a distribution over actions from the provided state." 
     util.raiseNotDefined() 

然后代码为不同的行为概括了不同的类。 谢谢!

+0

您需要阅读[如何创建最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 –

+0

你刚才说了它的作用:它初始化鬼的行为。具体来说,你不了解这些代码吗? –

+0

方法名称和注释似乎做了很好的陈述他们在做什么 – Sayse

回答

0
def getAction(self, state): 
    dist = self.getDistribution(state) 
    if len(dist) == 0: 
     return Directions.STOP 
    else: 
     return util.chooseFromDistribution(dist) 

它定义了方法(功能)getAction()对于其中该代码被写入的类的对象(即类GhostAgent的)。这取决于的2个参数:

self - 它是mandatory(和隐藏)参数和表示对象(类GhostAgent的),这是该方法getAction()施加到,例如,通过命令

ghostAgent3.getAction(status); 

在这种情况下self(在参数列表中没有列出,隐藏)指ghostAgent3

state - 它是对位米从中取决于该方法的行为(getAction()

这种方法来检查是否给state的通讯组列表排出的身体 - 如果是,则停止选择方向,如果没有,它会从该选择方向分配清单一个新的方向。

def getDistribution(self, state): 
    "Returns a Counter encoding a distribution over actions from the provided state." 
    util.raiseNotDefined() 

在以前的方法(getAction())中使用的方法 - 现在它是唯一语法正确片的与说明书代码返回一个计数器编码在从提供的动作分配状态)和唯一的“动作” - 它有意引发一个例外(当使用它 - 调用) - 程序将光洁度过早与消息吨他的方法目前尚未定义为

这是类似模板为未来的工作。