Reputation: 194
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
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
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
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