有没有办法让所有的海龟一起绕轨道运行?

问题描述

我无法让所有的海龟一起画一个圆圈,因为我正在使用 for 循环让这些海龟一个一个地绕轨道运行,

from turtle import Turtle,Screen
import random

w = Screen()
w.bgcolor('#222')

def color_generator():
    symbols = [str(n) for n in range(5,10)] + ['a','b','c','d','e','f']
    pick = [random.choice(symbols) for _ in range(3)]
    color = ''.join(pick)
    return f'#{color}'



class Particle(Turtle):
    def __init__(self):
        super().__init__()
        self.shape('turtle')
        self.penup()
        self.create_particle()

    def create_particle(self):
        self.color(color_generator())
        self.goto(random.randint(-350,350),random.randint(-350,350))
        self.seth(random.randint(0,360))

    def orbit(self):
        self.speed('fast')
        self.pendown()
        for _ in range(25):
            self.forward(10)
            self.right(15)


for _ in range(5):
    t = Particle()
    t.orbit()


w.exitonclick()

我怎样才能让它们全部一起运行?

这是它在做什么:

turtles' image 1

turtles' image 2

解决方法

我们可以通过仅通过交错粒子的运动来模拟线程来简化这一点:

from turtle import Turtle,Screen
from random import randint,randrange,choice

def color_generator():
    symbols = [str(n) for n in range(5,10)] + ['a','b','c','d','e','f']
    pick = [choice(symbols) for _ in range(3)]
    color = ''.join(pick)
    return f"#{color}"

class Particle(Turtle):
    def __init__(self):
        super().__init__()
        self.shape('turtle')
        self.speed('fastest')
        self.create_particle()

    def create_particle(self):
        self.color(color_generator())
        self.penup()
        self.goto(randint(-350,350),randint(-350,350))
        self.setheading(randrange(360))

    def arc(self):
        self.pendown()
        self.forward(10)
        self.right(15)

screen = Screen()
screen.bgcolor('#222')

particles = [Particle() for _ in range(5)]

for _ in range(24):
    for particle in particles:
        particle.arc()

screen.exitonclick()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...