return False
        else:
            continue 
        
    for r in range(len(bd)):
        if ok_to_add(r, 0, bd[r][column], bd):
            for c in range(len(bd)):
                if ok_to_add(r, c, bd[r][column], bd):
                    continue
        else:
            return False        
    return True

boardname = raw_input('Enter a file name => ')

bd = lab06_util.read_sudoku(boardname)

print sudokuboard(bd)

row = int(raw_input('Enter a row => '))
column = int(raw_input('Enter a column => '))
addnum = raw_input('Enter a number to add => ')
print


if ok_to_add(row, column, addnum, bd) == False:
    print "This number cannot be added"
elif ok_to_add(row, column, addnum, bd) == True:
    bd[row][column] = addnum
    print sudokuboard(bd)
else:
import lab06_util
fname = raw_input("Print enter a file name ==> ")
board = lab06_util.read_sudoku(fname)
Beispiel #3
0
                #Checks bottom middle 3x3
                elif (column in [3, 4, 5] and y in [3, 4, 5]):
                    if (number == bd[x][y]):
                        return False

                #Checks bottom right 3x3
                elif (column in [6, 7, 8] and y in [6, 7, 8]):
                    if (number == bd[x][y]):
                        return False
    return True


#Main code
board_file = input('Enter board file: ')
bd = lab06_util.read_sudoku(board_file)

complete = False

while complete == False:
    print_board()
    if verify_board() == True:
        x1 = int(input('Enter a row from 0 to 8 ==> '))
        y1 = int(input('Enter a column from 0 to 8 => '))
        numb = int(input('Enter the number from 1 to 9 => '))

        if ok_to_add(x1, y1, numb):
            bd[x1][y1] = str(numb)
        else:
            print("Invalid Input")
    else:
Beispiel #4
0
from lab06_util import read_sudoku

filename = input("File name: ")

nl = read_sudoku(filename).copy()
for n in range(len(nl)):
    nl[n] = read_sudoku(filename)[n].copy()
    for number in range(0, len(nl[n]), 4):
        nl[n].insert(number, '|')
    nl[n] = ' '.join(nl[n])
    nl[n] = str(nl[n]) + ' ' + '|'
    if n == 0:
        print('-' * (len(nl[n])))
    print(nl[n])
    if (n + 1) % 3 == 0:
        print('-' * (len(nl[n])))


def ok_to_add(board):
    bd = board.copy()
    row = 0
    column = 0
    while row < len(bd) and column < len(bd):
        for n in bd[row]:
            if bd[row].count(n) > 1:
                return False

        column_list = []
        for n in bd:
            column_list.append(n[column])
        if column_list.count(n) > 1:
Beispiel #5
0
def verify_board(bd):
    error = 0
    for i in range(9):
        for j in range(9):
            if bd[i][j].isdigit() == False:
                error += 1
            if ok_to_add(bd[i][j], i, j, bd) == False:
                error += 1
    if error != 0:
        return False
    elif error == 0:
        return True


filename = raw_input('Please Enter a file name ==> ')
bd = lab06_util.read_sudoku(filename)
while verify_board(bd) == False:
    print_bd(bd)
    raw = int(raw_input('Enter raw ==> ')) - 1
    colum = int(raw_input('Enter colum ==> ')) - 1
    number = int(raw_input('Enter a number ==>'))
    if ok_to_add(number, raw, colum, bd) == True and has_number(
            raw, colum, bd) == False:
        bd[raw][colum] = str(number)
        print_bd(bd)
    else:
        print 'This number cannot be added'
print_bd(bd)
print 'Completed!'
Beispiel #6
0
import lab06_util

bd = lab06_util.read_sudoku("solved.txt")
print bd

def okay_to_add(row,column,num):
    error = 0
    
    #check row
    i = 0
    for x in bd[row]:
        if i == column:
            i += 1
            continue
        else:
            i += 1
            if x == str(num):
                error += 1
    #check column
    for x in range(9):
        if x == row:
            continue
        else:
            if bd[x][column] == str(num):
                error += 1
    #check box
    if row <= 2 and column <= 2:
        n = 0
        for x in bd[:3]:
            i = 0
            for y in x[:3]:
Beispiel #7
0
        if v[x] == z:
            return False
    for v in range(9):
        if data[v][y] == z:
            return False
    x1 = 3 * (x // 3)
    y1 = 3 * (y // 3)
    for i in range(3):
        for j in range(3):
            if data[j + x1][i + y1] == v:
                return False
    return True


file = input('Input file =>')
bd = lab06_util.read_sudoku(file)
correct = lab06_util.read_sudoku('solved.txt')

print(25 * '-', sep='', end='')
w = 0
for i in range(9):
    z = 0
    if w == 3:
        print('\n', 25 * '-', sep='', end='')
        w = 0
    print('\n| ', end='')
    for y in range(9):
        if z == 3:
            print('| ', end="")
            z = 0
        print(bd[i][y], sep="", end=" ")
Beispiel #8
0
                    c += 1
                    continue
                elif y == str(num):
                    c += 1
                    error += 1
                else:
                    c += 1
            r += 1
    #all okay?
    if error > 0:
        print "This number cannot be added."
    else:
        bd[row][column] = num
    
###############
## Main Code ##
###############

import lab06_util

bd = lab06_util.read_sudoku(raw_input('file name? ==> '))
print bd

while verify_board(bd) == False:
    print_board(bd)
    row = int(raw_input("Row ==> "))
    column = int(raw_input("Column ==> "))
    num = int(raw_input("Number ==> "))
    okay_to_add(row,column,num)