diff options
Diffstat (limited to 'game.py')
-rw-r--r-- | game.py | 50 |
1 files changed, 49 insertions, 1 deletions
@@ -27,6 +27,10 @@ from model import Model from audio import Audio import theme +#ARIEL +from sugar.activity.activity import get_bundle_path +import simplejson + _logger = logging.getLogger('memorize-activity') SERVICE = 'org.laptop.Memorize' @@ -317,12 +321,56 @@ class MemorizeGame(GObject): self.model.data['color'] = color self.load_remote(self.model.grid, self.model.data, mode, False) + #ARIEL save game + def save_game(self, filepath): + f = open ( filepath, "w" ) + + gridToSave = self.model.grid + """ + dataToSave = self.model.data + + del dataToSave['title'] + del dataToSave['color'] + del dataToSave['game_file'] + """ + + gridToSave = str(gridToSave).replace("'",'"') + #dataToSave = str(dataToSave).replace("'",'"') + + f.write ( "{\n" ) + f.write ('"grid":' + gridToSave + ",\n" ) + #f.write ('"data":' + dataToSave + "\n" ) + f.write ( "}\n" ) + + f.close() + + #ARIEL load-saved-game + def load_saved_game(self,filename): + filepath = get_bundle_path() + "/data/" + filename + f = open(filepath,"r") + jsondata = simplejson.loads(f.read()) + f.close() + + grid = jsondata["grid"] + mode = jsondata["data"]['mode'] + data = jsondata["data"] + + self.set_load_mode('Loading game') + self.model.is_demo = (mode == 'demo') + self.model.grid = grid + self.model.data = data + self.model.data['running'] = 'False' + self.model.data['mode'] = mode + logging.debug(' Read setup file %r ', self.model.grid) + self.emit('load_game', self.model.data, self.model.grid) + def reset_game(self, size=None): if size == None: size = int(self.model.data['size']) self.model.count = 0 self.model.def_grid(size) - self.load_remote(self.model.grid, self.model.data, False) + self.load_remote(self.model.grid, self.model.data, + self.model.data['mode'],False) def set_load_mode(self, msg): self.emit('load_mode', msg) |