Advertisement
Schleimpilz

Sudoku test

May 29th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.48 KB | None | 0 0
  1. #zahlen für zeilen, buchstaben für spalten
  2.  
  3. square1a=[]
  4. square2a=[]
  5. square3a=[]
  6. square4a=[5]
  7. square5a=[6]
  8. square6a=[]
  9. square7a=[3]
  10. square8a=[9]
  11. square9a=[]
  12.  
  13. square1b=[4]
  14. square2b=[]
  15. square3b=[]
  16. square4b=[]
  17. square5b=[]
  18. square6b=[7]
  19. square7b=[]
  20. square8b=[]
  21. square9b=[]
  22.  
  23. square1c=[5]
  24. square2c=[]
  25. square3c=[7]
  26. square4c=[]
  27. square5c=[8]
  28. square6c=[]
  29. square7c=[2]
  30. square8c=[]
  31. square9c=[]
  32.  
  33. square1d=[7]
  34. square2d=[8]
  35. square3d=[6]
  36. square4d=[9]
  37. square5d=[5]
  38. square6d=[]
  39. square7d=[4]
  40. square8d=[1]
  41. square9d=[]
  42.  
  43. square1e=[]
  44. square2e=[]
  45. square3e=[4]
  46. square4e=[6]
  47. square5e=[]
  48. square6e=[]
  49. square7e=[]
  50. square8e=[]
  51. square9e=[]
  52.  
  53. square1f=[]
  54. square2f=[5]
  55. square3f=[]
  56. square4f=[4]
  57. square5f=[1]
  58. square6f=[]
  59. square7f=[]
  60. square8f=[]
  61. square9f=[3]
  62.  
  63. square1g=[]
  64. square2g=[4]
  65. square3g=[]
  66. square4g=[]
  67. square5g=[]
  68. square6g=[]
  69. square7g=[1]
  70. square8g=[]
  71. square9g=[8]
  72.  
  73. square1h=[6]
  74. square2h=[]
  75. square3h=[]
  76. square4h=[]
  77. square5h=[3]
  78. square6h=[9]
  79. square7h=[]
  80. square8h=[]
  81. square9h=[]
  82.  
  83. square1i=[1]
  84. square2i=[]
  85. square3i=[2]
  86. square4i=[]
  87. square5i=[]
  88. square6i=[]
  89. square7i=[]
  90. square8i=[6]
  91. square9i=[]
  92.  
  93.  
  94.  
  95. row1=[square1a,square2a,square3a,square4a,square5a,square6a,square7a,square8a,square9a]
  96. row2=[square1b,square2b,square3b,square4b,square5b,square6b,square7b,square8b,square9b]
  97. row3=[square1c,square2c,square3c,square4c,square5c,square6c,square7c,square8c,square9c]
  98. row4=[square1d,square2d,square3d,square4d,square5d,square6d,square7d,square8d,square9d]
  99. row5=[square1e,square2e,square3e,square4e,square5e,square6e,square7e,square8e,square9e]
  100. row6=[square1f,square2f,square3f,square4f,square5f,square6f,square7f,square8f,square9f]
  101. row7=[square1g,square2g,square3g,square4g,square5g,square6g,square7g,square8g,square9g]
  102. row8=[square1h,square2h,square3h,square4h,square5h,square6h,square7h,square8h,square9h]
  103. row9=[square1i,square2i,square3i,square4i,square5i,square6i,square7i,square8i,square9i]
  104.  
  105. line1=[square1a,square1b,square1c,square1d,square1e,square1f,square1g,square1h,square1i]
  106. line2=[square2a,square2b,square2c,square2d,square2e,square2f,square2g,square2h,square2i]
  107. line3=[square3a,square3b,square3c,square3d,square3e,square3f,square3g,square3h,square3i]
  108. line4=[square4a,square4b,square4c,square4d,square4e,square4f,square4g,square4h,square4i]
  109. line5=[square5a,square5b,square5c,square5d,square5e,square5f,square5g,square5h,square5i]
  110. line6=[square6a,square6b,square6c,square6d,square6e,square6f,square6g,square6h,square6i]
  111. line7=[square7a,square7b,square7c,square7d,square7e,square7f,square7g,square7h,square7i]
  112. line8=[square8a,square8b,square8c,square8d,square8e,square8f,square8g,square8h,square8i]
  113. line9=[square9a,square9b,square9c,square9d,square9e,square9f,square9g,square9h,square9i]
  114.  
  115. block1=[square1a,square1b,square1c,square2a,square2b,square2c,square3a,square3b,square3c]
  116. block2=[square1d,square1e,square1f,square2d,square2e,square2f,square3d,square3e,square3f]
  117. block3=[square1g,square1h,square1i,square2g,square2h,square2i,square3g,square3h,square3i]
  118. block4=[square4a,square4b,square4c,square5a,square5b,square5c,square6a,square6b,square6c]
  119. block5=[square4d,square4e,square4f,square5d,square5e,square5f,square6d,square6e,square6f]
  120. block6=[square4g,square4h,square4i,square5g,square5h,square5i,square6g,square6h,square6i]
  121. block7=[square7a,square7b,square7c,square8a,square8b,square8c,square9a,square9b,square9c]
  122. block8=[square7d,square7e,square7f,square8d,square8e,square8f,square9d,square9e,square9f]
  123. block9=[square7g,square7h,square7i,square8g,square8h,square8i,square9g,square9h,square9i]
  124.  
  125. sudoku=[row1,row2,row3,row4,row5,row6,row7,row8,row9]
  126.  
  127. allSudoku=[row1,row2,row3,row4,row5,row6,row7,row8,row9,line1,line2,line3,line4,line5,line6,line7,line8,line9,block1,block2,block3,block4,block5,block6,block7,block8,block9]
  128.  
  129. def checkSquare(square):
  130. if square[1]:
  131. done=true
  132.  
  133. else:
  134. done=false
  135.  
  136. return(done)
  137.  
  138.  
  139.  
  140.  
  141. def completeSquare(square):
  142. if square[1]:
  143. done=true
  144.  
  145. elif len(square[0])==(1):
  146. done=true
  147. square.append(done)
  148.  
  149. else:
  150. print("failed to complete square content of {}".format(square))
  151. done=false
  152.  
  153. return(done)
  154.  
  155.  
  156.  
  157. #entfernt elemente einer liste(subtract) von einer anderen(list1)
  158. def listSubtract(subtract,list1):
  159. result=list1
  160. for a in range (len(subtract)):
  161. if subtract[a] in list1:
  162. result=result.remove(subtract[a])
  163.  
  164. return (result)
  165.  
  166.  
  167.  
  168. #"row"kann jede liste, die neun Felder umfasst und in der die zahlen von eins bis neun vorkommen sollen sein (also Zeilen, Spalten oder Blöcke).
  169. def checkRow(row):
  170. notAdd=[]
  171. for a in row:
  172. #notAdd ist die liste die die in dieser Reihe unmöglichen Zahlen enthält
  173. if checkSquare(row[a]):
  174. notAdd.append(row[a[0]])
  175. #possible ist die Liste die alle möglichen zahlen eines feldes speichert
  176. for b in row:
  177. if not row[b[1]]:
  178. if row[b]==[]:
  179. possible=[1,2,3,4,5,6,7,8,9]
  180. else:
  181. possible=[row[b]]
  182. listSubtract(notAdd,possible)
  183. row[b]=possible
  184.  
  185. return(none)
  186.  
  187.  
  188. def checkForComplete(sudoku):
  189. completeness=0
  190. for x in range(len(sudoku)):
  191. print (x)
  192. for y in range(len(sudoku[x])):
  193. if completeSquare(sudoku[x[y]]):
  194. completeness=completeness+1
  195. return(completeness)
  196.  
  197.  
  198. while checkForComplete(sudoku)<81:
  199. for z in range(len(allSudoku)):
  200. checkRow(allSudoku[z])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement