井字游戏错误 - "索引错误:列出索引超出范围"



我还是个初学者。目前,我正在使用Python 3制作井字游戏。我的一个函数应该检查空间是否已满,一直给我错误消息:

"索引错误: 列出索引超出范围",

我不知道如何解决它。显然,是 if 语句给我带来了麻烦,但我没有看到问题。我已经在互联网上搜索寻找解决方案,但还没有找到。如果有人能帮助我解决这个问题,将不胜感激。

def space_check(board, position):
space_full = False
if board[position] == 'X' or board[position] == 'O':
space_full = True
print("This space is already marked.")
else:
print("This space is available.")

您的问题是position是一个太高的数字,并且board列表在该索引处没有值。

尝试在函数中打印位置,然后将其与电路板的大小进行比较以查看错误所在。

请记住,列表的索引为零,因此如果它是3x3,那么最高的索引将是2,而不是3

想象一下,你有一个购物清单,里面有"葡萄、胡萝卜、面包",你问清单中的第四件事是什么,这没有意义吧?这就是这个错误。您可能需要记住,列表的第一部分是索引 0,但长度显示您认为的长度,如下所示:

x = ['a', 'b']

a 是 x[0],b 是 x[1]。然而:

len(x) = 2

要解决此问题,您需要做的是更改

board[position]

自:

board[position-1]

最新更新