A Scene base class (handle_events/update/draw) lets every screen — menu, gameplay, game over — follow the same shape, while a SceneManager holds the current scene and swaps it on request. Centralized asset loading and a config.py constants module keep the codebase organized as it grows.
1-B 2-B 3-B 4-A | 5 draw 6 switch_to 7 = def switch_to(self, new_scene): self.scene = new_scene 8 = if the screen size ever changes, every file with a hardcoded 800/600 must be found and updated individually, which is error-prone and easy to miss a spot 9 = the game loop code stays simple and identical regardless of how many scenes exist — it just calls whatever the current scene's own update/draw are, instead of growing a huge if/elif chain that must be edited every time a new state is added | 10 = MenuScene switches to PlayScene when the player clicks "Play"; PlayScene switches to GameOverScene when the player's health reaches 0 (or they complete the level); GameOverScene switches back to MenuScene when the player clicks "Return to Menu" (or presses a key)