dimanche 26 juin 2016

Programming Sudoku in python


import turtle

strelica = turtle.getturtle()
turtle.setup(800, 600)
prozor = turtle.Screen()
prozor.title("SUDOKU")
strelica.speed(0)


def kvadrat(a):    # a je duzina stranice
    strelica.pendown()
    strelica.forward(a)
    strelica.left(90)
    strelica.forward(a)
    strelica.left(90)
    strelica.forward(a)
    strelica.left(90)
    strelica.forward(a)
    strelica.left(90)


def kucica(x, y):
    strelica.penup()
    strelica.setposition(x, y)
    kvadrat(120)
    strelica.setposition(x, y)
    kvadrat(40)
    strelica.setposition(x + 40, y)
    kvadrat(40)
    strelica.setposition(x + 80, y)
    kvadrat(40)
    strelica.penup()
    strelica.setposition(x, y + 40)
    strelica.pendown()
    kvadrat(40)
    strelica.setposition(x + 40, y + 40)
    kvadrat(40)
    strelica.setposition(x + 80, y + 40)
    kvadrat(40)
    strelica.penup()
    strelica.setposition(x, y + 80)
    strelica.pendown()
    kvadrat(40)
    strelica.setposition(x + 40, y + 80)
    kvadrat(40)
    strelica.setposition(x + 80, y + 80)
    kvadrat(40)
    strelica.pensize(3)
    strelica.penup()
    strelica.setposition(x, y)
    strelica.pendown()
    kvadrat(120)
    strelica.pensize(0)


def unos(unos, x, y):
    strelica.penup()
    strelica.setposition(x, y)
    strelica.write(unos, font=("Arial", 16, "normal"))


kucica(-200, -200)
kucica(-80, -200)
kucica(40, -200)
kucica(-200, -80)
kucica(-80, -80)
kucica(40, -80)
kucica(-200, 40)
kucica(-80, 40)
kucica(40, 40)

unos("A", -190, 175)
unos("B", -150, 175)
unos("C", -110, 175)
unos("D", -70, 175)
unos("E", -30, 175)
unos("F", 10, 175)
unos("G", 50, 175)
unos("H", 90, 175)
unos("I", 130, 175)

unos("9", -215, -190)
unos("8", -215, -150)
unos("7", -215, -110)
unos("6", -215, -70)
unos("5", -215, -30)
unos("4", -215, 10)
unos("3", -215, 50)
unos("2", -215, 90)
unos("1", -215, 130)

unos("5", -190, 130)
unos("3", -150, 130)
unos("7", -30, 130)
unos("6", -190, 90)
unos("1", -70, 90)
unos("9", -30, 90)
unos("5", 10, 90)
unos("9", -150, 50)
unos("8", -110, 50)
unos("6", 90, 50)
unos("8", -190, 10)
unos("6", -30, 10)
unos("3", 130, 10)
unos("4", -190, -30)
unos("8", -70, -30)
unos("3", 10, -30)
unos("1", 130, -30)
unos("7", -190, -70)
unos("2", -30, -70)
unos("6", 130, -70)
unos("6", -150, -110)
unos("2", 50, -110)
unos("8", 90, -110)
unos("4", -70, -150)
unos("1", -30, -150)
unos("9", 10, -150)
unos("5", 130, -150)
unos("8", -30, -190)
unos("7", 90, -190)
unos("9", 130, -190)

A = [5, 6, 8, 4, 7]
B = [3, 9, 6]
C = [8]
D = [1, 8, 4]
E = [7, 9, 6, 2, 1, 8]
F = [5, 3, 9]
G = [2]
H = [6, 8, 7]
I = [3, 1, 6, 5, 9]

red1 = [5, 3, 7]
red2 = [6, 1, 9, 5]
red3 = [9, 8, 6]
red4 = [8, 6, 3]
red5 = [4, 8, 3, 1]
red6 = [7, 2, 6]
red7 = [6, 2, 8]
red8 = [4, 1, 9, 5]
red9 = [8, 7, 9]

kucica1 = [5, 3, 6, 9, 8]
kucica2 = [7, 1, 9, 5]
kucica3 = [6]
kucica4 = [8, 4, 7]
kucica5 = [6, 8, 3, 2]
kucica6 = [3, 1, 6]
kucica7 = [6]
kucica8 = [4, 1, 9, 8]
kucica9 = [2, 8, 5, 7, 9]

a = len(A)
b = len(B)
c = len(C)
d = len(D)
e = len(E)
f = len(F)
g = len(G)
h = len(H)
i = len(I)

while (a != 9) or (b != 9) or (c != 9) or (d != 9) or (e != 9) or (f != 9) or (g != 9) or (h != 9) or (i != 9):
    kolona = input("Unesite zeljenu kolonu od A do I: ")
    red = int(input("Unesite zeljeni red od 1 do 9: "))
    broj = int(input("Koji broj zelite unijeti? "))

    if (kolona == "A") or (kolona == "a"):
        if broj in A:
            print("Greska: Broj vec postoji u datoj koloni!")
        else:
            x = -190
            A.append(broj)
            a += 1
    elif (kolona == "B") or (kolona == "b"):
        if broj in B:
            print("Greska: Broj vec postoji u datoj koloni!")
        else:
            x = -150
            B.append(broj)
            b += 1
    elif (kolona == "C") or (kolona == "c"):
        if broj in C:
            print("Greska: Broj vec postoji u datoj koloni!")
        else:
            x = -110
            C.append(broj)
            c += 1
    elif (kolona == "D") or (kolona == "d"):
        if broj in D:
            print("Greska: Broj vec postoji u datoj koloni!")
        else:
            x = -70
            D.append(broj)
            d += 1
    elif (kolona == "E") or (kolona == "e"):
        if broj in E:
            print("Greska: Broj vec postoji u datoj koloni!")
        else:
            x = -30
            E.append(broj)
            e += 1
    elif (kolona == "F") or (kolona == "f"):
        if broj in F:
            print("Greska: Broj vec postoji u datoj koloni!")
        else:
            x = 10
            F.append(broj)
            f += 1
    elif (kolona == "G") or (kolona == "g"):
        if broj in G:
            print("Greska: Broj vec postoji u datoj koloni!")
        else:
            x = 50
            G.append(broj)
            g += 1
    elif (kolona == "H") or (kolona == "h"):
        if broj in H:
            print("Greska: Broj vec postoji u datoj koloni!")
        else:
            x = 90
            H.append(broj)
            h += 1
    elif (kolona == "I") or (kolona == "i"):
        if broj in I:
            print("Greska: Broj vec postoji u datoj koloni!")
        else:
            x = 130
            I.append(broj)
            i += 1

    if red == 1:
        if broj in red1:
            print("Greska: Broj vec postoji u datom redu!")
        else:
            y = 130
            red1.append(broj)
    elif red == 2:
        if broj in red2:
            print("Greska: Broj vec postoji u datom redu!")
        else:
            y = 90
            red2.append(broj)
    elif red == 3:
        if broj in red3:
            print("Greska: Broj vec postoji u datom redu!")
        else:
            y = 50
            red3.append(broj)
    elif red == 4:
        if broj in red4:
            print("Greska: Broj vec postoji u datom redu!")
        else:
            y = 10
            red4.append(broj)
    elif red == 5:
        if broj in red5:
            print("Greska: Broj vec postoji u datom redu!")
        else:
            y = -30
            red5.append(broj)
    elif red == 6:
        if broj in red6:
            print("Greska: Broj vec postoji u datom redu!")
        else:
            y = -70
            red6.append(broj)
    elif red == 7:
        if broj in red7:
            print("Greska: Broj vec postoji u datom redu!")
        else:
            y = -110
            red7.append(broj)
    elif red == 8:
        if broj in red8:
            print("Greska: Broj vec postoji u datom redu!")
        else:
            y = -150
            red8.append(broj)
    elif red == 9:
        if broj in red9:
            print("Greska: Broj vec postoji u datom redu!")
        else:
            y = -190
            red9.append(broj)

    if kolona == "A" or kolona == "a" or kolona == "B" or kolona == "b" or kolona == "C" or kolona == "c":
        if red in [1, 2, 3]:
            if broj in kucica1:
                print("Greska: Broj vec postoji u datoj kucici!")
            else:
                kucica1.append(broj)
        elif red in [4, 5, 6]:
            if broj in kucica4:
                print("Greska: Broj vec postoji u datoj kucici!")
            else:
                kucica4.append(broj)
        elif red in [7, 8, 9]:
            if broj in kucica7:
                print("Greska: Broj vec postoji u datoj kucici!")
            else:
                kucica7.append(broj)
    if kolona == "D" or kolona == "d" or kolona == "E" or kolona == "e" or kolona == "F" or kolona == "f":
        if red in [1, 2, 3]:
            if broj in kucica2:
                print("Greska: Broj vec postoji u datoj kucici!")
            else:
                kucica2.append(broj)
        elif red in [4, 5, 6]:
            if broj in kucica5:
                print("Greska: Broj vec postoji u datoj kucici!")
            else:
                kucica5.append(broj)
        elif red in [7, 8, 9]:
            if broj in kucica8:
                print("Greska: Broj vec postoji u datoj kucici!")
            else:
                kucica8.append(broj)
    if kolona == "G" or kolona == "g" or kolona == "H" or kolona == "h" or kolona == "I" or kolona == "i":
        if red in [1, 2, 3]:
            if broj in kucica3:
                print("Greska: Broj vec postoji u datoj kucici!")
            else:
                kucica3.append(broj)
        elif red in [4, 5, 6]:
            if broj in kucica6:
                print("Greska: Broj vec postoji u datoj kucici!")
            else:
                kucica6.append(broj)
        elif red in [7, 8, 9]:
            if broj in kucica9:
                print("Greska: Broj vec postoji u datoj kucici!")
            else:
                kucica9.append(broj)

    unos(broj, x, y)

strelica.setposition(-200, 200)
strelica.write("KRAJ IGRE!", font=("Arial", 32, "bold"))

turtle.exitonclick()

hi guys, I am new in programminG and I have this project for my school. I have to make Sudoku in python and this is what I have done, but it is not finished and it has some mistakes, e.g. if it appends one column and then it realises that this number is already in the rove I don't know how to delete it from the column. PLEASE HELP


Aucun commentaire:

Enregistrer un commentaire