import tkinter as tk from tkinter import messagebox import json

用户数据文件 USER_DATA_FILE = 'user_data.json'

游戏信息 GAME_NAME = '快乐打工游戏' GAME_INTRODUCTION = '在这个游戏中,你将扮演一个年轻人,通过打工来赚取金钱并提升自己的技能。你可以选择不同的职业,每个职业都有独特的挑战和奖励。通过工作和管理你的资源,你可以逐渐提升自己的生活水平,并达到自己的目标。' GAME_RULES = '游戏规则:\n开始游戏时,你有一定数量的起始资金和基础技能。你可以选择不同的职业,并决定每天要工作的小时数。每个职业都有不同的工作时长和报酬,同时也会消耗你的体力和时间。在工作期间,你可能会面临一些挑战和任务,完成它们将获得额外的奖励。每天结束后,你可以使用赚取的金钱来提升自己的技能或购买一些物品。提升技能将使你在相应职业中更加高效,并可能解锁新的工作机会。游戏以时间为限制,你需要在一定的时间内达到一定的目标才能获胜。' GAME_ELEMENTS = '游戏要素:\n资金:用于购买物品和提升技能。\n技能:不同的职业对应不同的技能,提升技能将使你在工作中更加高效。\n体力:用于工作,每次工作将消耗一定的体力,当体力耗尽时,你将无法继续工作。\n时间:游戏以时间为限制,你需要在规定的时间内达到目标才能获胜。\n物品:你可以购买一些物品来提升你的效率或满足一些特殊需求。' GAME_GOAL = '游戏目标:\n根据游戏设定的目标,在规定的时间内赚取一定的金钱。提升自己的技能,解锁更高级的职业和更好的报酬。管理好你的资源,平衡工作和生活,实现自己的目标。'

职业列表 JOBS = { '服务员': { '工作时长': 4, '报酬': 50, '体力消耗': 20 }, '销售员': { '工作时长': 5, '报酬': 60, '体力消耗': 25 }, '程序员': { '工作时长': 6, '报酬': 80, '体力消耗': 30 } }

class GameApp: def init(self, root): self.root = root self.current_user = None self.load_user_data()

    self.login_frame = tk.Frame(root)
    self.register_frame = tk.Frame(root)
    self.game_frame = tk.Frame(root)

    self.create_login_frame()
    self.create_register_frame()
    self.create_game_frame()

    self.show_login_frame()

def load_user_data(self):
    try:
        with open(USER_DATA_FILE, 'r') as file:
            self.user_data = json.load(file)
    except FileNotFoundError:
        self.user_data = {}

def save_user_data(self):
    with open(USER_DATA_FILE, 'w') as file:
        json.dump(self.user_data, file)

def show_login_frame(self):
    self.clear_frames()
    self.login_frame.pack()

def create_login_frame(self):
    label = tk.Label(self.login_frame, text='登录')
    label.pack()

    username_label = tk.Label(self.login_frame, text='用户名')
    username_label.pack()
    self.username_entry = tk.Entry(self.login_frame)
    self.username_entry.pack()

    password_label = tk.Label(self.login_frame, text='密码')
    password_label.pack()
    self.password_entry = tk.Entry(self.login_frame, show='*')
    self.password_entry.pack()

    login_button = tk.Button(self.login_frame, text='登录', command=self.login)
    login_button.pack()

    register_label = tk.Label(self.login_frame, text='没有账号?')
    register_label.pack()
    register_button = tk.Button(self.login_frame, text='注册', command=self.show_register_frame)
    register_button.pack()

def login(self):
    username = self.username_entry.get()
    password = self.password_entry.get()

    if username in self.user_data and self.user_data[username]['password'] == password:
        self.current_user = username
        self.show_game_frame()
    else:
        messagebox.showerror('登录失败', '用户名或密码错误')

def show_register_frame(self):
    self.clear_frames()
    self.register_frame.pack()

def create_register_frame(self):
    label = tk.Label(self.register_frame, text='注册')
    label.pack()

    username_label = tk.Label(self.register_frame, text='用户名')
    username_label.pack()
    self.register_username_entry = tk.Entry(self.register_frame)
    self.register_username_entry.pack()

    password_label = tk.Label(self.register_frame, text='密码')
    password_label.pack()
    self.register_password_entry = tk.Entry(self.register_frame, show='*')
    self.register_password_entry.pack()

    register_button = tk.Button(self.register_frame, text='注册', command=self.register)
    register_button.pack()

    login_label = tk.Label(self.register_frame, text='已有账号?')
    login_label.pack()
    login_button = tk.Button(self.register_frame, text='登录', command=self.show_login_frame)
    login_button.pack()

def register(self):
    username = self.register_username_entry.get()
    password = self.register_password_entry.get()

    if username in self.user_data:
        messagebox.showerror('注册失败', '用户名已存在')
    else:
        self.user_data[username] = {'password': password, 'score': 0}
        self.current_user = username
        self.save_user_data()
        self.show_game_frame()

def show_game_frame(self):
    self.clear_frames()
    self.game_frame.pack()

def create_game_frame(self):
    label = tk.Label(self.game_frame, text='打工游戏')
    label.pack()

    username_label = tk.Label(self.game_frame, text=f'当前用户:{self.current_user}')
    username_label.pack()

    score_label = tk.Label(self.game_frame, text=f'分数:{self.user_data[self.current_user]["score"]}')
    score_label.pack()

    logout_button = tk.Button(self.game_frame, text='注销', command=self.logout)
    logout_button.pack()

    # 添加游戏信息文本框
    game_info_label = tk.Label(self.game_frame, text=f'{GAME_NAME}\n\n{GAME_INTRODUCTION}\n\n{GAME_RULES}\n\n{GAME_ELEMENTS}\n\n{GAME_GOAL}')
    game_info_label.pack()

def logout(self):
    self.current_user = None
    self.show_login_frame()

def clear_frames(self):
    self.login_frame.pack_forget()
    self.register_frame.pack_forget()
    self.game_frame.pack_forget()

root = tk.Tk() app = GameApp(root) root.mainloop(


原文地址: http://www.cveoy.top/t/topic/hWKz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录