设计一个Python项目(单词记忆游戏),带有图形用户界面,具体要求(游戏开始时,随机选择一个单词,并将其字母顺序打乱展示给用户。用户有限次数的猜测机会,每次猜测后给予反馈。

import tkinter as tk
from tkinter import messagebox
import random
import time

class WordMemoryGameGUI:
    def __init__(self, master):
        self.master = master
        self.master.title("Word Memory Game")

        self.word_list = ["python", "programming", "challenge", "developer", "learning"]
        self.original_word = ""
        self.shuffled_word = ""
        self.attempts = 3
        self.score = 0
        self.timer_seconds = 60
        self.timer_running = False

        self.setup_widgets()

    def setup_widgets(self):
        self.score_label = tk.Label(self.master, text="Score: 0", font=("Helvetica", 14))
        self.score_label.pack(pady=10)

        self.word_label = tk.Label(self.master, text="", font=("Helvetica", 18, "bold"))
        self.word_label.pack(pady=20)

        self.entry_label = tk.Label(self.master, text="Your guess:", font=("Helvetica", 12))
        self.entry_label.pack()

        self.entry = tk.Entry(self.master, font=("Helvetica", 14))
        self.entry.pack(pady=10)

        self.submit_button = tk.Button(self.master, text="Submit", command=self.check_guess)
        self.submit_button.pack(pady=10)

        self.timer_label = tk.Label(self.master, text="Time left: 60s", font=("Helvetica", 12))
        self.timer_label.pack()

        self.start_button = tk.Button(self.master, text="Start Game", command=self.start_game)
        self.start_button.pack(pady=20)

    def start_game(self):
        self.timer_seconds = 60
        self.timer_running = True
        self.update_timer_label()
        self.start_timer()
        self.new_word()

    def new_word(self):
        self.original_word = random.choice(self.word_list)
        self.shuffled_word = self.shuffle_word(self.original_word)
        self.word_label.config(text=self.shuffled_word)
        self.entry.delete(0, tk.END)
        self.attempts = 3

    def shuffle_word(self, word):
        shuffled_word = list(word)
        random.shuffle(shuffled_word)
        return ''.join(shuffled_word)

    def check_guess(self):
        guess = self.entry.get().lower()
        if guess == self.original_word:
            self.score += 1
            messagebox.showinfo("Correct", "You guessed the word!")
            self.update_score_label()
            self.new_word()
        else:
            self.attempts -= 1
            messagebox.showwarning("Incorrect", f"Incorrect guess. {self.attempts} attempts left.")
            if self.attempts == 0:
                self.end_game()

    def end_game(self):
        self.timer_running = False
        messagebox.showinfo("Game Over", f"Game Over!\nYour score: {self.score}\nOriginal word: {self.original_word}")
        self.start_button.config(state=tk.NORMAL)
        self.new_word()

    def update_score_label(self):
        self.score_label.config(text=f"Score: {self.score}")

    def update_timer_label(self):
        self.timer_label.config(text=f"Time left: {self.timer_seconds}s")
        if self.timer_seconds > 0 and self.timer_running:
            self.timer_seconds -= 1
            self.master.after(1000, self.update_timer_label)
        elif self.timer_seconds == 0:
            self.end_game()

    def start_timer(self):
        self.start_button.config(state=tk.DISABLED)

# 创建主窗口
root = tk.Tk()
root.geometry("400x300")

# 创建游戏对象
game_gui = WordMemoryGameGUI(root)

# 运行主循环
root.mainloop()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值