在python中使用turtle函数时,如何生成随机点颜色?

在python中使用turtle函数时,如何生成随机点颜色?,python,random,turtle-graphics,Python,Random,Turtle Graphics,对于my类,我的任务是编写一个用户通过箭头键控制的turtle函数。该函数显示自身,然后是一个带有点的镜子。每个点都应该是完全随机的颜色。到目前为止,我有: from turtle import * from random import randrange FRAMES_PER_SECOND = 10 mirrorTurtle = Turtle() def turnRight(): global turtle global mirrorTurtle turtle.r

对于my类,我的任务是编写一个用户通过箭头键控制的turtle函数。该函数显示自身,然后是一个带有点的镜子。每个点都应该是完全随机的颜色。到目前为止,我有:

from turtle import *
from random import randrange

FRAMES_PER_SECOND = 10
mirrorTurtle = Turtle()

def turnRight():
    global turtle
    global mirrorTurtle

    turtle.right(45)

def turnLeft():
    global turtle
    global mirrorTurtle

    turtle.left(45)

def randomColor(turtle):
    r = randrange(256)    # red component of color
    g = randrange(256)    # green component
    b = randrange(256)    # blue component

def move():
    colormode(255)
    global turtle
    global mirrorTurtle
    global moving

    if moving:
        for i in range(1):
            turtle.penup()
            mirrorTurtle.penup()
            turtle.forward(40)
            turtle.dot(20, "red")
            mirrorTurtle.dot(10, "blue")
            turtle.forward(1)
            mirrorTurtle.setpos(-turtle.xcor(), -turtle.ycor())
            ontimer(move, 1000 // FRAMES_PER_SECOND)

def start():
    global moving

    moving = True
    move()

def stop():
    global moving

    moving = False


def main():
    colormode(255)
    global turtle
    global mirrorTurtle

    turtle = Turtle()
    turtle.hideturtle()
    mirrorTurtle.hideturtle()


    onkey(turnRight, "Right")
    onkey(turnLeft, "Left")
    onkey(start, "Up")
    onkey(stop, "Down")
    listen()



if __name__ == "__main__":
    main()

我的问题是,如果我有“红色”和“蓝色”,那么它们应该是随机颜色(仍然充当镜像(即,如果第一个点键入的是蓝色,则镜像也应该是蓝色)。

如果您搜索一个提供随机颜色字符串的函数,请参见以下内容:

def randcolor():
    return "#"+"".join([random.choice("0123456789ABCDEF") for i in range(6)]

您非常接近解决方案。您需要对
randomColor
move
进行一些小的更改

randomColor
中,您已经成功创建了三个随机数。现在您只需创建一个
元组并返回它,如下所示:

def randomColor():
    r = randrange(256)    # red component of color
    g = randrange(256)    # green component
    b = randrange(256)    # blue component
    return r,g,b
然后,您需要在调用
dot()
时使用该随机颜色:


此外,为了让您的程序在我的环境中工作,我需要在
move()
的末尾添加对
update()
的调用,并在
main()
的末尾添加对
mainloop()
的调用,这是非常不清楚的。如果没有colormode(…):color(“#“+”)。join([random.choice(“0123456789ABCDEF”)表示范围(6)])如果我理解正确,我遇到的问题是如何在点函数中生成随机颜色。我知道如何使用randrange生成随机颜色,但在点函数中,颜色是作为字符串输入的。请参阅上面的注释,不要使用colormode。
        mirrorTurtle.dot(10, randomColor())