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()