Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/deck.py
diff options
context:
space:
mode:
authorWalter 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)
commita8268b33ee8a2dc811c5d4c1e42e218140b8fa46 (patch)
tree067df03d17b97f88692421eb5d2f4ddb5bfa60f7 /deck.py
parent727c7dc049ccbf4764ba23512f5ebafa4352e03a (diff)
new shuffle algorithm
Diffstat (limited to 'deck.py')
-rw-r--r--deck.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/deck.py b/deck.py
index 205ed41..afe2620 100644
--- a/deck.py
+++ b/deck.py
@@ -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