我需要我的代码的帮助。我知道如何启动开发板,但是我不知道如何检查数字是否在行和列中重复以及如何更改。
列表,矩阵,用于循环
import turtle
import random
import time
board = [ #Initialize board.
["X","X","X","X"],
["X","X","X","X"],
["X","X","X","X"],
["X","X","X","X"]
]
values = ["0","1","2","3"] #Accepted values
def sudoku():
#Start screen
print("SUDOKU".center(50,"-"))
print("Rules") #To be changed later c:
start = int(input("Type 1 to start."))
crearTablero()
checkDuplicates()
def createBoard():
for row in range(len(board)):
if row%2 == 0:
board[row][0] = random.sample(values,1)
board[row][2] = random.sample(values,1)
if row%2 == 1:
board[row][1] = random.sample(values,1)
board[row][3] = random.sample(values,1)
print(board[row])
def checkDuplicates(): #Check for duplicates while creating
for column in range(len(board[0])):
#Tried to check if a number has been used in the column, change it to a new number
val = [x for x in val]
for i in range(4):
while board[columna][0] != board[columna][i]:
celda = board[columna][i]
celda = random.sample(valores,1)
celdastr = "".join(celda)
check = val.index(celdastr) #I'm stuck here. I get ValueError when trying to delete the used number from val.
if check != "-1":
val.remove(check)
#I still have to create functions to enter the answer, check it and check if the board is full
sudoku()
[尝试从值列表中删除时出现ValueError,并且数字不变:(。
追踪(最近一次通话):文件“ sudoku.py”,第54行,在sudoku()数独中第21行的“ sudoku.py”文件checarDuplicado()在checarDuplicado中的文件“ sudoku.py”,第52行val.remove(检查)ValueError:list.remove(x):x不在列表中
如果将示例简化为最小形式,则会发现它是这样的:
val = ["a"]
celdastr = "b"
check = val.index(celdastr)
if check != "-1":
val.remove(celdastr)
并且您的问题的根本原因是check != "-1"
。
list.index(item)
函数返回整数索引,而不是字符串-您需要使用check != -1
。