Bom tarde, estou criando um programa para a visualizacao do bubble sorting mas nao consigo "atualizar" a minha tela na hora de desenhar as linhas (cada linha possui um valor entre 0 e 500). Acho que deve ser um problema com o
turtle.tracer(0) e turtle.update()
Gostaria que ele imprimisse na tela primeiro as linhas embaralhadas e depois em ordem, não como neste print. Mesmo adicionando um delay entre as funções, ainda ocorre o erro e as duas imagens são criadas ao mesmo tempo. Segue o meu código ate o momento.
# py Sorting.py
import random
import turtle
import time
# variavei globais
width = 1200
height = 500
def inicio():
config_turtle()
# cria a lista de numeros de 1 a num
num = 500
numeros = list(range(0, num))
random.shuffle(numeros)
desenha(numeros)
time.sleep(2)
bubble_sorting(numeros)
time.sleep(2)
desenha(numeros)
turtle.done()
# configuracoes iniciais
def config_turtle():
turtle.speed(0)
turtle.bgcolor("black")
turtle.pencolor("white")
turtle.pensize(1)
turtle.hideturtle()
turtle.tracer(0)
turtle.title("Bubble Sorting")
turtle.setup(width, height)
# desenha as linhas
def desenha(numeros):
turtle.update()
turtle.up()
turtle.goto(- width / 2, - height / 2)
turtle.down()
# pega cada linha do array
for x in range(len(numeros)):
turtle.setheading(90)
turtle.forward(numeros[x])
turtle.backward(numeros[x])
turtle.setheading(0)
turtle.up()
turtle.forward(width / len(numeros))
turtle.down()
def bubble_sorting(numeros):
sorteado = False
while(not sorteado):
sorteado = True
i = 0
for i in range(0, len(numeros) - 1):
if numeros[i] > numeros[i + 1]:
temp = numeros[i]
numeros[i] = numeros[i + 1]
numeros[i + 1] = temp
sorteado = False
if __name__ == "__main__":
inicio()
Creio que o erro acontece na função desenha(). Qualquer ajuda é bem vinda. Agradeço desde já.