我正在尝试为一个象棋应用程序编写一些代码。函数中的一行代码是:
if check_mate(board, True) == True:
value = 999
将死函数是:
def check_mate(board, previous):
if previous != True:
prev = previous
elif previous == True:
if len(move_history_int) != 0:
prev = move_history_int[-1]
else:
prev = [0,0,0,0]
move\u history\u int的长度是0,所以prev变成了[0,0,0,0]
,但是稍后在check\u mate中,它给出了错误
if prev[-1][0] == element - 1 and prev[-1][1] == z and prev[-1][2] == element - 1 and prev[-1][3] == row:
TypeError: 'int' object is not subscriptable
做print(prev)
得到[0,0,0,0]
,尝试print(type(prev))
得到列表。我想不出哪里出了问题。有人能帮忙吗?你知道吗
此错误告诉您上一个不能双下标。这是因为你使用的是一个一维列表,正如我们在下面看到的:
因为它是一个一维列表,调用prev[-1][0]会尝试调用prev[-1]处列表的第一个列表项……但是prev[-1]本身不是一个列表,就好像您这样做了:
所以,要解决这个问题,请找出您试图从一维列表中提取的内容,或者将列表重构为二维列表。你知道吗
相关问题 更多 >
编程相关推荐