Python Random Color Generation using Turtle

13,225

Solution 1

turtle.colormode needs to be set to 255 to give color strings in Hex Code or R G B.

adding

screen.colormode(255)

no longer returned an error.

Solution 2

Your variables r g and b are not global. You either have to add a global declaration at the top of your function or add them as parameters.

def my_function(r, g, b):
    # some stuff

Or...

def myfunction():
    global r, g, b
    # some stuff
Share:
13,225
Rial Johnson
Author by

Rial Johnson

Updated on June 04, 2022

Comments

  • Rial Johnson
    Rial Johnson almost 2 years

    I need to generate a random color using r g b values to fill in these rectangles for a python school assignment, I'm getting a bad color sequence error even though I'm fairly sure I'm formatting it just as the Python documentation suggests.

    r = random.randrange(0, 257, 10)
    g = random.randrange(0, 257, 10)
    b = random.randrange(0, 257, 10)
    
    
    def drawRectangle(t, w, h):
        t.setx(random.randrange(-300, 300))
        t.sety(random.randrange(-250, 250))
        t.color(r, g, b)
        t.begin_fill()
        for i in range(2):
            t.forward(w)
            t.right(90)
            t.forward(h)
            t.right(90)
        t.end_fill()
        t.penup()
    

    I'm quite confused as to why t.color(r, g, b) is not producing a random color?

  • Rial Johnson
    Rial Johnson about 9 years
    How would I go about adding them as parameters?
  • Zizouz212
    Zizouz212 about 9 years
    In drawRectangle, you already have parameters: t, w and h. Just add them to that list in between the brackets. :)
  • Rial Johnson
    Rial Johnson about 9 years
    Thanks, the global variables makes sense now, but I'm still getting an incorrect color sequence error, even if I just put in integers for r, b, b. t.color(100, 150, 200) still returns a bad color sequence error, is some other formatting wrong?
  • Zizouz212
    Zizouz212 about 9 years
    The error wouldn't be with the globals then. There could be something wrong with the colours themselves. I don't work with colours or turtle or anything, but that's the impression I get.
  • Rial Johnson
    Rial Johnson about 9 years
    Thanks for your help as it did give me a better understanding of variables and parameters, but my problem lied in turtle.colormode which I outlined in my answer below.
  • Zizouz212
    Zizouz212 about 9 years
    Great! Mark your's as the accepted one then too. :)