2016-06-25 22 views
-1
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() 

Hallo Leute, ich bin neu in programminG und ich habe dieses Projekt für meine Schule. Ich muss Sudoku in Python machen und das ist was ich getan habe, aber es ist nicht fertig und es hat einige Fehler, z. wenn es eine Spalte anfügt und dann merkt, dass diese Nummer bereits im Rove ist, weiß ich nicht, wie ich es aus der Spalte löschen soll. BITTE HILFEProgrammierung Sudoku in Python

+0

Dies ist ein gutes Beispiel dafür, wie [Kopieren und Einfügen-Programmieren] (https://en.wikipedia.org/wiki/Copy_and_paste_programming) Ihren eigenen Code ruiniert. Tu es nicht! –

Antwort

0

Um Ihr Problem zu beheben, müssen Sie eine Variable hinzufügen, die Ihnen sagen wird, ob die Nummer in der Spalte gefunden wurde, so dass die Nummer in der Zeile oder im Feld nicht überprüft werden muss.

So zu beheben, dass Ihr Code sollte wie folgt aussehen:

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? ")) 
    error = False 

    if (kolona == "A") or (kolona == "a"): 
     if broj in A: 
      print("Greska: Broj vec postoji u datoj koloni!") 
      error = True 
     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!") 
      error = True 
     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!") 
      error = True 
     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!") 
      error = True 
     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!") 
      error = True 
     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!") 
      error = True 
     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!") 
      error = True 
     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!") 
      error = True 
     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!") 
      error = True 
     else: 
      x = 130 
      I.append(broj) 
      i += 1 

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

    if error == False: 
     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!") 
        error = True 
       else: 
        kucica1.append(broj) 
      elif red in [4, 5, 6]: 
       if broj in kucica4: 
        print("Greska: Broj vec postoji u datoj kucici!") 
        error = True 
       else: 
        kucica4.append(broj) 
      elif red in [7, 8, 9]: 
       if broj in kucica7: 
        print("Greska: Broj vec postoji u datoj kucici!") 
        error = True 
       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!") 
        error = True 
       else: 
        kucica2.append(broj) 
      elif red in [4, 5, 6]: 
       if broj in kucica5: 
        print("Greska: Broj vec postoji u datoj kucici!") 
        error = True 
       else: 
        kucica5.append(broj) 
      elif red in [7, 8, 9]: 
       if broj in kucica8: 
        print("Greska: Broj vec postoji u datoj kucici!") 
        error = True 
       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!") 
        error = True 
       else: 
        kucica3.append(broj) 
      elif red in [4, 5, 6]: 
       if broj in kucica6: 
        print("Greska: Broj vec postoji u datoj kucici!") 
        error = True 
       else: 
        kucica6.append(broj) 
      elif red in [7, 8, 9]: 
       if broj in kucica9: 
        print("Greska: Broj vec postoji u datoj kucici!") 
        error = True 
       else: 
        kucica9.append(broj) 

    if error == False: 
     unos(broj, x, y) 

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

turtle.exitonclick() 

so, wenn die Variable errorTrue ist dann rufen Sie nicht Funktion unos.

Um den Code lesbarer zu machen (übrigens ist Ihr Code nicht einfach zu lesen, und viele davon sollten mit for loops und Funktionen gekürzt werden), sollten Sie die Funktion zum Ausdrucken der Fehlermeldung verwenden und True zurückgeben so etwas wie dieses:

def print_error(error_message): 
    print(error_message) 
    return True 

und ganze Code wäre:

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")) 


def print_error(error_message): 
    print(error_message) 
    return True 


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? ")) 
    error = False 

    if (kolona == "A") or (kolona == "a"): 
     if broj in A: 
      error = print_error("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: 
      error = print_error("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: 
      error = print_error("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: 
      error = print_error("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: 
      error = print_error("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: 
      error = print_error("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: 
      error = print_error("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: 
      error = print_error("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: 
      error = print_error("Greska: Broj vec postoji u datoj koloni!") 
     else: 
      x = 130 
      I.append(broj) 
      i += 1 

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

    if error == False: 
     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: 
        error = print_error("Greska: Broj vec postoji u datoj kucici!") 
       else: 
        kucica1.append(broj) 
      elif red in [4, 5, 6]: 
       if broj in kucica4: 
        error = print_error("Greska: Broj vec postoji u datoj kucici!") 
       else: 
        kucica4.append(broj) 
      elif red in [7, 8, 9]: 
       if broj in kucica7: 
        error = print_error("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: 
        error = print_error("Greska: Broj vec postoji u datoj kucici!") 
       else: 
        kucica2.append(broj) 
      elif red in [4, 5, 6]: 
       if broj in kucica5: 
        error = print_error("Greska: Broj vec postoji u datoj kucici!") 
       else: 
        kucica5.append(broj) 
      elif red in [7, 8, 9]: 
       if broj in kucica8: 
        error = print_error("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: 
        error = print_error("Greska: Broj vec postoji u datoj kucici!") 
       else: 
        kucica3.append(broj) 
      elif red in [4, 5, 6]: 
       if broj in kucica6: 
        error = print_error("Greska: Broj vec postoji u datoj kucici!") 
       else: 
        kucica6.append(broj) 
      elif red in [7, 8, 9]: 
       if broj in kucica9: 
        error = print_error("Greska: Broj vec postoji u datoj kucici!") 
       else: 
        kucica9.append(broj) 

    if error == False: 
     unos(broj, x, y) 

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

turtle.exitonclick() 

Code immer noch nicht schön ist, aber das ist Problem bei der Programmierung Sie für Schleifen (Ihre Variablen verwenden sollten, wo Sie speichern Informationen über Zeilen, Spalten a nd Boxen sollten in der Liste und dann sollten Sie prüfen, ob eingegebene Nummer in der Reihe unter Verwendung von für Schleife und ein solches vorhanden ist, wenn, und nicht mithilfe von neun ifs: zum Beispiel statt mit:

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] 

Sie verwenden sollten:

columns = [[5, 6, 8, 4, 7], [3, 9, 6], [8], [1, 8, 4], [7, 9, 6, 2, 1, 8], [5, 3, 9], [2], [6, 8, 7], [3, 1, 6, 5, 9]] 

und dann, wenn Sie überprüfen, ob eingegebene Nummer bereits in der Spalte ist anstelle der Verwendung:

if (kolona == "A") or (kolona == "a"): 
    if broj in A: 
     error = print_error("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: 
     error = print_error("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: 
     error = print_error("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: 
     error = print_error("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: 
     error = print_error("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: 
     error = print_error("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: 
     error = print_error("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: 
     error = print_error("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: 
     error = print_error("Greska: Broj vec postoji u datoj koloni!") 
    else: 
     x = 130 
     I.append(broj) 
     i += 1 

Sie verwenden sollten:

i = ord(kolona.upper())-65 # upper() makes Capital Letters more at http://www.tutorialspoint.com/python/string_upper.htm 
          # ord() gives Unicode code of character more at https://docs.python.org/3/library/functions.html#ord 
          # -65 is used to make 65 in 0, 66 in 1 and so on 
         # idea is to get number 0 for 'A', 1 for 'B' 3 for 'D' and so on 
if broj in columns[i]: 
    error = print_error("Greska: Broj vec postoji u datoj koloni!") 
else: 
    x = -190 
    columns[i].append(broj) 
    a += 1 

ähnliche Logik gilt für Zeilen und Boxen, wenn Sie Ihren Code verbessern möchten, sollten Sie etwas tun)

Auch Ihre Sudoku-Programm haben andere Probleme wie:. Sie können Eingabenummer Ort, wo Nummer existiert bereits, Sie können die eingegebene Nummer nicht löschen ...

PS: Wenn Sie irgendeinen Code verwenden möchten, schlage ich vor, Variablen umzubenennen, weil Ihr Code nicht auf Englisch ist.