<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def reset(self, old_scene=None, screen=None):
 """ Reset the scene ready for playing. :param old_scene: The previous version of this Scene that was running before the application reset - e.g. due to a screen resize. :param screen: New screen to use if old_scene is not None. """

        # Always reset all the effects.
        for effect in self._effects:
            effect.reset()

        # If we have an old Scene to recreate, get the data out of that and
        # apply it where possible by cloning objects where appropriate.
        if old_scene:
            for old_effect in old_scene.effects:
                # Using the "easier to ask forgiveness..." mantra, just try
                # cloning everything and ignore any AttributeErrors.
                try:
                    old_effect.clone(screen, self)
                except AttributeError:
                    pass