搜索
首页后端开发Python教程用 Python 构建交互式 Mad Libs 游戏:初学者指南

你有没有发现自己在填写随机单词以创造一个搞笑荒诞的故事时无法控制地咯咯笑?如果是这样,您可能已经体验过 Mad Libs 的乐趣,这是一款自 20 世纪 50 年代以来一直为各个年龄段的人们带来乐趣的经典文字游戏。

但是如果我告诉您,这个简单的游戏也可以成为您通往令人兴奋的 Python 编程世界的门户?

什么是疯狂自由?

Building an Interactive Mad Libs Game in Python: A Beginner

Mad Libs 的核心是一款填空讲故事游戏。玩家在不知道故事背景的情况下,会被提示提供特定类型的单词(名词、动词、形容词等)。

Building an Interactive Mad Libs Game in Python: A Beginner

在这里了解循环:Python 循环:初学者综合指南

然后将这些单词插入到预先写好的叙述中,通常会产生一个喜剧和无意义的故事,激发笑声和创造力。

但是 Mad Libs 不仅仅是一种娱乐。当转化为编程项目时,它成为一种强大的教学工具,为有抱负的程序员提供一种有趣且引人入胜的方式来学习基本编程概念。

设置 Python 环境

首先,请确保您的计算机上安装了 Python。您可以从Python官方网站下载它。对于这个项目,我们将使用 Python 3.12.7。

安装 Python 后,打开您最喜欢的文本编辑器或集成开发环境 (IDE)。初学者的热门选择包括 IDLE(Python 附带)、Visual Studio Code 或 PyCharm。

对于这个项目,我将使用 Pycharm。

构建 Mad Libs 游戏:一步一步

让我们将 Mad Libs 游戏分解为可管理的步骤。我们将从基本版本开始,逐步添加更多功能,使其更具互动性和吸引力。

您可以在这里找到完整的代码。

要运行这个游戏,您需要安装一些依赖项,其中之一是 colorama 库。您可以通过运行以下命令来做到这一点:

pip install colorama

导入该项目所需的一些库,其中包括 ramdom、os colorama


    import random
    import os
    from colorama import init, Fore, Style


接下来我们将使用 init(),它允许我们使用彩色输出来增强用户界面,例如以青色显示欢迎消息,以红色显示错误,以及以明亮风格的白色显示已完成的故事。

  • 创建故事模板

首先,我们将定义故事模板。这将是一个带有占位符的字符串,其中包含我们希望玩家填写的单词。下面是一个示例:


    story_template = """
    Once upon a time, in a {adjective} {noun}, there lived a {adjective} {noun}.
    Every day, they would {verb} to the {noun} and {verb} with their {adjective} {noun}.
    One day, something {adjective} happened! They found a {adjective} {noun} that could {verb}!
    From that day on, their life became even more {adjective} and full of {noun}.
    """


  • 收集词类型

接下来,我们将创建故事所需的单词类型列表:


    word_types = ["adjective", "noun", "adjective", "noun", "verb", "noun", "verb", "adjective", "noun", "adjective", "adjective", "noun", "verb", "adjective", "noun"]


  • 提示玩家输入单词

现在,让我们创建一个函数来提示玩家输入单词:


    def get_word(word_type):
        return input(f"Enter a(n) {word_type}: ")

    def collect_words(word_types):
        return [get_word(word_type) for word_type in word_types]


  • 填写故事

收集到的单词,我们可以填写我们的故事模板:


    def fill_story(template, words):
        for word in words:
            template = template.replace("{" + word_types[words.index(word)] + "}", word, 1)
        return template


  • 把它们放在一起

让我们创建一个主函数来运行我们的游戏:


    def play_mad_libs():
        print("Welcome to Mad Libs!")
        print("I'll ask you for some words to fill in the blanks of our story.")

        words = collect_words(word_types)
        completed_story = fill_story(story_template, words)

        print("\nHere's your Mad Libs story:\n")
        print(completed_story)

    if __name__ == "__main__":
        play_mad_libs()


现在我们有了 Mad Libs 游戏的基本工作版本!但我们不要就此止步。我们可以让它变得更具吸引力和用户友好性。

增强游戏

添加多个故事模板
为了保持游戏的趣味性,我们添加多个故事模板:


    import random

    story_templates = [
        # ... (add your original story template here)
        """
        In a {adjective} galaxy far, far away, a {adjective} {noun} embarked on a {adjective} quest.
        Armed with a {adjective} {noun}, they set out to {verb} the evil {noun} and save the {noun}.
        Along the way, they encountered a {adjective} {noun} who taught them to {verb} with great skill.
        In the end, they emerged {adjective} and ready to face any {noun} that came their way.
        """,
        # ... (add more story templates as desired)
    ]

    def choose_random_template():
        return random.choice(story_templates)


实现重玩功能
让我们添加玩家玩多轮的选项:


    def play_again():
        return input("Would you like to play again? (yes/no): ").lower().startswith('y')

    def mad_libs_game():
        while True:
            template = choose_random_template()
            word_types = extract_word_types(template)
            play_mad_libs(template, word_types)
            if not play_again():
                print("Thanks for playing Mad Libs!")
                break

    def extract_word_types(template):
        return [word.split('}')[0] for word in template.split('{')[1:]]


添加错误处理
为了使我们的游戏更加健壮,让我们添加一些错误处理:


    def get_word(word_type):
        while True:
            word = input(f"Enter a(n) {word_type}: ").strip()
            if word:
                return word
            print("Oops! You didn't enter anything. Please try again.")


改善用户体验
让我们添加一些颜色和格式以使我们的游戏更具视觉吸引力:


    from colorama import init, Fore, Style

    init()  # Initialize colorama

    def print_colored(text, color=Fore.WHITE, style=Style.NORMAL):
        print(f"{style}{color}{text}{Style.RESET_ALL}")

    def play_mad_libs(template, word_types):
        print_colored("Welcome to Mad Libs!", Fore.CYAN, Style.BRIGHT)
        print_colored("I'll ask you for some words to fill in the blanks of our story.", Fore.YELLOW)

        words = collect_words(word_types)
        completed_story = fill_story(template, words)

        print_colored("\nHere's your Mad Libs story:\n", Fore.GREEN, Style.BRIGHT)
        print_colored(completed_story, Fore.WHITE, Style.BRIGHT)

**Saving Stories**
Let's give players the option to save their stories:


    import os

    def save_story(story):
        if not os.path.exists("mad_libs_stories"):
            os.makedirs("mad_libs_stories")

        filename = f"mad_libs_stories/story_{len(os.listdir('mad_libs_stories')) + 1}.txt"
        with open(filename, "w") as file:
            file.write(story)

        print_colored(f"Your story has been saved as {filename}", Fore.GREEN)

    def play_mad_libs(template, word_types):
        # ... (previous code)

        if input("Would you like to save this story? (yes/no): ").lower().startswith('y'):
            save_story(completed_story)



运行代码

首先,确保您的系统上安装了 Python。您可以通过打开终端并输入来检查这一点。

python --version

python3 --version

这应该返回您系统上安装的 Python 版本。
如果安装了 Python,则应使用 Python 解释器运行该脚本。而不是跑步。

./first_test.py

你应该运行:

python first_test.py

或者如果您专门使用 Python 3:

python3 first_test.py

此外,请确保该文件具有正确的执行权限。您可以通过以下方式设置:

chmod +x first_test.py<br>




结论

恭喜!您现在已经用 Python 创建了一个交互式、色彩丰富且功能丰富的 Mad Libs 游戏。该项目向您介绍了几个重要的编程概念:

  1. 字符串操作
  2. 用户输入和输出
  3. 函数和模块化编程
  4. 列表和列表推导式
  5. 文件 I/O 操作
  6. 错误处理
  7. 第三方库(colorama)
  8. 随机选择
  9. While 循环和控制流

通过构建这个游戏,您不仅创造了一些有趣的东西,而且还为更高级的 Python 项目奠定了坚实的基础。请记住,成为熟练程序员的关键是练习和实验。不要害怕修改这个游戏,添加新功能,或使用这些概念创建全新的项目!

当您继续 Python 之旅时,请考虑探索更高级的主题,例如面向对象编程、图形用户界面 (GUI) 或使用 Django 或 Flask 等框架进行 Web 开发。

您在这里学到的技能将成为这些更复杂的软件开发领域的绝佳跳板。

快乐编码,愿你的 Mad Libs 冒险充满欢笑和学习!

资源

  • 开始使用 Folium
  • Visual Studio Code 的 20 个基本 Python 扩展
  • 使用 Python 进行网页抓取和数据提取
  • Python 入门
  • 使用 Folium 和 Python 创建交互式地图

以上是用 Python 构建交互式 Mad Libs 游戏:初学者指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python与C:学习曲线和易用性Python与C:学习曲线和易用性Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

Python vs. C:内存管理和控制Python vs. C:内存管理和控制Apr 19, 2025 am 12:17 AM

Python和C 在内存管理和控制方面的差异显着。 1.Python使用自动内存管理,基于引用计数和垃圾回收,简化了程序员的工作。 2.C 则要求手动管理内存,提供更多控制权但增加了复杂性和出错风险。选择哪种语言应基于项目需求和团队技术栈。

科学计算的Python:详细的外观科学计算的Python:详细的外观Apr 19, 2025 am 12:15 AM

Python在科学计算中的应用包括数据分析、机器学习、数值模拟和可视化。1.Numpy提供高效的多维数组和数学函数。2.SciPy扩展Numpy功能,提供优化和线性代数工具。3.Pandas用于数据处理和分析。4.Matplotlib用于生成各种图表和可视化结果。

Python和C:找到合适的工具Python和C:找到合适的工具Apr 19, 2025 am 12:04 AM

选择Python还是C 取决于项目需求:1)Python适合快速开发、数据科学和脚本编写,因其简洁语法和丰富库;2)C 适用于需要高性能和底层控制的场景,如系统编程和游戏开发,因其编译型和手动内存管理。

数据科学和机器学习的Python数据科学和机器学习的PythonApr 19, 2025 am 12:02 AM

Python在数据科学和机器学习中的应用广泛,主要依赖于其简洁性和强大的库生态系统。1)Pandas用于数据处理和分析,2)Numpy提供高效的数值计算,3)Scikit-learn用于机器学习模型构建和优化,这些库让Python成为数据科学和机器学习的理想工具。

学习Python:2小时的每日学习是否足够?学习Python:2小时的每日学习是否足够?Apr 18, 2025 am 12:22 AM

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Web开发的Python:关键应用程序Web开发的Python:关键应用程序Apr 18, 2025 am 12:20 AM

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优

Python vs.C:探索性能和效率Python vs.C:探索性能和效率Apr 18, 2025 am 12:20 AM

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具