Python tic-tac-toe和minimax算法
我正在尝试使用minimax算法制作tic-tac-toe。我指的是以下代码。但是我不理解[0]的用法。请解释以下内容:Python tic-tac-toe和minimax算法,python,artificial-intelligence,tic-tac-toe,minimax,Python,Artificial Intelligence,Tic Tac Toe,Minimax,我正在尝试使用minimax算法制作tic-tac-toe。我指的是以下代码。但是我不理解[0]的用法。请解释以下内容: value = self.move(x,y).minimax(not player)[0] 参考下面给出的代码。并告诉您如何使用返回“None”以及+1或-1或0。请不要对我的问题投反对票,否则我将被阻止 def minimax(self, player): if self.won(): if player: return (-1,Non
value = self.move(x,y).minimax(not player)[0]
参考下面给出的代码。并告诉您如何使用返回“None”以及+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
def minimax(自身,玩家):
如果self.won():
如果玩家:
返回(-1,无)
其他:
回报(+1,无)
elif self.tied():
返回(0,无)
elif播放器:
最佳=-2,0
对于self.fields中的x,y:
如果self.fields[x,y]==self.empty:
值=自身移动(x,y).最小最大值(非玩家)[0]
如果值>最佳[0]:
最佳=(值,(x,y))
回报最好
其他:
最佳=(+2,无)
对于self.fields中的x,y:
如果self.fields[x,y]==self.empty:
值=自身移动(x,y).最小最大值(非玩家)[0]
如果值
但我不理解[0]的用法
该函数返回一个元组(value,(x,y)),因此访问该元组的第0个元素将得到值
游戏结束时,函数返回值中的None
,因为没有新的移动。值将是谁赢了(0表示他们平手)
但我不理解[0]的用法
该函数返回一个元组(value,(x,y)),因此访问该元组的第0个元素将得到值
游戏结束时,函数返回值中的None
,因为没有新的移动。值将是谁赢了(0表示他们平手)。minimax
返回一个元组;所讨论的语句调用minimax
,获取返回的元组的第一个元素([0]
位),并将其分配给best
minimax
返回元组;所讨论的语句正在调用minimax
,获取返回元组的第一个元素([0]
位),并将其分配给最佳使用此获取其他帮助:使用此获取其他帮助: