Rial Johnson
Rial Johnson

Reputation: 194

Python Random Color Generation using Turtle

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?

Upvotes: 3

Views: 15972

Answers (3)

Mohammad Beshardeh
Mohammad Beshardeh

Reputation: 1

import turtle as t 
import random

timmy = t.Turtle()
t.colormode(255)


def random_color():
    r = random.randint(0, 255)
    g = random.randint(0, 255)
    b = random.randint(0, 255)
    random_color = (r, g, b)
    return random_color


timmy.color(random_color())

Upvotes: 0

Rial Johnson
Rial Johnson

Reputation: 194

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.

Upvotes: 4

Zizouz212
Zizouz212

Reputation: 4998

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

Upvotes: 1

Related Questions