Почему действия не выполняются постепенно?
У меня программа рисует линии по вертикали и выставляет их по порядку с самых низких по высокие. Почему сортировка проходит сразу а не постепенно?
import pygame
pygame.init()
sc = pygame.display.set_mode((1200,600))
FPS = 1
clock = pygame.time.Clock()
y = [230,240,270,210,300,220]
def draw(xOne,yOne,xTwo,yTwo,Width):
pygame.draw.line(sc,(0,0,255),(xOne,yOne),(xTwo,yTwo), Width)
while True:
sc.fill((255,255,255))
draw(200,400,200,y[0],10)
draw(250,400,250,y[1],10)
draw(300,400,300,y[2],10)
draw(350,400,350,y[3],10)
draw(400,400,400,y[4],10)
draw(450,400,450,y[5],10)
for h in pygame.event.get():
if h.type == pygame.QUIT:
exit()
for i in range(len(y)):
for j in range(len(y) - i - 1):
if y[j] < y[j+1]:
y[j], y[j+1] = y[j+1], y[j]
pygame.display.update()
clock.tick(FPS)
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
for i in range(len(y)):
for j in range(len(y) - i - 1):
if y[j] < y[j+1]:
y[j], y[j+1] = y[j+1], y[j]
Этот кусок полностью сортирует массив, чтобы он сортировал постепенно нужно сделать так:
for i in range(len(y) - 1):
if y[i] < y[i + 1]:
y[i], y[i + 1] = y[i + 1], y[i]