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