所以我有一个函数generateSudoku()
,它应该检查我的二维列表,从[0][0]到[8][8](81个字段),并按照kontrolleFeld()
检查的数独游戏规则用随机数填充字段
kontrolleFeld()
检查随机生成的数字是否符合该字段。如果kontrolleFeld()
为真,则继续到下一个字段进行检查并填写一个数字到字段[0][8],然后从下一个"行"([1][0])开始检查,以便检查所有字段到[8][8]。如果为false,则用另一个int数再次检查同一字段。
但不幸的是有些地方出了问题因为有时它会检查到第二行然后停止有时会检查到第三行然后停止有时只检查到第一行
返回True或False的kontrolleFeld()
函数工作完美无瑕。这不是问题所在。(我用已经给定的数独进行了测试)
def generateSudoku():
xcount = 0
ycount = 0
while xcount !=9:
if ycount == 9:
xcount = xcount +1
ycount = 0
else:
while ycount !=9:
zrand = random.randint(1,9)
if kontrolleFeld(xcount,ycount,zrand):
s1[xcount][ycount]=zrand
ycount = ycount +1
假设网格的前两行已按如下方式填充:
1 2 3 4 5 6 7 8 9
4 5 6 1 2 3 ?
没有可以合法替换?的值,所以你的while True
循环永远不会终止。