1import tkinter as tkfrom tkinter import messageboximport json用户数据文件USER_DATA_FILE = user_datajson游戏信息GAME_NAME = 快乐打工游戏GAME_INTRODUCTION = 在这个游戏中你将扮演一个年轻人通过打工来赚取金钱并提升自己的技能。你可以选择不同的职业每个职业都有独特的挑战和奖励。通过
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 著作权归作者所有。请勿转载和采集!