我正在尝试使用NumPy的2D数组创建一个简单的connect-4游戏,其思想是当玩家选择一列时,它将用一块来替换该列中的最大数
import numpy as np
R_count = 6
C_count = 7
M1 = ([[0,0,0,0,0,0,0],[1,1,1,1,1,1,1],[2,2,2,2,2,2,2],[3,3,3,3,3,3,3],[4,4,4,4,4,4,4],[5,5,5,5,5,5,5]])
def M2():
mymatrix = np.array(M1)
return mymatrix
Board = M2()
def drop_piece(Board,row,col,piece):
np.max(Board[row][col]) = piece但是,当我使用np.max函数将数字替换为一个片段时,该函数会给出一个错误:
np.max(Board[row][col]) = piece
^
SyntaxError: cannot assign to function call有没有解决这个问题的办法,或者我不能用函数改变列中的最大数字?
发布于 2021-10-09 15:57:11
np.max的输出是一个标量值,而不是您的矩阵。您想要使用np.argmax。这将输出最大值的位置(如果位置很多,则输出位置列表)。
您可以使用以下代码来实现所需的行为:
pos=np.argmax(Board[:,col].squeeze())
Board[pos,col]=piecehttps://stackoverflow.com/questions/69508316
复制相似问题