Python中的数独游戏

问题描述 投票:-1回答:1

我需要我的代码的帮助。我知道如何启动开发板,但是我不知道如何检查数字是否在行和列中重复以及如何更改。

列表,矩阵,用于循环

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不在列表中

python sudoku
1个回答
0
投票

如果将示例简化为最小形式,则会发现它是这样的:

val = ["a"]
celdastr = "b"
check = val.index(celdastr)
if check != "-1":
    val.remove(celdastr)

并且您的问题的根本原因是check != "-1"

list.index(item)函数返回整数索引,而不是字符串-您需要使用check != -1

© www.soinside.com 2019 - 2024. All rights reserved.