Michael Sullivan wrote: > OK. I've got it working this far. Now I want the script to generate > eight pieces, each with a random colour. Here's my current code: > > #!/usr/bin/env python > > import random > import time > import math > > class LinePuzzlePiece: > """This class defines a single playing piece for LinePuzzle""" > def __init__(self): > random.seed(time)
The above statement initializes the random number generator with the time *module*, not the current time. The time module never changes. So every time you need a random number your are initializing the generator with the same constant. That's why you always get the same number. The docs for random.seed() say, "If x is omitted or None, current system time is used; current system time is also used to initialize the generator when the module is first imported." So you could omit the time argument to use the actual time; better is to omit the call completely and let the module init itself when you load it. > index = int(math.floor(random.uniform(0, 8))) > colorlist = ["red", "blue", "green", "yellow", "purple", "cyan", > "orange", "white"] > self.color = colorlist[index] random.choice() would be simpler here. Kent > > def printcolor(self): > print self.color > > piececount = 0 > mypiece = ["", "", "", "", "", "", "", "", ""] > while (piececount < 9): > mypiece[piececount] = LinePuzzlePiece() > mypiece[piececount].printcolor() > piececount += 1 > > The problem is that while eight pieces are created and assigned a > colour, the colour is always the same. I need the colours of the pieces > to be in a somewhat random order. What am I doing wrong? > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor