On Wed, Feb 3, 2010 at 12:12 AM, David <ld...@gmx.net> wrote: > def createQuestions: > generate all multiplication combinations possible > append as tuple to pool > eliminate 'mirrored doubles' (i.e. 7x12 and 12x7) > randomize pool > > I haven't really looked through most of this stuff - but your mirrored doubles has a somewhat cleaner solution than generating all then removing the duplicates, I think.
Referring to here: http://docs.python.org/reference/expressions.html#notin I *think* you can create a list of all the non-mirrored pairs this way: pool = [] for x in xrange(1,13): for y in xrange(x, 13): pool.append((x,y)) Then I would shuffle the pairs and the pairs within: i.e.: for x in xrange(len(pool)): # We want the index, not just the element if random.randint(0,1): pool[x] = pool[x][::-1] # A simple reversal swaps the values else: pass now you have two options - either shuffle your pool, or pick random elements and pop them out of your list: (this worked at least once on a 10 element list): while pool: pool.pop(random.randint(0, len(pool)-1))) of course you'd probably assign that tuple to some useful value or function call. But that's what I'd do... and given the fact that I was actually planning to make a "game" somewhat like this myself, this gives me a good excuse to write some of the code ^_^ HTH, and thanks for asking a question that motivates, Wayne
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor