你有沒有發現自己在填寫隨機單字以創造一個搞笑荒誕的故事時無法控制地咯咯笑?如果是這樣,您可能已經體驗過 Mad Libs 的樂趣,這是一款自 20 世紀 50 年代以來一直為各個年齡段的人們帶來樂趣的經典文字遊戲。
但是如果我告訴您,這個簡單的遊戲也可以成為您通往令人興奮的 Python 程式設計世界的門戶?
Mad Libs 的核心是一款填空說故事遊戲。玩家在不知道故事背景的情況下,會被提示提供特定類型的單字(名詞、動詞、形容詞等)。
在這裡了解循環:Python 循環:初學者綜合指南
然後將這些單字插入到預先寫好的敘述中,通常會產生一個喜劇和無意義的故事,激發笑聲和創造力。
但 Mad Libs 不僅僅是一種娛樂。當轉化為程式設計專案時,它成為一種強大的教學工具,為有抱負的程式設計師提供一種有趣且引人入勝的方式來學習基本程式設計概念。
首先,請確保您的電腦上安裝了 Python。您可以從Python官方網站下載它。對於這個項目,我們將使用 Python 3.12.7。
安裝 Python 後,開啟您喜歡的文字編輯器或整合開發環境 (IDE)。初學者的熱門選擇包括 IDLE(Python 附帶)、Visual Studio Code 或 PyCharm。
對於這個項目,我將使用 Pycharm。
讓我們將 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 遊戲。此專案向您介紹了幾個重要的程式設計概念:
透過建立這個遊戲,您不僅創造了一些有趣的東西,而且還為更高級的 Python 專案奠定了堅實的基礎。請記住,成為熟練程式設計師的關鍵是練習和實驗。不要害怕修改這個遊戲,添加新功能,或使用這些概念創建全新的項目!
當您繼續 Python 之旅時,請考慮探索更高級的主題,例如物件導向程式設計、圖形使用者介面 (GUI) 或使用 Django 或 Flask 等框架進行 Web 開發。
您在這裡學到的技能將成為這些更複雜的軟體開發領域的絕佳跳板。
快樂編碼,願你的 Mad Libs 冒險充滿歡笑和學習!
以上是用 Python 建立互動式 Mad Libs 遊戲:初學者指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!