Python Mad Libs 生成器游戏



Python Mad Libs 生成器游戏是一个创建并显示包含用户输入的有趣单词和短语的故事的应用程序。此游戏的图形用户界面使用 Tkinter 开发,而游戏的声音效果来自 Pygame,使游戏对任何喜欢创意写作或趣味叙事的用户都很有吸引力。

功能特性说明

  • GUI 元素 - 它使用 Tkinter 开发用户界面,并带有用于输入输入的条目标签,例如名人、颜色、动物、服装、食物、地点和以“-ing”结尾的动词。这些输入用于填写 Mad Libs 故事的空白处。
  • 声音效果 - Pygame 结合使用,每次用户按下“生成 Mad Libs”按钮时播放声音(“click.wav”),以获得更好的交互性。
  • 故事生成 - 当用户点击“生成 Mad Libs”按钮时,应用程序会存储输入,根据这些输入创建故事,最后在消息框中显示。
  • 清除输入 - 提供了一个“清除”按钮来清除用户输入的所有条目,使他们能够重新开始。

关键函数

  • play_sound() - 管理 Pygame 程序中声音效果的加载和播放。因为它尝试加载并播放“click.wav”,如果找不到文件,则会引发异常。
  • generate_madlib() - 读取用户输入,为特定且唯一的 Mad Libs 生成文本,并通过 Tkinter 包将其打印在消息框上。它还会打开声音效果。
  • clear_inputs() - 所有输入字段都重置为初始空白状态,以便用户可以轻松清除其输入。

安装

首先,我们必须安装 pygame。Tkinter 包含在 Python 中,因此我们无需单独安装它。

以下是使用 pip 安装 **pygame** 的语法 -

pip install pygame

Mad Libs 生成器游戏的 Python 代码

import tkinter as tk
from tkinter import messagebox
import pygame
import os

# Set the working directory to where your script is located
os.chdir(os.path.dirname(os.path.abspath(__file__)))

# Initialize pygame mixer for sound effects
pygame.mixer.init()

# Function to play a sound
def play_sound():
   try:
      pygame.mixer.music.load("click.wav")
      pygame.mixer.music.play()
   except pygame.error:
      print("Sound file not found. Continuing without sound.")

# Function to create and display a Mad Libs story
def generate_madlib():
   play_sound()  # Play sound effect on button click
    
   # Collect inputs from the user
   celebrity = celebrity_entry.get()
   color = color_entry.get()
   animal = animal_entry.get()
   clothing = clothing_entry.get()
   food = food_entry.get()
   place = place_entry.get()
   verb_ing = verb_ing_entry.get()

   # Create the story
   story = (f"One day, {celebrity} decided to wear a {color} {clothing} and take their pet {animal} to {place}. "
      f"While there, they had an unexpected encounter and ended up {verb_ing} with a tasty {food}. "
      f"It turned out to be an unforgettable adventure, filled with excitement and {verb_ing}!")

    
   # Display the story in a message box
   messagebox.showinfo("Your Mad Libs Story", story)

# Function to clear all inputs
def clear_inputs():
   celebrity_entry.delete(0, tk.END)
   color_entry.delete(0, tk.END)
   animal_entry.delete(0, tk.END)
   clothing_entry.delete(0, tk.END)
   food_entry.delete(0, tk.END)
   place_entry.delete(0, tk.END)
   verb_ing_entry.delete(0, tk.END)

# Set up the main Tkinter window
root = tk.Tk()
root.title("Mad Libs Game")

# Create input labels and entry widgets
tk.Label(root, text="Celebrity:").grid(row=0, column=0, padx=10, pady=5)
celebrity_entry = tk.Entry(root)
celebrity_entry.grid(row=0, column=1, padx=10, pady=5)

tk.Label(root, text="Color:").grid(row=1, column=0, padx=10, pady=5)
color_entry = tk.Entry(root)
color_entry.grid(row=1, column=1, padx=10, pady=5)

tk.Label(root, text="Animal:").grid(row=2, column=0, padx=10, pady=5)
animal_entry = tk.Entry(root)
animal_entry.grid(row=2, column=1, padx=10, pady=5)

tk.Label(root, text="Clothing:").grid(row=3, column=0, padx=10, pady=5)
clothing_entry = tk.Entry(root)
clothing_entry.grid(row=3, column=1, padx=10, pady=5)

tk.Label(root, text="Food:").grid(row=4, column=0, padx=10, pady=5)
food_entry = tk.Entry(root)
food_entry.grid(row=4, column=1, padx=10, pady=5)

tk.Label(root, text="Place:").grid(row=5, column=0, padx=10, pady=5)
place_entry = tk.Entry(root)
place_entry.grid(row=5, column=1, padx=10, pady=5)

tk.Label(root, text="Verb (ending in -ing):").grid(row=6, column=0, padx=10, pady=5)
verb_ing_entry = tk.Entry(root)
verb_ing_entry.grid(row=6, column=1, padx=10, pady=5)

# Create buttons to generate the story and clear inputs
generate_button = tk.Button(root, text="Generate Mad Libs", command=generate_madlib)
generate_button.grid(row=7, column=0, columnspan=2, pady=10)

clear_button = tk.Button(root, text="Clear", command=clear_inputs)
clear_button.grid(row=8, column=0, columnspan=2, pady=5)

# Start the Tkinter event loop
root.mainloop()

输出

Mad Libs Game

填写空白后

Mad Libs Game

然后,我们将点击“生成 Mad Libs”按钮。如果要清除所有块,则可以按“清除”按钮;否则,不要按它。

点击“生成 Mad Libs”后

Mad Libs Game

Python Mad Libs 生成器游戏是一个娱乐应用程序,同时使用叙事元素并具有非常基本的 GUI。使用 Tkinter 作为图形用户界面和 Pygame 作为声音效果,用户可以获得一个愉快的界面,他们可以使用该界面生成和分享自己的 Mad Libs 故事。该应用程序非常易于实现,因此可以作为 Python 和 GUI 开发的培训项目。

python_projects_from_basic_to_advanced.htm
广告

© . All rights reserved.