[英]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.