1+ # 欢迎使用 PythonIDE!如果觉得好用,请给个好评哦~
2+ import random
3+ import json
4+ import hashlib
5+ import time
6+
7+ def clear ():
8+ print ("\n " * 80 )
9+
10+ class 网吧大亨终极版 :
11+ def __init__ (self ):
12+ # 基础资源
13+ self .钱 = 500
14+ self .天数 = 1
15+ self .小时 = 10
16+ self .电脑总数 = 6
17+ self .电脑使用中 = 0
18+ self .电脑损坏 = 0
19+ self .排队顾客 = 0
20+ self .上网价格 = 6
21+
22+ # 顾客上机时长(关键修复)
23+ self .顾客上机时长 = [0 ] * self .电脑总数 # 记录每台电脑上了多久
24+
25+ # 🔥 新增系统
26+ self .口碑 = 100
27+ self .会员数 = 0
28+ self .饮料库存 = 20
29+ self .饮料成本 = 2
30+ self .饮料售价 = 5
31+ self .雇佣网管 = False
32+ self .装修等级 = 1
33+ self .天气 = ["☀️晴天" , "🌧️小雨" , "⛈️大雨" , "❄️雪天" ][random .randint (0 ,3 )]
34+ self .今日营收 = 0
35+
36+ # ======================
37+ # 存档码系统
38+ # ======================
39+ def 生成存档码 (self ):
40+ 数据 = {
41+ "钱" : self .钱 ,
42+ "天数" : self .天数 ,
43+ "小时" : self .小时 ,
44+ "电脑总数" : self .电脑总数 ,
45+ "电脑使用中" : self .电脑使用中 ,
46+ "电脑损坏" : self .电脑损坏 ,
47+ "排队顾客" : self .排队顾客 ,
48+ "上网价格" : self .上网价格 ,
49+ "顾客上机时长" : self .顾客上机时长 ,
50+ "口碑" : self .口碑 ,
51+ "会员数" : self .会员数 ,
52+ "饮料库存" : self .饮料库存 ,
53+ "饮料成本" : self .饮料成本 ,
54+ "饮料售价" : self .饮料售价 ,
55+ "雇佣网管" : self .雇佣网管 ,
56+ "装修等级" : self .装修等级 ,
57+ "天气" : self .天气 ,
58+ "今日营收" : self .今日营收
59+ }
60+ 字符串 = json .dumps (数据 , ensure_ascii = False )
61+ 唯一码 = hashlib .sha256 ((字符串 + str (time .time ())).encode ('utf-8' )).hexdigest ()[:16 ]
62+ print ("\n ✅ 你的唯一存档码:" )
63+ print (f"【{ 唯一码 } 】" )
64+ print ("💾 存档数据(可保存):" )
65+ print (字符串 )
66+ print ("\n ℹ️ 下次输入这段数据即可读档!" )
67+ input ("回车继续..." )
68+
69+ def 读取存档码 (self ):
70+ try :
71+ 数据字符串 = input ("\n 请粘贴存档数据:\n " )
72+ 数据 = json .loads (数据字符串 )
73+ self .钱 = 数据 ["钱" ]
74+ self .天数 = 数据 ["天数" ]
75+ self .小时 = 数据 ["小时" ]
76+ self .电脑总数 = 数据 ["电脑总数" ]
77+ self .电脑使用中 = 数据 ["电脑使用中" ]
78+ self .电脑损坏 = 数据 ["电脑损坏" ]
79+ self .排队顾客 = 数据 ["排队顾客" ]
80+ self .上网价格 = 数据 ["上网价格" ]
81+ self .顾客上机时长 = 数据 ["顾客上机时长" ]
82+ self .口碑 = 数据 ["口碑" ]
83+ self .会员数 = 数据 ["会员数" ]
84+ self .饮料库存 = 数据 ["饮料库存" ]
85+ self .饮料成本 = 数据 ["饮料成本" ]
86+ self .饮料售价 = 数据 ["饮料售价" ]
87+ self .雇佣网管 = 数据 ["雇佣网管" ]
88+ self .装修等级 = 数据 ["装修等级" ]
89+ self .天气 = 数据 ["天气" ]
90+ self .今日营收 = 数据 ["今日营收" ]
91+ print ("\n ✅ 读档成功!" )
92+ except :
93+ print ("\n ❌ 存档数据错误!" )
94+ input ("回车继续..." )
95+
96+ # ======================
97+ # 时间流逝 + 24小时强制下机(核心修复)
98+ # ======================
99+ def 时间流逝 (self ):
100+ # 每过1小时,所有在用电脑计时+1
101+ for i in range (self .电脑使用中 ):
102+ self .顾客上机时长 [i ] += 1
103+
104+ # ✅ 强制规则:超过24小时直接下机
105+ 下机人数 = 0
106+ for i in range (self .电脑使用中 ):
107+ if self .顾客上机时长 [i ] >= 24 :
108+ 下机人数 += 1
109+
110+ if 下机人数 > 0 :
111+ print (f"\n ⏰ 有{ 下机人数 } 位顾客上网满24小时,已强制下机!" )
112+ self .电脑使用中 -= 下机人数
113+ # 把后面的时长往前移
114+ self .顾客上机时长 = self .顾客上机时长 [下机人数 :] + [0 ]* 下机人数
115+
116+ # 正常时间推进
117+ self .小时 += 1
118+ if self .小时 >= 24 :
119+ self .小时 = 9
120+ self .天数 += 1
121+ self .今日营收 = 0
122+ self .天气 = ["☀️晴天" ,"🌧️小雨" ,"⛈️大雨" ,"❄️雪天" ][random .randint (0 ,3 )]
123+
124+ # 顾客刷新
125+ 来客数 = random .randint (1 ,4 )
126+ if self .天气 == "☀️晴天" : 来客数 += 2
127+ if self .天气 == "⛈️大雨" : 来客数 -= 2
128+ if self .口碑 > 120 : 来客数 += 2
129+ if self .口碑 < 60 : 来客数 -= 1
130+ self .排队顾客 += max (来客数 ,0 )
131+
132+ # 电脑损坏
133+ if random .randint (1 ,10 ) == 1 and self .电脑损坏 < self .电脑总数 // 2 :
134+ self .电脑损坏 += 1
135+ print ("\n ⚠️ 一台电脑坏了!" )
136+
137+ # 网管维修
138+ if self .雇佣网管 and self .电脑损坏 > 0 and random .randint (1 ,2 )== 1 :
139+ self .电脑损坏 -= 1
140+ print ("\n ✅ 网管自动修好一台电脑!" )
141+
142+ def 快进2小时 (self ):
143+ print ("\n ⏩ 快进 2 小时..." )
144+ self .时间流逝 ()
145+ self .时间流逝 ()
146+ input ("完成!回车继续..." )
147+
148+ def 快进3小时 (self ):
149+ print ("\n ⏩ 快进 3 小时..." )
150+ self .时间流逝 ()
151+ self .时间流逝 ()
152+ self .时间流逝 ()
153+ input ("完成!回车继续..." )
154+
155+ # ======================
156+ # 接待顾客时重置计时
157+ # ======================
158+ def 接待顾客 (self ):
159+ 可用 = self .电脑总数 - self .电脑使用中 - self .电脑损坏
160+ if 可用 <= 0 or self .排队顾客 <= 0 :
161+ print ("\n ❌ 没电脑/没顾客!" )
162+ input ("回车继续..." )
163+ return
164+ 接待 = min (可用 , self .排队顾客 )
165+ 收入 = 接待 * self .上网价格
166+ self .钱 += 收入
167+ self .今日营收 += 收入
168+
169+ # 新上机顾客,计时从0开始
170+ for i in range (self .电脑使用中 , self .电脑使用中 + 接待 ):
171+ self .顾客上机时长 [i ] = 0
172+
173+ self .电脑使用中 += 接待
174+ self .排队顾客 -= 接待
175+ self .口碑 = min (self .口碑 + 2 , 150 )
176+ print (f"\n ✅ 接待{ 接待 } 人!赚{ 收入 } 元 🌟口碑+2" )
177+ input ("回车继续..." )
178+
179+ # ======================
180+ # 买电脑时同步扩展时长列表
181+ # ======================
182+ def 买电脑 (self ):
183+ 价格 = 180
184+ if self .钱 < 价格 :
185+ print (f"\n ❌ 买电脑需要{ 价格 } 元!" )
186+ input ("回车继续..." )
187+ return
188+ self .钱 -= 价格
189+ self .电脑总数 += 1
190+ self .顾客上机时长 .append (0 ) # 关键:加电脑也要加计时位
191+ print ("\n 🆕 新增电脑一台!" )
192+ input ("回车继续..." )
193+
194+ # ======================
195+ # 下面所有原有功能不变
196+ # ======================
197+ def 画地图 (self ):
198+ clear ()
199+ print ("🏪【网吧大亨·终极版】🏪" .center (58 , "=" ))
200+ print ()
201+
202+ 电脑行 = " "
203+ for i in range (self .电脑总数 ):
204+ if i < self .电脑使用中 :
205+ 电脑行 += "💻 "
206+ elif i < self .电脑使用中 + self .电脑损坏 :
207+ 电脑行 += "🔧 "
208+ else :
209+ 电脑行 += "🖥️ "
210+ print (电脑行 )
211+ print ("-" * 58 )
212+
213+ 顾客显示 = "👤" * min (self .排队顾客 , 12 )
214+ if self .排队顾客 > 12 : 顾客显示 += f"+{ self .排队顾客 - 12 } 人"
215+ print (f" 👥排队:{ 顾客显示 } " )
216+
217+ print (f" 👑会员:{ self .会员数 } | 👨💻网管:{ '已雇佣' if self .雇佣网管 else '未雇' } | 🎨装修:{ self .装修等级 } 级" )
218+ print (f" 🌟口碑:{ self .口碑 } | { self .天气 } | 📊今日营收:{ self .今日营收 } 元" )
219+ print (f" 💰金钱:{ self .钱 } | 🥤饮料库存:{ self .饮料库存 } | 💸网费:{ self .上网价格 } 元/时" )
220+ print ("=" * 58 )
221+
222+ def 卖饮料 (self ):
223+ if self .电脑使用中 == 0 :
224+ print ("\n ❌ 没人上网,卖不出去!" )
225+ input ("回车继续..." )
226+ return
227+ if self .饮料库存 <= 0 :
228+ print ("\n ❌ 饮料卖完了!" )
229+ input ("回车继续..." )
230+ return
231+ 卖出 = min (random .randint (1 , self .电脑使用中 ), self .饮料库存 )
232+ 利润 = 卖出 * (self .饮料售价 - self .饮料成本 )
233+ self .钱 += 利润
234+ self .今日营收 += 利润
235+ self .饮料库存 -= 卖出
236+ print (f"\n 🥤 卖出{ 卖出 } 瓶饮料!赚{ 利润 } 元" )
237+ input ("回车继续..." )
238+
239+ def 进货饮料 (self ):
240+ 进价 = self .饮料成本 * 10
241+ if self .钱 < 进价 :
242+ print ("\n ❌ 钱不够进货!" )
243+ input ("回车继续..." )
244+ return
245+ self .钱 -= 进价
246+ self .饮料库存 += 10
247+ print (f"\n 📦 饮料进货+10瓶!花费{ 进价 } 元" )
248+ input ("回车继续..." )
249+
250+ def 雇佣解雇网管 (self ):
251+ if not self .雇佣网管 :
252+ if self .钱 < 200 :
253+ print ("\n ❌ 雇佣网管需要200元!" )
254+ input ("回车继续..." )
255+ return
256+ self .钱 -= 200
257+ self .雇佣网管 = True
258+ print ("\n 👨💻 网管已雇佣!自动帮你修电脑~" )
259+ else :
260+ self .雇佣网管 = False
261+ print ("\n 👋 已解雇网管" )
262+ input ("回车继续..." )
263+
264+ def 升级装修 (self ):
265+ 费用 = 150 * self .装修等级
266+ if self .钱 < 费用 :
267+ print (f"\n ❌ 升级需要{ 费用 } 元!" )
268+ input ("回车继续..." )
269+ return
270+ self .钱 -= 费用
271+ self .装修等级 += 1
272+ self .口碑 += 10
273+ print (f"\n 🎨 装修升到{ self .装修等级 } 级!口碑+10" )
274+ input ("回车继续..." )
275+
276+ def 发展会员 (self ):
277+ 费用 = 80
278+ if self .钱 < 费用 :
279+ print ("\n ❌ 发展会员需要80元!" )
280+ input ("回车继续..." )
281+ return
282+ self .钱 -= 费用
283+ self .会员数 += random .randint (3 ,8 )
284+ self .口碑 += 5
285+ print (f"\n 👑 会员+{ random .randint (3 ,8 )} 人!口碑+5" )
286+ input ("回车继续..." )
287+
288+ def 突发事件 (self ):
289+ 事件 = random .choice ([
290+ "网红打卡🎉,顾客暴涨!" ,
291+ "突然停电⚡,所有顾客下机!" ,
292+ "消防检查👮,口碑小幅下降" ,
293+ "老顾客送礼🎁,直接给你100元!"
294+ ])
295+ if "网红" in 事件 :
296+ self .排队顾客 += 10
297+ self .口碑 += 10
298+ elif "停电" in 事件 :
299+ self .电脑使用中 = 0
300+ self .口碑 = max (self .口碑 - 10 , 30 )
301+ elif "消防" in 事件 :
302+ self .口碑 = max (self .口碑 - 8 , 30 )
303+ elif "送礼" in 事件 :
304+ self .钱 += 100
305+ print (f"\n 🚨 突发事件:{ 事件 } " )
306+ input ("回车继续..." )
307+
308+ def 每日打卡 (self ):
309+ 奖励 = random .randint (50 ,150 )
310+ self .钱 += 奖励
311+ print (f"\n 🎁 打卡成功!获得{ 奖励 } 元" )
312+ input ("回车继续..." )
313+
314+ # ======================
315+ # 主菜单
316+ # ======================
317+ def 开始游戏 (self ):
318+ while True :
319+ self .画地图 ()
320+ print ("\n 【🎮 超级操作菜单】" )
321+ print (" 1.👥接待顾客 2.🥤卖饮料 3.📦进货饮料 4.🆕买电脑" )
322+ print (" 5.👨💻雇/解雇网管 6.🎨升级装修 7.👑发展会员 8.💰每日打卡" )
323+ print (" 9.🚨突发事件 10.💸改网价 11.🕒快进1h 12.⏩快进2h 13.⏩快进3h" )
324+ print ("14.💾生成存档码 15.📂读取存档码 0.🚪退出游戏" )
325+
326+ 选择 = input ("\n 请输入操作(1-15或0):" ).strip ()
327+ if 选择 == "1" : self .接待顾客 ()
328+ elif 选择 == "2" : self .卖饮料 ()
329+ elif 选择 == "3" : self .进货饮料 ()
330+ elif 选择 == "4" : self .买电脑 ()
331+ elif 选择 == "5" : self .雇佣解雇网管 ()
332+ elif 选择 == "6" : self .升级装修 ()
333+ elif 选择 == "7" : self .发展会员 ()
334+ elif 选择 == "8" : self .每日打卡 ()
335+ elif 选择 == "9" : self .突发事件 ()
336+ elif 选择 == "10" :
337+ try :
338+ 新价 = int (input ("输入新价格(1-40):" ))
339+ if 1 <= 新价 <= 40 :
340+ self .上网价格 = 新价
341+ print ("✅ 价格已改!" )
342+ except : pass
343+ input ("回车继续..." )
344+ elif 选择 == "11" : self .时间流逝 ()
345+ elif 选择 == "12" : self .快进2小时 ()
346+ elif 选择 == "13" : self .快进3小时 ()
347+ elif 选择 == "14" : self .生成存档码 ()
348+ elif 选择 == "15" : self .读取存档码 ()
349+ elif 选择 == "0" :
350+ clear ()
351+ print ("👋 感谢玩《网吧大亨·终极版》!" )
352+ break
353+ else :
354+ input ("❌ 输入错误,回车重试..." )
355+
356+ if __name__ == "__main__" :
357+ 游戏 = 网吧大亨终极版 ()
358+ 游戏 .开始游戏 ()
0 commit comments