簡體   English   中英

井字游戲和minimax算法

[英]tic tac toe and minimax algorithm

我正在嘗試使用minimax算法制作井字游戲。 我指的是以下代碼。 但是我不理解[0]的用法。 請說明以下內容:

value = self.move(x,y).minimax(not player)[0]

參考下面給出的代碼。 並告訴您返回“無”以及+1或-1或0的用法。請不要對我的問題投反對票,否則我將被阻止。

def minimax(self, player):
    if self.won():
      if player:
        return (-1,None)
      else:
        return (+1,None)
    elif self.tied():
      return (0,None)
    elif player:
      best = -2,0
      for x,y in self.fields:
        if self.fields[x,y]==self.empty:
          value = self.move(x,y).minimax(not player)[0]
          if value>best[0]:
            best = (value,(x,y))
      return best
    else:
      best = (+2,None)
      for x,y in self.fields:
        if self.fields[x,y]==self.empty:
          value = self.move(x,y).minimax(not player)[0]
          if value<best[0]:
            best = (value,(x,y))
      return best

但是我不理解[0]的用法

該函數返回(value,(x,y))的元組,因此訪問該元素的第0個元素將為您提供value

游戲結束后,該函數將在值中返回None ,因為不會進行新的移動。 value將是獲勝者(0表示並列)。

minimax返回一個元組; 有問題的語句調用minimax ,將返回的元組的第一個元素( [0]位)分配給best

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM