import numpy as np
player1 = True
def create_board():
board = np.zeros((3,3), dtype=int)
return board
def place(board , player1 , position ):
if player1 == True:
player1 = False
if board[position] == 0:
board = position
elif board[position] != 0:
print("False , place taken 1")
else:
if player1 == False:
if board[position] == 0:
board = position
elif board[position] != [0, 0]:
print("False , place taken 2 ")
return board函数调用:
place(board=create_board() , player1=1 , position=(0,0))这是我的代码,在这段代码中,有很多事情发生了,但有一部分我无法正确理解。在粗体部分,我尝试替换
([0,0,0],
[0,0,0],
[0,0,0])至
([1,0,0],
[0,0,0],
[0,0,0])我可以知道吗,我该怎么做呢?谢谢!
发布于 2020-06-01 22:25:26
您错误地将if语句中的board变量更改为position
if board[position] == 0:
board = position您应该在索引position处更改board内的值
board[position] = 1 # for player 1
board[position] = 2 # for player 2我还清理了一些代码
def place(board , player1 , position ):
x = 1 if player1 else 2
if board[position] != 0:
print(f'False , place taken {x}')
else:
board[position] = x
return board发布于 2020-06-01 22:26:37
你在用board = position给你的董事会分配职位信息,我想你指的是board[position] == 1
def place(board , player, position ):
if board[position] == 0: #if the position is unclaimed
board[position] = player #claim it for the player
else:
print(f"place was already taken by player {board[position]}")
return board
#call using the player number
place(board=create_board() , player=1 , position=(0,0))这个函数会给你你想要的东西。
发布于 2020-06-01 23:10:11
当您尝试在board = position中更新您的电路板时,实际上是在使用您的坐标对更新整个电路板。
您真正想要的是精确定位二维数组中的确切位置,您必须更新该位置才能存储占用的单元格。您可以使用以下命令更改这一行
board[position] = 1 # occupied cell然而,正如Hammad在另一个答案中所说的那样,更改您的
0 for unoccupied
1 for occupied而必须依赖于知道目前谁在进行中,
0 for unoccupied
1 for occupied by player one
2 for occupied by player two所以你总能知道谁住了那间牢房。
https://stackoverflow.com/questions/62133942
复制相似问题