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()