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.bender@gmail.com>2011-03-13 13:28:12 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-03-13 13:28:12 (GMT)
commit0279518276390439777a351a770c9e98b23d6ab3 (patch)
tree6ff4e6612f2575f1661750e8b7ae8275e9f7c0f1 /deck.py
parentcb523a3e3f4687e49f1c900898f3659e8b92fd97 (diff)
refactoring in anticipation of sharing
Diffstat (limited to 'deck.py')
-rw-r--r--deck.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/deck.py b/deck.py
index b6428a8..c16d37c 100644
--- a/deck.py
+++ b/deck.py
@@ -15,7 +15,7 @@ from random import randrange
from card import Card, board_card
from genpieces import generate_tile_1_line, generate_tile_2_lines
-
+from utils import json_dump, json_load
HIDE = 0
BOARD = 1
@@ -117,19 +117,20 @@ class Deck:
order[size - 1 - i] = a
return order
- def restore(self, saved_deck_indices):
- ''' Restore the deck upon resume. '''
- decksize = len(saved_deck_indices)
- # If we have a short deck, then we need to abort.
- if self.count() < decksize:
- return False
- _deck = []
- for i in saved_deck_indices:
- _deck.append(self.index_to_card(i))
- for i in range(decksize):
- self.cards[i] = _deck[i]
- return True
+ def serialize(self):
+ ''' Serialize the deck for passing to share and saving '''
+ order = []
+ for i in range(64):
+ order.append(self.cards[i].number)
+ return json_dump(order)
+ def restore(self, deck_as_text):
+ ''' Restore the deck upon resume. '''
+ deck = []
+ order = json_load(deck_as_text)
+ for i in order:
+ deck.append(self.cards[order[i]])
+ self.cards = deck[:]
def clear(self):
''' Remove any highlight from the cards. '''