diff options
author | Walter Bender <walter@walter-laptop.(none)> | 2010-01-12 13:15:57 (GMT) |
---|---|---|
committer | Walter Bender <walter@walter-laptop.(none)> | 2010-01-12 13:15:57 (GMT) |
commit | a8268b33ee8a2dc811c5d4c1e42e218140b8fa46 (patch) | |
tree | 067df03d17b97f88692421eb5d2f4ddb5bfa60f7 /deck.py | |
parent | 727c7dc049ccbf4764ba23512f5ebafa4352e03a (diff) |
new shuffle algorithm
Diffstat (limited to 'deck.py')
-rw-r--r-- | deck.py | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -72,17 +72,16 @@ class Deck: # Remember the current position in the deck. self.index = 0 - # Shuffle the deck. + # Shuffle the deck (Knuth algorithm). def shuffle(self): decksize = self.count() # Hide all the cards. for c in self.cards: c.hide_card() # Randomize the card order. - for n in range(decksize*4): - i = random.randrange(decksize) - j = random.randrange(decksize) - self.swap_cards(i,j) + for n in range(decksize): + i = random.randrange(decksize-n) + self.swap_cards(n,decksize-1-i) # Reset the index to the beginning of the deck after a shuffle, self.index = 0 return |