Comment accélérer la fonction «tortue» de python et l'empêcher de geler à la fin
J'ai écrit une tortue programme en python, mais il y a deux problèmes.
- Il va beaucoup trop lent pour un plus grand nombre, j'ai été me demande comment je peux accélérer la vitesse de la tortue.
- Il gèle après avoir fini et quand on clique dessus, dit "ne répond pas"
C'est mon code pour l'instant:
import turtle
#Takes user input to decide how many squares are needed
f=int(input("How many squares do you want?"))
c=int(input("What colour would you like? red = 1, blue = 2 and green =3"))
n=int(input("What background colour would you like? red = 1, blue = 2 and green =3"))
i=1
x=65
#Draws the desired number of squares.
while i < f:
i=i+1
x=x*1.05
print ("minimise this window ASAP")
if c==1:
turtle.pencolor("red")
elif c==2:
turtle.pencolor("blue")
elif c==3:
turtle.pencolor("green")
else:
turtle.pencolor("black")
if n==1:
turtle.fillcolor("red")
elif n==2:
turtle.fillcolor("blue")
elif n==3:
turtle.fillcolor("green")
else:
turtle.fillcolor("white")
turtle.bk(x)
turtle.rt(90)
turtle.bk(x)
turtle.rt(90)
turtle.bk(x)
turtle.rt(90)
turtle.bk(x)
turtle.rt(90)
turtle.up()
turtle.rt(9)
turtle.down()
Par la route: je suis sur la version 3.2!
source d'informationauteur clickonMe
Vous devez vous connecter pour publier un commentaire.
turtle.mainloop()
fonctionnalité permettant d'effectuer le travail sans l'écran se rafraîchit.turtle.tracer(0, 0)
puis à la fin neturtle.update()
Python tortue va très lentement, parce que l'écran se rafraîchit sont effectuées après chaque modification est apportée à une tortue.
Vous pouvez désactiver le rafraîchissement d'écran jusqu'à ce que tout le travail est fait, puis peindre l'écran, il permettra d'éliminer la milliseconde retards de l'écran furieusement tente de mettre à jour l'écran de chaque tortue de changer.
Par exemple:
Ce code permet un millier de tortues à des emplacements aléatoires, et affiche l'image dans environ 200 millisecondes.
Vous avais pas désactivé le rafraîchissement d'écran avec
turtle.tracer(0, 0)
de commande, il aurait pris plusieurs minutes, comme il essaie d'actualiser l'écran de 3000 fois.https://docs.python.org/2/library/turtle.html#turtle.delay
De référence, de la tortue de la lenteur est un problème existant.
Même avec de la vitesse max, la tortue peut prendre un temps assez long sur des choses comme les fractales.
Nick ODell réimplémentée de la tortue pour la vitesse ici: Masquer La Tortue Fenêtre?