Exemple #1
0
    def _load_save(self):
        """Loads the saved game file."""
        try:
            load = open(save_file, 'r')
            cipher_text = load.read()
            load_string = sc.decrypt(get_password(), cipher_text)
            load_values = load_string.splitlines()
            if len(load_values) != self.grid_size*self.grid_size + 1:
                raise ValueError
            self.score = int(load_values[0])
            for i in range(self.grid_size):
                for j in range(self.grid_size):
                    self.grid[i][j] = int(load_values[i*self.grid_size + j + 1])
                    if not is_power(self.grid[i][j], 2) and self.grid[i][j] != 0:
                        raise ValueError
        except sc.DecryptionException:
            print("Save file could not be read. Starting new game")
            self.new_game()
        except ValueError:
            print("Save file format corrupted. Starting new game")
            self.new_game()

        os.remove(save_file)
        self.win.queue_draw()