这是Python中井字游戏中的计算机移动代码:
def computermove(board,computer,human):
movecom=''
rmoves=rd(0,8)
for movecom in legalmoves(board):
board[movecom]=computer
if winner(board)==computer:
return movecom
board[movecom]=''
for movecom in legalmoves(board):
board[movecom]=human
if winner(board)==human:
return movecom
board[movecom]=''
while rmoves not in legalmoves(board):
rtmoves=rd(0,8)
return rmoves
在 for 循环中board[movecom]=''
有什么用。
代码似乎尝试了不同的动作,并将每个棋盘位置设置为计算机或人类,并查看这是否是一个成功的动作。
假设legalmoves(board)
返回一个已经为空的仓位列表(设置为 ''
),则board[movecom]=''
行将板再次重置为空值。
就个人而言,我会更改winner()
函数以采用额外的参数来设置额外的人类或计算机位置,以测试这是否是额外的位置是否构成获胜的举动,而不是用试验位置更改棋盘。