Ejemplo n.º 1
0
def createFullPuzzle(board):
    for i in range(0, 9):
        for j in range(0, 9):
            tmp = ['1','2','3','4','5','6','7','8','9']
            while True:
                board[i][j] = random.choice(tmp)
                if sudoku.validateCell(board, i, j):
                    break 
                else:
                    tmp.remove(board[i][j])
                    if len(tmp) == 0:
                        sudoku.print_board(board)
                        return board
    sudoku.print_board(board)
    return board
Ejemplo n.º 2
0
def addElement(board):
    i = random.randrange(0, 9)
    j = random.randrange(0, 9)
    while board[i][j] != '0':
        i = random.randrange(0, 9)
        j = random.randrange(0, 9)
    while True:
        tmp = ['1','2','3','4','5','6','7','8','9']
        board[i][j] = random.choice(tmp)
        if sudoku.validateCell(board, i, j):
            return board
        else:
            tmp.remove(board[i][j])
            if len(tmp) == 0:
                return None
Ejemplo n.º 3
0
def createPartialPuzzle(difficulty, board):
    lb = LEVELS[difficulty][0]
    ub = LEVELS[difficulty][1]
    num = LOWERBOUNDS[difficulty]

    placedCtr = 0
    while placedCtr <= ub:
        i = random.randrange(0, 9)
        j = random.randrange(0, 9)
        if board[i][j] == '0':
            tmp = ['1','2','3','4','5','6','7','8','9']
            while True:
                board[i][j] = random.choice(tmp)
                if sudoku.validateCell(board, i, j):
                    placedCtr += 1
                    if placedCtr >= lb and random.randrange(0, 10) < 4:
                        return board
                    break 
                else:
                    tmp.remove(board[i][j])
                    if len(tmp) == 0:
                        return board