# -*- coding: utf-8 -*- # import time sudoku = input() # t1 = time.time() sudoku = sudoku.replace(" ", "") liczba_pion = 0 liczba_poziom = 0 liczba_klatka = 0 pion = [[], [], [], [], [], [], [], [], []] poziom = [[], [], [], [], [], [], [], [], []] klatka = [[], [], [], [], [], [], [], [], []] # wczytanie liczb z sudoku do poziomu-------------------------------------------------------------------- for i, cyfry in enumerate(sudoku): if i % 9 == 0 and i != 0: liczba_poziom += 1 if liczba_poziom == 9: liczba_poziom = 8 break poziom[liczba_poziom].append(cyfry) # wejscie w uzupełnianie sudoku---------------------------------------------------------------------------------- while ('.' in poziom[0] or '.' in poziom[1] or '.' in poziom[2] or '.' in poziom[3] or '.' in poziom[4] or '.' in poziom[5] or '.' in poziom[6] or '.' in poziom[7] or '.' in poziom[8] ): if len(sudoku) != 81: break print() for z in pion: print(z) print() for i in range(81): # wyczyszczenie pozostalej zawartosci z tablic for n in range(9): del klatka[n][0:] del pion[n][0:] #wczytanie z poziomu dp pionu i posegregowanie na klatki for x,l in enumerate(poziom): for j, liczby in enumerate(poziom[x]): if (j == 0 or j == 1 or j == 2) and x <= 2: klatka[0].append(liczby) elif (j == 3 or j == 4 or j == 5) and x <= 2: klatka[1].append(liczby) elif (j == 6 or j == 7 or j == 8) and x <= 2: klatka[2].append(liczby) elif (j == 0 or j == 1 or j == 2) and (x > 2 and x <= 5): klatka[3].append(liczby) elif (j == 3 or j == 4 or j == 5) and (x > 2 and x <= 5): klatka[4].append(liczby) elif (j == 6 or j == 7 or j == 8) and (x > 2 and x <= 5): klatka[5].append(liczby) elif (j == 0 or j == 1 or j == 2) and (x > 5 and x <= 8): klatka[6].append(liczby) elif (j == 3 or j == 4 or j == 5) and (x > 5 and x <= 8): klatka[7].append(liczby) elif (j == 6 or j == 7 or j == 8) and (x > 5 and x <= 8): klatka[8].append(liczby) pion[j].append(liczby) # w zaleznosci od i dopasowanie do klatki poziomu i pionu if ( i == 0 or i == 1 or i == 2 or i == 9 or i == 10 or i == 11 or i == 18 or i == 19 or i == 20 ): liczba_klatka = 0 if i == 0 or i == 1 or i == 2: liczba_poziom = 0 elif i == 9 or i == 10 or i == 11: liczba_poziom = 1 elif i == 18 or i == 19 or i == 20: liczba_poziom = 2 if i % 3 == 0: liczba_pion = 0 elif i % 3 == 1: liczba_pion = 1 elif i % 3 == 2: liczba_pion = 2 elif ( i == 3 or i == 4 or i == 5 or i == 12 or i == 13 or i == 14 or i == 21 or i == 22 or i == 23 ): liczba_klatka = 1 if i == 3 or i == 4 or i == 5: liczba_poziom = 0 elif i == 12 or i == 13 or i == 14: liczba_poziom = 1 elif i == 21 or i == 22 or i == 23: liczba_poziom = 2 if i % 3 == 0: liczba_pion = 3 elif i % 3 == 1: liczba_pion = 4 elif i % 3 == 2: liczba_pion = 5 elif ( i == 6 or i == 7 or i == 8 or i == 15 or i == 16 or i == 17 or i == 24 or i == 25 or i == 26 ): liczba_klatka = 2 if i == 6 or i == 7 or i == 8: liczba_poziom = 0 elif i == 15 or i == 16 or i == 17: liczba_poziom = 1 elif i == 24 or i == 25 or i == 26: liczba_poziom = 2 if i % 3 == 0: liczba_pion = 6 elif i % 3 == 1: liczba_pion = 7 elif i % 3 == 2: liczba_pion = 8 # ------------------------------------------------------------------------------------------------------------------ elif ( i == 27 or i == 28 or i == 29 or i == 36 or i == 37 or i == 38 or i == 45 or i == 46 or i == 47 ): liczba_klatka = 3 if i == 27 or i == 28 or i == 29: liczba_poziom = 3 elif i == 36 or i == 37 or i == 38: liczba_poziom = 4 elif i == 47 or i == 46 or i == 45: liczba_poziom = 5 if i % 3 == 0: liczba_pion = 0 elif i % 3 == 1: liczba_pion = 1 elif i % 3 == 2: liczba_pion = 2 elif ( i == 30 or i == 31 or i == 32 or i == 39 or i == 40 or i == 41 or i == 48 or i == 49 or i == 50 ): liczba_klatka = 4 if i == 30 or i == 31 or i == 32: liczba_poziom = 3 elif i == 39 or i == 40 or i == 41: liczba_poziom = 4 elif i == 48 or i == 49 or i == 50: liczba_poziom = 5 if i % 3 == 0: liczba_pion = 3 elif i % 3 == 1: liczba_pion = 4 elif i % 3 == 2: liczba_pion = 5 elif ( i == 33 or i == 34 or i == 35 or i == 42 or i == 43 or i == 44 or i == 51 or i == 52 or i == 53 ): liczba_klatka = 5 if i == 33 or i == 34 or i == 35: liczba_poziom = 3 elif i == 42 or i == 43 or i == 44: liczba_poziom = 4 elif i == 51 or i == 52 or i == 53: liczba_poziom = 5 if i % 3 == 0: liczba_pion = 6 elif i % 3 == 1: liczba_pion = 7 elif i % 3 == 2: liczba_pion = 8 # ----------------------------------------------------------------------------------------------------------------- elif ( i == 54 or i == 55 or i == 56 or i == 63 or i == 64 or i == 65 or i == 72 or i == 73 or i == 74 ): liczba_klatka = 6 if i == 54 or i == 55 or i == 56: liczba_poziom = 6 elif i == 63 or i == 64 or i == 65: liczba_poziom = 7 elif i == 72 or i == 73 or i == 74: liczba_poziom = 8 if i % 3 == 0: liczba_pion = 0 elif i % 3 == 1: liczba_pion = 1 elif i % 3 == 2: liczba_pion = 2 elif ( i == 57 or i == 58 or i == 59 or i == 66 or i == 67 or i == 68 or i == 75 or i == 76 or i == 77 ): liczba_klatka = 7 if i == 57 or i == 58 or i == 59: liczba_poziom = 6 elif i == 66 or i == 67 or i == 68: liczba_poziom = 7 elif i == 75 or i == 76 or i == 77: liczba_poziom = 8 if i % 3 == 0: liczba_pion = 3 elif i % 3 == 1: liczba_pion = 4 elif i % 3 == 2: liczba_pion = 5 elif ( i == 60 or i == 61 or i == 62 or i == 69 or i == 70 or i == 71 or i == 78 or i == 79 or i == 80 ): liczba_klatka = 8 if i == 60 or i == 61 or i == 62: liczba_poziom = 6 elif i == 69 or i == 70 or i == 71: liczba_poziom = 7 elif i == 78 or i == 79 or i == 80: liczba_poziom = 8 if i % 3 == 0: liczba_pion = 6 elif i % 3 == 1: liczba_pion = 7 elif i % 3 == 2: liczba_pion = 8 #---------------------------------------------------------------------------------------------------------- # wejscie do petli z warunkami kotre liczba musi spelnic liczby ida od 1 do 9 i po kolei sa srawdzane for x in range(1, 10): j = str(x) if j in klatka[liczba_klatka]: continue if j in poziom[liczba_poziom]: continue if j in pion[liczba_pion]: continue if poziom[liczba_poziom][i%9] != '.': break if liczba_pion % 3 == 0: if liczba_poziom % 3 == 0: # warunek z dwiema cyframi------------------------------------------------------------------ if ( klatka[liczba_klatka][3] != "." and klatka[liczba_klatka][6] != "." and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != "." and klatka[liczba_klatka][2] != "." and (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z jedna cyfra--------------------------------------------------------------------- elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion + 1]) and klatka[liczba_klatka][2] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion + 2]) and klatka[liczba_klatka][1] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) and (j in poziom[liczba_poziom + 1]) and klatka[liczba_klatka][6] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) and (j in poziom[liczba_poziom + 2]) and klatka[liczba_klatka][3] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 2]) and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z pięcioma cyframi----------------------------------------------------------------- elif ( klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][8] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][6] != '.' and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][6] != '.' and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z trzema cyframi ------------------------------------------------------------- elif ( klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][3] != '.' and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z ostatnia cyfra-------------------------------------------------------------- #klatka elif ( j not in klatka[liczba_klatka] and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) #??????????????????????????????????????????????????????????????????????????????????????????? elif liczba_poziom % 3 == 1: # warunek z dwiema cyframi------------------------------------------------------------------- if ( klatka[liczba_klatka][4] != "." and klatka[liczba_klatka][5] != "." and (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != "." and klatka[liczba_klatka][6] != "." and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z jedna cyfra--------------------------------------------------------------------- elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 2]) and klatka[liczba_klatka][4] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 1]) and klatka[liczba_klatka][5] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) and (j in poziom[liczba_poziom + 1]) and klatka[liczba_klatka][0] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) and (j in poziom[liczba_poziom - 1]) and klatka[liczba_klatka][6] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z pięcioma cyframi----------------------------------------------------------------- elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][8] != '.' and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z trzema cyframi ------------------------------------------------------------- elif ( klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][4] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z ostatnia cyfra-------------------------------------------------------------- #klatka elif ( j not in klatka[liczba_klatka] and klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) #??????????????????????????????????????????????????????????????????????????????????????????? elif liczba_poziom % 3 == 2: # warunek z dwoma cyframi----------------------------------------------------------------- if ( klatka[liczba_klatka][3] != "." and klatka[liczba_klatka][0] != "." and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][8] != "." and klatka[liczba_klatka][7] != "." and (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z jedna cyfra----------------------------------------------------------------- elif ( (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion + 1]) and klatka[liczba_klatka][8] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion + 2]) and klatka[liczba_klatka][7] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) and (j in poziom[liczba_poziom - 1]) and klatka[liczba_klatka][0] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) and (j in poziom[liczba_poziom - 2]) and klatka[liczba_klatka][3] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom - 2]) and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z pięcioma cyframi----------------------------------------------------------------- elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][8] != '.' and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][7] != '.' and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z trzema cyframi ------------------------------------------------------------- elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z ostatnia cyfra-------------------------------------------------------------- #klatka elif ( j not in klatka[liczba_klatka] and klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) #??????????????????????????????????????????????????????????????????????????????????????????? # -------------------------------------------------------------------------------------------------- elif liczba_pion % 3 == 1: if liczba_poziom % 3 == 0: # warunek z dwiema cyframi----------------------------------------------------------------- if ( klatka[liczba_klatka][4] != "." and klatka[liczba_klatka][7] != "." and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][2] != "." and klatka[liczba_klatka][0] != "." and (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z jedna cyfra----------------------------------------------------------------- elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion + 1]) and klatka[liczba_klatka][0] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion - 1]) and klatka[liczba_klatka][2] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) and (j in poziom[liczba_poziom + 2]) and klatka[liczba_klatka][4] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) and (j in poziom[liczba_poziom + 1]) and klatka[liczba_klatka][7] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 2]) and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z pięcioma cyframi----------------------------------------------------------------- elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z trzema cyframi ------------------------------------------------------------- elif ( klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z ostatnia cyfra-------------------------------------------------------------- #klatka elif ( j not in klatka[liczba_klatka] and klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) #??????????????????????????????????????????????????????????????????????????????????????????? elif liczba_poziom % 3 == 1: # warunek z dwiema cyframi----------------------------------------------------------------- if ( klatka[liczba_klatka][1] != "." and klatka[liczba_klatka][7] != "." and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][5] != "." and klatka[liczba_klatka][3] != "." and (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z jedna cyfra----------------------------------------------------------------- elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 1]) and klatka[liczba_klatka][5] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 1]) and klatka[liczba_klatka][3] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) and (j in poziom[liczba_poziom + 1]) and klatka[liczba_klatka][1] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) and (j in poziom[liczba_poziom - 1]) and klatka[liczba_klatka][7] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z pięcioma cyframi----------------------------------------------------------------- elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][8] != '.' and klatka[liczba_klatka][7] != '.' and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z trzema cyframi ------------------------------------------------------------- elif ( klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][8] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][3] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z ostatnia cyfra-------------------------------------------------------------- #klatka elif ( j not in klatka[liczba_klatka] and klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) #??????????????????????????????????????????????????????????????????????????????????????????? elif liczba_poziom % 3 == 2: # warunek z dwiema cyframi----------------------------------------------------------------- if ( klatka[liczba_klatka][1] != "." and klatka[liczba_klatka][4] != "." and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][8] != "." and klatka[liczba_klatka][6] != "." and (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z jedna cyfra----------------------------------------------------------------- elif ( (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion - 1]) and klatka[liczba_klatka][8] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion + 1]) and klatka[liczba_klatka][6] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) and (j in poziom[liczba_poziom - 1]) and klatka[liczba_klatka][1] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) and (j in poziom[liczba_poziom - 2]) and klatka[liczba_klatka][4] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion + 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z pięcioma cyframi----------------------------------------------------------------- elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][6] != '.' and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][8] != '.' and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z trzema cyframi ------------------------------------------------------------- elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][6] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][6] != '.' and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z ostatnia cyfra-------------------------------------------------------------- #klatka elif ( j not in klatka[liczba_klatka] and klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) #??????????????????????????????????????????????????????????????????????????????????????????? # --------------------------------------------------------------------------------------------------- elif liczba_pion % 3 == 2: if liczba_poziom % 3 == 0: # warunek z dwiema cyframi----------------------------------------------------------------- if ( klatka[liczba_klatka][5] != "." and klatka[liczba_klatka][8] != "." and (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != "." and klatka[liczba_klatka][1] != "." and (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z jedna cyfra----------------------------------------------------------------- elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion - 1]) and klatka[liczba_klatka][0] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion - 2]) and klatka[liczba_klatka][1] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) and (j in poziom[liczba_poziom + 1]) and klatka[liczba_klatka][8] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) and (j in poziom[liczba_poziom + 2]) and klatka[liczba_klatka][5] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z pięcioma cyframi----------------------------------------------------------------- elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][8] != '.' and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom + 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z trzema cyframi ------------------------------------------------------------- elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][5] != '.' and (j in poziom[liczba_poziom + 2]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z ostatnia cyfra-------------------------------------------------------------- #klatka elif ( j not in klatka[liczba_klatka] and klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) #??????????????????????????????????????????????????????????????????????????????????????????? elif liczba_poziom % 3 == 1: # warunek z dwiema cyframi----------------------------------------------------------------- if ( klatka[liczba_klatka][2] != "." and klatka[liczba_klatka][8] != "." and (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) ): print('1',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][4] != "." and klatka[liczba_klatka][3] != "." and (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom + 1]) ): print('2',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z jedna cyfra----------------------------------------------------------------- elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 1]) and klatka[liczba_klatka][3] != "." ): print('3',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion - 2]) and klatka[liczba_klatka][4] != "." ): print('4',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) and (j in poziom[liczba_poziom + 1]) and klatka[liczba_klatka][2] != "." ): print('5',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) and (j in poziom[liczba_poziom - 1]) and klatka[liczba_klatka][8] != '.' ): print('6',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom + 1]) and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) ): print('7',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z pięcioma cyframi----------------------------------------------------------------- elif ( klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][8] != '.' and klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][6] != '.' and (j in pion[liczba_pion - 1]) ): print('8',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in pion[liczba_pion - 2]) ): print('9',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and (j in poziom[liczba_poziom + 1]) ): print('10',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) ): print('11',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z trzema cyframi ------------------------------------------------------------- elif ( klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][7] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 2]) ): print('12',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][4] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion - 2]) ): print('13',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][8] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 1]) ): print('14',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][2] != '.' and (j in poziom[liczba_poziom + 1]) and (j in pion[liczba_pion - 1]) ): print('15',i) poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z ostatnia cyfra-------------------------------------------------------------- #??????????????????????????????????????????????????????????????????????????????????????????? elif liczba_poziom % 3 == 2: # warunek z dwiema cyframi----------------------------------------------------------------- if ( klatka[liczba_klatka][2] != "." and klatka[liczba_klatka][5] != "." and (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][6] != "." and klatka[liczba_klatka][7] != "." and (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z jedna cyfra----------------------------------------------------------------- elif ( (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion - 1]) and klatka[liczba_klatka][6] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom - 1]) and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion - 2]) and klatka[liczba_klatka][7] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) and (j in poziom[liczba_poziom - 1]) and klatka[liczba_klatka][2] != "." ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) and (j in poziom[liczba_poziom - 2]) and klatka[liczba_klatka][5] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( (j in poziom[liczba_poziom - 2]) and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 1]) and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z pięcioma cyframi----------------------------------------------------------------- elif ( klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][6] != '.' and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][7] != '.' and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z trzema cyframi ------------------------------------------------------------- elif ( klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][7] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 2]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][6] != '.' and (j in poziom[liczba_poziom - 2]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) elif ( klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][6] != '.' and (j in poziom[liczba_poziom - 1]) and (j in pion[liczba_pion - 1]) ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) # warunek z ostatnia cyfra-------------------------------------------------------------- #klatka elif ( j not in klatka[liczba_klatka] and klatka[liczba_klatka][0] != '.' and klatka[liczba_klatka][1] != '.' and klatka[liczba_klatka][2] != '.' and klatka[liczba_klatka][3] != '.' and klatka[liczba_klatka][4] != '.' and klatka[liczba_klatka][5] != '.' and klatka[liczba_klatka][6] != '.' and klatka[liczba_klatka][7] != '.' ): poziom[liczba_poziom].pop(i%9) poziom[liczba_poziom].insert(i%9,j) #??????????????????????????????????????????????????????????????????????????????????????????? for z in poziom: print(z)