搜尋
首頁後端開發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 vs. C:了解關鍵差異Python vs. C:了解關鍵差異Apr 21, 2025 am 12:18 AM

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

Python vs.C:您的項目選擇哪種語言?Python vs.C:您的項目選擇哪種語言?Apr 21, 2025 am 12:17 AM

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

達到python目標:每天2小時的力量達到python目標:每天2小時的力量Apr 20, 2025 am 12:21 AM

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。

最大化2小時:有效的Python學習策略最大化2小時:有效的Python學習策略Apr 20, 2025 am 12:20 AM

在兩小時內高效學習Python的方法包括:1.回顧基礎知識,確保熟悉Python的安裝和基本語法;2.理解Python的核心概念,如變量、列表、函數等;3.通過使用示例掌握基本和高級用法;4.學習常見錯誤與調試技巧;5.應用性能優化與最佳實踐,如使用列表推導式和遵循PEP8風格指南。

在Python和C之間進行選擇:適合您的語言在Python和C之間進行選擇:適合您的語言Apr 20, 2025 am 12:20 AM

Python適合初學者和數據科學,C 適用於系統編程和遊戲開發。 1.Python簡潔易用,適用於數據科學和Web開發。 2.C 提供高性能和控制力,適用於遊戲開發和系統編程。選擇應基於項目需求和個人興趣。

Python與C:編程語言的比較分析Python與C:編程語言的比較分析Apr 20, 2025 am 12:14 AM

Python更適合數據科學和快速開發,C 更適合高性能和系統編程。 1.Python語法簡潔,易於學習,適用於數據處理和科學計算。 2.C 語法複雜,但性能優越,常用於遊戲開發和系統編程。

每天2小時:Python學習的潛力每天2小時:Python學習的潛力Apr 20, 2025 am 12:14 AM

每天投入兩小時學習Python是可行的。 1.學習新知識:用一小時學習新概念,如列表和字典。 2.實踐和練習:用一小時進行編程練習,如編寫小程序。通過合理規劃和堅持不懈,你可以在短時間內掌握Python的核心概念。

Python與C:學習曲線和易用性Python與C:學習曲線和易用性Apr 19, 2025 am 12:20 AM

Python更易學且易用,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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),