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

привет, ребята, я новичок в программеminG, и у меня есть этот проект для моей школы. Я должен сделать Sudoku в python, и это то, что я сделал, но он не закончен и имеет некоторые ошибки, например. если он добавляет один столбец, а затем он понимает, что это число уже в рове, я не знаю, как удалить его из столбца. ПОЖАЛУЙСТА, ПОМОЩЬПрограммирование Sudoku in python

+0

Это хороший пример того, как [копирование и вставка-программирование] (https://en.wikipedia.org/wiki/Copy_and_paste_programming) разрушает ваш собственный код. Не делай этого! –

ответ

0

Чтобы исправить вашу проблему, вам нужно добавить переменную, которая сообщит вам, был ли номер найден в столбце, поэтому нет необходимости проверять номер в строке или в поле.

Таким образом, чтобы исправить, что ваш код должен выглядеть следующим образом:

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

так, если переменная error является True, то вы не вызываете функцию unos.

Чтобы сделать код более удобочитаемым (кстати, ваш код непросто читать, а его часть должна быть сокращена с помощью циклов и функций), вы должны использовать функцию для печати сообщения об ошибке и возврата True, это должно быть что-то вроде этого:

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

и весь код будет:

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

код еще не очень, но это проблема в программировании следует использовать для петель (переменные, где хранить информацию о строки, столбцы a й коробка должна быть в списке, а затем вы должны проверить, если введенный номер существует в строке, используя для петли и один, если и не используя девять IFS: , например, вместо использования:

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] 

вы должны использовать:

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]] 

, а затем, когда вы проверяете, если введенный номер уже в колонке вместо использования:

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 

вы должны использовать:

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 

подобные логик относится к строкам и коробкам, если вы хотите улучшить свой код, который вы должны сделать что-то подобное)

Кроме того, ваш судок программы есть и другие проблемы, такие как:. Вы можете номер вход на месте, где число уже существует, вы не можете удалить введенный номер ...

PS: если вы собираетесь использовать любой из моих кодов, я предлагаю вам переименовать переменные, потому что ваш код не на английском языке.