2016-10-31 138 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())中使用的方法 - 現在它是唯一語法正確片的與說明書代碼返回一個計數器編碼在從提供的動作分配狀態)和唯一的「動作」 - 它有意引發一個例外(當使用它 - 調用) - 程序將光潔度過早與消息噸他的方法目前尚未定義爲

這是類似模板爲未來的工作。