# tu0340_turtle_random.py ''' Utilisation de listes pour avoir beaucoup de tortues. Dessine plusieurs tortues, elles avancent et tournent aléatoirement. Suite de tu0330_turtle_random.py ''' from turtle import * from random import * from math import * # défini la position et la taille de la fenêtre. setup(width=900, height=650, startx=10, starty=15) delay(0) # Pour aller plus vite colormode(255) # mode de définition des couleurs nbTortues = 10 # Défini le nombre de tortues désirées listeTortues = [] # Défini une liste vide # Boucle de création de nouvelles tortues for nn in range(nbTortues): # va de 0 à nbTortues-1 tortueNouvelle = Turtle(shape="turtle") # Création d'une nouvelle tortue listeTortues.append(tortueNouvelle) # Ajoute dans la liste, une référence à la tortue. tortueNouvelle.speed(0) # Vitesse maximale de la tortue tortueNouvelle.color((255 - 255*nn // nbTortues, 0, 255*nn // nbTortues)) # défini la couleur, r, g, b tortueNouvelle.seth(randint(0, 359)) # Information : tortueNouvelle === listeTortues[nn] # Positionne toutes les tortues à l'origine. tortueNouvelle.up() tortueNouvelle.goto(0, 0) tortueNouvelle.down() # La première tortue est de couleur noire, sous forme de cercle petit. listeTortues[0].color("black") listeTortues[0].shape("circle") listeTortues[0].shapesize(0.5) # Chaque tortue avance aléatoirement for nCpt in range(500): moyenX = 0 # Pour calculer la position moyenne des tortues moyenY = 0 # Fait avancer aléatoirement les tortues for nn in range(1, nbTortues): listeTortues[nn].left(randint(-20,20)) listeTortues[nn].forward(1) # Calcul de la position moyenne. moyenX += listeTortues[nn].xcor() moyenY += listeTortues[nn].ycor() # Positionne la tortue numéro 0 (la noire) en la position moyenne. moyenX = moyenX / nbTortues moyenY = moyenY / nbTortues listeTortues[0].goto(moyenX, moyenY)