How to End a Text-Based Game in Python

What will you learn?

In this comprehensive guide, you will delve into the art of gracefully concluding a text-based game using Python. Learn how to create satisfying endings that leave players with a sense of accomplishment and closure.

Introduction to Problem and Solution

Text-based games immerse players in rich narratives without relying on graphics. The challenge lies in crafting endings that feel conclusive and rewarding. By implementing specific strategies in Python, we can signal the end of the adventure while allowing for future expansions and replayability.

To address this challenge, we will explore techniques such as defining end-game scenarios, creating functions triggered by specific conditions, and effectively using print statements for concluding messages. Additionally, we’ll see how user decisions can influence different endings, adding uniqueness to each gameplay experience. By mastering these methods, you’ll be able to craft engaging closures for any text-based game developed in Python.


def check_end_game_condition(player_status):
    if player_status == "victory" or player_status == "defeat":
        return True
        return False

def end_game_message(player_status):
    if player_status == "victory":
        print("Congratulations! You have triumphed over your adversaries.")
    elif player_status == "defeat":
        print("Alas! You have been bested by your foes. Better luck next time.")

# Example of main game loop implementation:
player_status = ""  # Initial player status.
while not check_end_game_condition(player_status):
    # Game logic here.
    # Update `player_status` based on gameplay.

# Once out of loop due to `check_end_game_condition` returning True:

# Copyright PHD


The solution consists of two key functions:

  • check_end_game_condition: Evaluates if certain conditions are met within the game to lead it towards an ending scenario (“victory” or “defeat”).

  • end_game_message: Prints a message based on the final player status (victory or defeat), providing feedback on their journey’s outcome.

By integrating these functions into your main game loop, you ensure a smooth transition to the conclusion when specific criteria are satisfied.

  1. How can I add multiple endings based on gameplay decisions?

  2. Implement tracking variables responding to key choices made by players and use them in check_end_game_condition and end_game_message functions for tailored outcomes.

  3. Can I include ASCII art in my game�s conclusion?

  4. Certainly! Enhance visual appeal by incorporating ASCII art within print statements of end_game_message.

  5. How do I handle saving progress before ending the game?

  6. Implement functionality to save relevant data locally or externally using databases before triggering an end-game condition.

  7. Is it possible for players to restart after finishing without reopening the program?

  8. Yes! Wrap your main gameplay loop inside a function like play_again(), allowing users another go post-ending sequence based on input (y/n).

  9. What are best practices for efficiently testing multiple endings?

  10. Utilize unit testing frameworks like unittest or pytest for automated tests simulating various paths leading to different ends during development phases.


Crafting memorable conclusions for text-based games is crucial for enhancing overall gaming experiences. By mastering the techniques discussed here, you can create impactful endings that resonate with players long after they’ve completed their adventures. Embrace the power of Python to weave narratives that captivate audiences and leave them yearning for more interactive storytelling experiences!

Leave a Comment