views:

132

answers:

2

I'm trying to declare a few simple variables as part of a function in a very basic collision detection programme. For some reason it's rejecting my variables (although only some of them even though they're near identical). Here's the code for the function;

def TimeCheck():
    timechecknumber = int(time.time())
    timecheckdiv = backcolourcheck % 5
    if timecheckdiv < 1:
        timecheck = true
    else:
        timecheck = false
    if timecheck == true:
        backgroundr = (int(random.random()*255)+1
        backgroundg = (int(random.random()*255)+1
        backgroundb = (int(random.random()*255)+1

for some reason it accepts backgroundr but not backgroundg, anyone got any ideas why? thanks

+8  A: 

You have mismatched parentheses on the line beginning with backgroundr. I think maybe you want this:

backgroundr = int(random.random() * 255) + 1

Note that each of the next two lines also have mismatched parentheses, so you'll have to fix those, too.

mipadi
aha, parenthesis issue, thanks :D
You need to multiply by 255 before casting to int.
recursive
As noted below, if you want the code to do something useful (which you probably do), you most likely actually want the parenthesis in the order below (I've edited the answer to reflect this).
mipadi
+2  A: 

mipadi's answer will always yield a 1. You need to multiply by 255 before you cast to int. Try this.

backgroundr = int(random.random() * 255) + 1
recursive
You're assuming -- of course -- that this is what they want. Since the ()'s were incorrect, perhaps they really did want an answer of 1 each time ;-)
S.Lott