我想要一个数独游戏,我想把它变成一个数独游戏。数独网格是一个尚未解决的难题。它只是一个二维列表。list availableNumbers应该是一个3d列表,其中每个空单元格(在sudokuGrid中用0表示)应该有一个数字为1-9的列表。 如何添加列表?在
sudokuGrid = []
sudokuGrid.append([0, 0, 8, 0, 0, 0, 0, 1, 0])
sudokuGrid.append([0, 9, 0, 0, 0, 0, 0, 0, 0])
sudokuGrid.append([3, 4, 0, 5, 9, 0, 0, 0, 7])
sudokuGrid.append([6, 8, 0, 0, 0, 0, 4, 0, 0])
sudokuGrid.append([0, 0, 0, 0, 7, 0, 0, 0, 0])
sudokuGrid.append([0, 0, 4, 8, 0, 0, 1, 0, 0])
sudokuGrid.append([0, 0, 6, 0, 8, 0, 0, 0, 5])
sudokuGrid.append([0, 5, 1, 0, 0, 0, 0, 2, 0])
sudokuGrid.append([0, 0, 0, 0, 2, 0, 0, 9, 0])
availableNumbers = []
for i in range (9):
for j in range(9):
if sudokuGrid[i][j] == 0:
availableNumbers[i][j][k] = [1, 2, 3, 4, 5, 6, 7, 8, 9]
else:
availableNumbers[i][j][k] = sudokuGrid[i][j]
break
我得到一个错误,说列表索引超出范围。在
您需要初始化您的
availableNumbers
列表,使其具有与您试图索引到的相同维度,以便添加值。由于空列表中不存在availableNumbers[i][j][k]
,因此出现索引错误。另外,您没有将k
定义为任何内容。有一种更简单的方法来实现这一点,而不需要初始化空列表。只需使用copy
模块,复制一个sudokuGrid
,并用它们的潜在值列表替换所有的0
元素。在输出:
^{pr2}${cd1>你可以做一些小的改变:
通过在每个循环的开始处附加到}中,我们可以确保在
^{pr2}$availableNumbers
或{availableNumbers
中有一些可以存储变量的空间。这样,除了删除break
语句并删除k
的内容,将得到以下(逐行)输出:相关问题 更多 >
编程相关推荐