Python 抽签
函数调用:Python 抽签,python,python-3.x,numpy,Python,Python 3.x,Numpy,函数调用: 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:
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))
到
我可以知道吗,我怎么做请。。。谢谢大家! 您错误地将if语句中的
板
变量更改为位置
如果板[位置]==0:
板=位置
您应该更改索引位置board
内的值
board[position]=1#玩家1
牌手2的棋盘[位置]=2
我还稍微清理了一下代码
def位置(板、播放器1、位置):
x=1如果播放者1其他2
如果板[位置]!=0:
打印(f'False,发生位置{x})
其他:
板[位置]=x
返回板
您使用board=position
将董事会分配给您的职位信息,我想您的意思是board[position]==1
([1,0,0],
[0,0,0],
[0,0,0])
此函数将为您提供所需信息。当您尝试在board=position
中更新电路板时,实际上是在用您的坐标对更新整个电路板
您真正想要的是精确定位二维阵列中的确切位置,您必须更新该位置以存储占用的单元。你可以把那条线改成
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))
然而,正如哈马德在另一个回答中所说,改变你的想法会很方便
board[position] = 1 # occupied cell
必须依靠知道现在轮到谁了
0 for unoccupied
1 for occupied
所以你总是知道是谁占据了那间牢房。
希望这有帮助 您好,cobralim,您能用粗体格式以外的格式来表示该部分吗?这似乎在代码中丢失了。我想问,为什么我会得到{TypeError:'NoneType'对象不可订阅}这个错误?你能告诉我你在代码中的什么地方得到这个错误吗,我假设你是在board[position]
语句中得到的。如果是这种情况,那么您可能正在传递函数的None
作为board
参数。很抱歉,传递None作为board参数是什么意思?如何解决这个问题?我想说的是,你可能正在传递一个None
对象作为函数的board
,当你应该传递一个np.array
对象时,这个链接可能会有帮助,我只是假设你是因为这个原因而得到这个错误,除非你告诉我它发生在哪里,否则我不能确定,是的,我得到的错误来自于行“if board[position]!=0”
0 for unoccupied
1 for occupied
0 for unoccupied
1 for occupied by player one
2 for occupied by player two