检查tic tac toe中的获胜者-NumPy/Python
我想检查tic tac toe游戏中所有可能的赢家条件,如何以功能性方式重写检查tic tac toe中的获胜者-NumPy/Python,python,numpy,Python,Numpy,我想检查tic tac toe游戏中所有可能的赢家条件,如何以功能性方式重写 board = numpy.array([[0, 0, 0], [0, 0, 0], [0, 0, 0]]) player = 1 if any([(board[0, :] == player).all(), (board[:, 0] == player).all(), (board[1, :] ==
board = numpy.array([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
player = 1
if any([(board[0, :] == player).all(),
(board[:, 0] == player).all(),
(board[1, :] == player).all(),
(board[:, 1] == player).all(),
(board[2, :] == player).all(),
(board[:, 2] == player).all()]):
print('Win')
使用
any
和all
-
mask = board==player
out = mask.all(0).any() | mask.all(1).any()
要解释对角的,需要做更多的工作-
out |= np.diag(mask).all() | np.diag(mask[:,::-1]).all()
别忘了检查对角线胜利。太棒了。。。另外,对于对角线,您可以使用
mask.diagonal().all()
和mask[:-1].diagonal().all()
(如果您想考虑这些)