Advertisement
Redomine

govno

Jun 24th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. n=7 #исходное число
  2. s=1 #начинаем счет
  3.  
  4. povorot='false' #поворот
  5. vertical=[]
  6.  
  7. x=0
  8. y=0
  9.  
  10. matrix=[[0] * n for pustoy in range(n)] #список nxn
  11.  
  12.  
  13. while s!=(n*n+1):
  14. for z in range(len(matrix[x])):#просчет горизонтальной строки
  15. if povorot=='false': #проверка был ли поворот
  16. if matrix[x][y]==0:#если поворот еще не случился идем слева направо
  17. matrix[x][y]=(s)
  18. s+=1
  19. y+=1
  20. else:
  21. if z==0:#здесь и далее в такой конструкции - если это не первое число проверяемом, то прокручиваю проверку вхолостую
  22. y+=1
  23. else: #если поворот уже случился идем обратно
  24. if matrix[x][y]==0:
  25. matrix[x][y]=(s)
  26. s+=1
  27. y-=1
  28. else:
  29. if z==0:
  30. y-=1
  31.  
  32. if povorot=='false':#короче хз как избавиться от лишнего без костыля, буду стирать так
  33. y-=1
  34. else:
  35. y+=1
  36.  
  37. vertical+=[v[y] for v in matrix]#просчет вертикальной строки
  38. if povorot=='false':#проверка был ли поворот
  39. for z in range(len(matrix[0])):#если не был идем вниз
  40. if vertical[x]==0:
  41. vertical[x]=(s)
  42. s+=1
  43. x+=1
  44. else:
  45. if z==0:
  46. x+=1
  47. else:#ну или вверх
  48. for z in range(len(matrix[0])):
  49. if vertical[x]==0:
  50. vertical[x]=(s)
  51. s+=1
  52. x-=1
  53. else:
  54. if z==0:
  55. x-=1
  56. if povorot=='false':#хочу умереть
  57. x-=1
  58. else:
  59. x+=1
  60. for k in range(len(vertical)):
  61. p=vertical[k]
  62. matrix[k][y]=(p)
  63. vertical=[]
  64. k=0
  65.  
  66. if povorot=='false':
  67. povorot='true'
  68. else:
  69. povorot='false'
  70.  
  71. for rez in range(n):
  72. print(*matrix[(rez)])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement