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()
嗨,伙计们,我是新来的编程,我有一个项目为我的学校。我必须用python做数独,这是我做的,但它还没有完成,它有一些错误,例如,如果它附加一列,然后它意识到这个数字已经在rove中,我不知道如何从列中删除它。 请帮忙
为了解决您的问题,您需要添加一个变量,该变量将告诉您是否在列中找到了数字,所以不需要检查是在行还是框中的数字。在
因此,要修复代码应该如下所示:
所以如果变量
error
是True
,那么就不调用函数unos
。在为了使代码更具可读性(您的代码不容易阅读,并且应该通过使用for循环和函数来缩短代码的长度),您应该使用函数打印错误消息并返回
^{pr2}$True
,它应该如下所示:整个代码应该是:
代码仍然不漂亮,但这是编程中的问题,您应该使用for循环(存储行、列和框信息的变量应该在list中,然后使用for循环和one if检查输入的数字是否存在于行中,而不是使用9个if: 例如,不要使用:
您应该使用:
然后当您检查输入的数字是否已经在列中时,而不是使用:
您应该使用:
类似的逻辑适用于行和框,如果你想改进你的代码,你应该这样做。)
你的数独程序也有其他问题,比如:你可以在已经存在数字的地方输入数字,你不能删除输入的数字。。。在
注:如果你要使用我的任何代码,我建议你重命名变量,因为你的代码不是英文的。在
相关问题 更多 >
编程相关推荐