1+ # 欢迎使用 PythonIDE!如果觉得好用,请给个好评哦~
2+ import random
3+ import json
4+ import hashlib
5+ import time
6+
7+ def clear ():
8+ print ("\033 c" , end = "" )
9+
10+ class 网吧大亨终极版 :
11+ def __init__ (self ):
12+ self .钱 = 1500
13+ self .天数 = 1
14+ self .小时 = 10
15+ self .排队顾客 = 0
16+ self .口碑 = 100
17+ self .今日营收 = 0
18+ self .天气 = random .choice (["☀️晴天" , "🌧️小雨" , "⛈️大雨" , "❄️雪天" ])
19+
20+ # 电脑
21+ self .电脑 = []
22+ for _ in range (6 ):
23+ self .电脑 .append ({"等级" :1 , "状态" :0 , "计时" :0 })
24+
25+ # 街机
26+ self .街机 = []
27+
28+ # 网管
29+ self .网管列表 = []
30+ self .最大网管数 = 5
31+
32+ # 垃圾 & 保洁
33+ self .垃圾 = 0
34+ self .最大垃圾 = 15
35+ self .保洁列表 = []
36+ self .最大保洁 = 3
37+
38+ # 管理员(防逃票,只能1个,探索时自动工作,回来就辞职)
39+ self .管理员 = False
40+
41+ # 探索
42+ self .正在探索 = False
43+
44+ # 100条提示
45+ self .all_tips = [
46+ "高级电脑收益更高。" ,"配件必须同等级一套。" ,"街机有等级会坏。" ,"电脑街机都会坏。" ,
47+ "网管修5次辞职。" ,"排队最多40人。" ,"24小时强制下机。" ,"晴天客人更多。" ,
48+ "口碑高客人多。" ,"先买1级电脑最稳。" ,"街机是第二收入。" ,"坏设备要修。" ,
49+ "商城直接买高级电脑。" ,"6级电脑收益翻倍。" ,"电脑街机一起开最赚。" ,
50+ "网管要多招。" ,"口碑低影响生意。" ,"每天收益很重要。" ,"等级不影响故障率。" ,
51+ "一次多接待最赚。" ,"商城高级电脑性价比高。" ,"街机吸引学生。" ,
52+ "晚上客流稳。" ,"多招网管效率高。" ,"等级高单价高。" ,"排队满40人就上限。" ,
53+ "损坏率低才顺畅。" ,"每天先修设备。" ,"口碑上限150。" ,"大雨客人少。" ,
54+ "下雪天客流中等。" ,"新电脑默认空闲。" ,"全套配件同等级。" ,"街机坏了也要修。" ,
55+ "想快赚升高级电脑。" ,"多招网管比手动修强。" ,"上机中不会坏。" ,"0点清今日营收。" ,
56+ "快进容易坏设备。" ,"商城只卖成套设备。" ,"9级电脑最高。" ,"街机最高6级。" ,
57+ "接待前看空闲。" ,"网管最多5人。" ,"网管200元。" ,"逃单会扣钱。" ,
58+ "网红打卡爆排队。" ,"猫咪加口碑。" ,"停电全下机。" ,"卫生抽查降口碑。" ,
59+ "邻店倒闭送客人。" ,"会员日加口碑。" ,"蓝屏坏多台。" ,"留空闲应对高峰。" ,
60+ "快进3小时最爽。" ,"坏设备堆着会炸。" ,"等级越高图标越帅。" ,"每台电脑独立等级。" ,
61+ "街机独立等级。" ,"空闲多更灵活。" ,"上机显示计时。" ,"坏设备不影响其他。" ,
62+ "商城买电脑送全套。" ,"每次操作都清屏。" ,"菜单简洁。" ,"数值平衡。" ,
63+ "高级设备回本快。" ,"优先升电脑。" ,"中等级电脑稳。" ,"支持挂机。" ,
64+ "提示都是真实规则。" ,"顾客越多扔垃圾概率越高。" ,"垃圾多降口碑。" ,
65+ "保洁80元,清3次辞职。" ,"保洁最多3人。" ,"保洁只管垃圾。" ,"探索能得钱。" ,
66+ "探索会遇店铺、怪物。" ,"怪物要扣钱打跑。" ,"离开网吧可能逃票。" ,
67+ "管理员超级贵,只能1个。" ,"探索时管理员自动看守。" ,"管理员在绝对不逃票。" ,
68+ "回来管理员立刻辞职。" ,"城市探索能发大财。" ,"遇到怪物必须花钱摆平。" ,
69+ "探索越久越危险。" ,"店铺能捡小钱。" ,"管理员是防逃票神器。" ,
70+ "网管修设备,管理员防逃票。" ,"保洁清垃圾,三者不冲突。" ,
71+ "没钱别乱探索。" ,"高级设备配管理员才稳。" ,"这是第95条。" ,
72+ "第96条:保洁、网管、管理员各司其职。" ,"第97条:探索有风险。" ,
73+ "第98条:管理员只在你离开时工作。" ,"第99条:祝你游戏愉快!" ,
74+ "第100条:你已看完所有提示!"
75+ ]
76+ self .shown_tips = set ()
77+
78+ # ===================== 提示 =====================
79+ def show_tip (self ):
80+ clear ()
81+ if len (self .shown_tips ) >= len (self .all_tips ):
82+ print ("💡 已看完100条提示!" )
83+ else :
84+ tip = random .choice (self .all_tips )
85+ while tip in self .shown_tips :
86+ tip = random .choice (self .all_tips )
87+ self .shown_tips .add (tip )
88+ print ("💡" , tip )
89+ input ("\n 回车…" )
90+
91+ # ===================== 保洁 =====================
92+ def 招募保洁 (self ):
93+ clear ()
94+ if len (self .保洁列表 ) >= self .最大保洁 :
95+ print ("❌ 最多3名保洁工" )
96+ elif self .钱 < 80 :
97+ print ("❌ 80元" )
98+ else :
99+ self .钱 -= 80
100+ self .保洁列表 .append (3 )
101+ print ("✅ 保洁工到岗" )
102+ input ("\n 回车…" )
103+
104+ def 清理垃圾 (self ):
105+ while self .垃圾 > 0 and self .保洁列表 :
106+ self .垃圾 -= 1
107+ self .保洁列表 [0 ] -= 1
108+ if self .保洁列表 [0 ] <= 0 :
109+ self .保洁列表 .pop (0 )
110+
111+ # ===================== 网管 =====================
112+ def 招募网管 (self ):
113+ clear ()
114+ if len (self .网管列表 ) >= self .最大网管数 :
115+ print ("❌ 最多5名" )
116+ elif self .钱 < 200 :
117+ print ("❌ 200元" )
118+ else :
119+ self .钱 -= 200
120+ self .网管列表 .append (5 )
121+ print ("✅ 网管到岗" )
122+ input ("\n 回车…" )
123+
124+ # ===================== 管理员(防逃票) =====================
125+ def 雇佣管理员 (self ):
126+ clear ()
127+ if self .管理员 :
128+ print ("❌ 已存在管理员" )
129+ elif self .钱 < 1000 :
130+ print ("❌ 管理员费用 1000元(超级贵)" )
131+ else :
132+ self .钱 -= 1000
133+ self .管理员 = True
134+ print ("✅ 管理员雇佣成功!" )
135+ print ("👮 你离开期间自动工作,回来就辞职!" )
136+ input ("\n 回车…" )
137+
138+ # ===================== 商城 =====================
139+ def 商城 (self ):
140+ while True :
141+ clear ()
142+ print ("🏬商城" .center (60 ,"=" ))
143+ print (f"💰{ self .钱 } " )
144+ print ("1:1级电脑200 2:3级500 3:6级1000 4:9级1800" )
145+ print ("5:1级街机300 6:3级700 7:6级1300 0:返回" )
146+ print ("=" * 60 )
147+ c = input ("选:" )
148+ clear ()
149+ if c == "1" and self .钱 >= 200 :
150+ self .钱 -= 200 ; self .电脑 .append ({"等级" :1 ,"状态" :0 ,"计时" :0 })
151+ print ("✅ 1级电脑" )
152+ elif c == "2" and self .钱 >= 500 :
153+ self .钱 -= 500 ; self .电脑 .append ({"等级" :3 ,"状态" :0 ,"计时" :0 })
154+ print ("✅3级" )
155+ elif c == "3" and self .钱 >= 1000 :
156+ self .钱 -= 1000 ; self .电脑 .append ({"等级" :6 ,"状态" :0 ,"计时" :0 })
157+ print ("✅6级" )
158+ elif c == "4" and self .钱 >= 1800 :
159+ self .钱 -= 1800 ; self .电脑 .append ({"等级" :9 ,"状态" :0 ,"计时" :0 })
160+ print ("✅9级" )
161+ elif c == "5" and self .钱 >= 300 :
162+ self .钱 -= 300 ; self .街机 .append ({"等级" :1 ,"状态" :0 })
163+ print ("✅1级街机" )
164+ elif c == "6" and self .钱 >= 700 :
165+ self .钱 -= 700 ; self .街机 .append ({"等级" :3 ,"状态" :0 })
166+ print ("✅3级街机" )
167+ elif c == "7" and self .钱 >= 1300 :
168+ self .钱 -= 1300 ; self .街机 .append ({"等级" :6 ,"状态" :0 })
169+ print ("✅6级街机" )
170+ elif c == "0" :
171+ break
172+ input ("\n 回车…" )
173+
174+ # ===================== 城市探索 =====================
175+ def 城市探索 (self ):
176+ clear ()
177+ print ("🚪 你离开网吧,进入城市探索!" )
178+ self .正在探索 = True
179+ time .sleep (0.3 )
180+
181+ # 探索事件
182+ r = random .random ()
183+ if r < 0.4 :
184+ 钱 = random .randint (50 ,200 )
185+ self .钱 += 钱
186+ print (f"🏪 你发现一家小店,捡到 { 钱 } 元!" )
187+ elif r < 0.75 :
188+ 钱 = random .randint (100 ,350 )
189+ self .钱 += 钱
190+ print (f"🧧 街头活动获得奖励:{ 钱 } 元!" )
191+ else :
192+ 罚款 = random .randint (150 ,400 )
193+ if self .钱 >= 罚款 :
194+ self .钱 -= 罚款
195+ print (f"👹 遇到闹事怪物!花 { 罚款 } 元摆平!" )
196+ else :
197+ print ("👹 遇到怪物,但你没钱摆平,狼狈逃回!" )
198+ print ("🌉 探索结束,返回网吧。" )
199+ self .正在探索 = False
200+
201+ # 回来管理员直接辞职
202+ if self .管理员 :
203+ print ("👮 管理员任务结束,自动辞职。" )
204+ self .管理员 = False
205+ input ("\n 回车…" )
206+
207+ # ===================== 时间核心 =====================
208+ def 时间流逝 (self ):
209+ # 24小时下机
210+ for 电脑 in self .电脑 :
211+ if 电脑 ["状态" ] == 1 :
212+ 电脑 ["计时" ] += 1
213+ if 电脑 ["计时" ]>= 24 :
214+ 电脑 ["状态" ]= 0 ;电脑 ["计时" ]= 0
215+
216+ self .小时 += 1
217+ if self .小时 >= 24 :
218+ self .小时 = 9 ; self .天数 += 1 ; self .今日营收 = 0
219+ self .天气 = random .choice (["☀️晴天" ,"🌧️小雨" ,"⛈️大雨" ,"❄️雪天" ])
220+
221+ # 顾客
222+ 在用 = sum (1 for d in self .电脑 if d ["状态" ]== 1 ) + sum (1 for j in self .街机 if j ["状态" ]== 1 )
223+ 来客 = random .randint (1 ,4 )
224+ if self .天气 == "☀️晴天" :来客 += 2
225+ if self .口碑 > 120 :来客 += 2
226+ self .排队顾客 = min (self .排队顾客 + 来客 ,40 )
227+
228+ # 垃圾
229+ 概率 = 0.04 + 在用 * 0.022
230+ if random .random ()< 概率 and self .垃圾 < self .最大垃圾 :
231+ self .垃圾 += 1
232+
233+ # 垃圾影响口碑
234+ if self .垃圾 >= 12 :
235+ self .口碑 = max (self .口碑 - 1 ,40 )
236+
237+ # 设备损坏
238+ if random .random ()< 0.12 :
239+ 空闲 = [d for d in self .电脑 if d ["状态" ]== 0 ]
240+ if 空闲 : random .choice (空闲 )["状态" ]= 2
241+
242+ if len (self .街机 )> 0 and random .random ()< 0.1 :
243+ 空闲 = [j for j in self .街机 if j ["状态" ]== 0 ]
244+ if 空闲 : random .choice (空闲 )["状态" ]= 2
245+
246+ # 网管修理
247+ 坏电脑 = [d for d in self .电脑 if d ["状态" ]== 2 ]
248+ 坏街机 = [j for j in self .街机 if j ["状态" ]== 2 ]
249+ while (坏电脑 or 坏街机 ) and self .网管列表 :
250+ if 坏电脑 : 坏电脑 .pop (0 )["状态" ]= 0
251+ else : 坏街机 .pop (0 )["状态" ]= 0
252+ self .网管列表 [0 ] -= 1
253+ if self .网管列表 [0 ]== 0 :
254+ self .网管列表 .pop (0 )
255+
256+ # 保洁清垃圾
257+ self .清理垃圾 ()
258+
259+ # 逃票(不在且无管理员才逃票)
260+ if self .正在探索 and not self .管理员 :
261+ if random .random ()< 0.35 :
262+ 损失 = random .randint (40 ,180 )
263+ if self .钱 >= 损失 :
264+ self .钱 -= 损失
265+ print (f"💸 你不在,有顾客逃票!损失 { 损失 } 元!" )
266+
267+ def 快进2h (self ):
268+ print ("\n ⏩ 快进2小时" )
269+ self .时间流逝 (); self .时间流逝 ()
270+ def 快进3h (self ):
271+ print ("\n ⏩ 快进3小时" )
272+ self .时间流逝 (); self .时间流逝 (); self .时间流逝 ()
273+
274+ # ===================== 接待 =====================
275+ def 接待电脑 (self ):
276+ 空闲 = [d for d in self .电脑 if d ["状态" ]== 0 ]
277+ if not 空闲 or self .排队顾客 <= 0 :
278+ print ("❌ 无法接待" )
279+ return
280+ 台数 = min (len (空闲 ), self .排队顾客 )
281+ 收入 = 0
282+ for i in range (台数 ):
283+ 空闲 [i ]["状态" ]= 1
284+ 收入 += 6 + (空闲 [i ]["等级" ]- 1 )* 4
285+ self .钱 += 收入
286+ self .今日营收 += 收入
287+ self .排队顾客 -= 台数
288+ print (f"✅ 接待{ 台数 } 台,收入{ 收入 } " )
289+
290+ def 接待街机 (self ):
291+ 空闲 = [j for j in self .街机 if j ["状态" ]== 0 ]
292+ if not 空闲 :
293+ print ("❌ 无空闲" )
294+ return
295+ 台数 = min (len (空闲 ),3 )
296+ 收入 = 0
297+ for i in range (台数 ):
298+ 空闲 [i ]["状态" ]= 1
299+ 收入 += 10 + (空闲 [i ]["等级" ]- 1 )* 5
300+ self .钱 += 收入
301+ self .今日营收 += 收入
302+ print (f"✅ 街机收入{ 收入 } " )
303+
304+ # ===================== 界面 =====================
305+ def 画界面 (self ):
306+ clear ()
307+ print ("🏪【网吧大亨·终极完整版】" .center (68 ,"=" ))
308+ print ()
309+ print ("🖥️电脑:" ,end = "" )
310+ for d in self .电脑 :
311+ if d ["状态" ]== 0 :print (f"🖥️Lv{ d ['等级' ]} " ,end = " " )
312+ elif d ["状态" ]== 1 :print (f"💻Lv{ d ['等级' ]} " ,end = " " )
313+ else :print (f"🔧Lv{ d ['等级' ]} " ,end = " " )
314+ print ()
315+ print ("🎮街机:" ,end = "" )
316+ if not self .街机 :print ("无" ,end = "" )
317+ for j in self .街机 :
318+ if j ["状态" ]== 0 :print (f"🕹️Lv{ j ['等级' ]} " ,end = " " )
319+ elif j ["状态" ]== 1 :print (f"🎮Lv{ j ['等级' ]} " ,end = " " )
320+ else :print (f"⚠️Lv{ j ['等级' ]} " ,end = " " )
321+ print ()
322+ print (f"🗑️垃圾:{ '🧻' * self .垃圾 } { self .垃圾 } /{ self .最大垃圾 } " )
323+ print ("-" * 68 )
324+ 顾客图标 = "👤" * min (self .排队顾客 ,12 )
325+ if self .排队顾客 > 12 :顾客图标 += f"+{ self .排队顾客 - 12 } "
326+ print (f"👥排队:{ 顾客图标 } 💰金钱:{ self .钱 } " )
327+ print (f"🌟口碑:{ self .口碑 } { self .天气 } 📊今日:{ self .今日营收 } " )
328+ print (f"👨💻网管:{ len (self .网管列表 )} /5 🧹保洁:{ len (self .保洁列表 )} /3 👮管理员:{ '在岗' if self .管理员 else '无' } " )
329+ print ("=" * 68 )
330+
331+ # ===================== 主菜单 =====================
332+ def 开始游戏 (self ):
333+ while True :
334+ self .画界面 ()
335+ print ("\n 【主菜单】" )
336+ print (" 1.👥接待电脑 2.🎮接待街机 3.🏬商城 4.👨💻招网管" )
337+ print (" 5.🧹招保洁 6.👮雇管理员 7.🌆城市探索 8.🕒快进1h" )
338+ print (" 9.⏩快进2h 10.⏩快进3h 11.💡提示 12.💾存档" )
339+ print ("13.📂读档 0.🚪退出" )
340+ 选 = input ("\n 选择:" ).strip ()
341+ clear ()
342+
343+ if 选 == "1" : self .接待电脑 ()
344+ elif 选 == "2" : self .接待街机 ()
345+ elif 选 == "3" : self .商城 ()
346+ elif 选 == "4" : self .招募网管 ()
347+ elif 选 == "5" : self .招募保洁 ()
348+ elif 选 == "6" : self .雇佣管理员 ()
349+ elif 选 == "7" : self .城市探索 ()
350+ elif 选 == "8" : self .时间流逝 ()
351+ elif 选 == "9" : self .快进2h ()
352+ elif 选 == "10" : self .快进3h ()
353+ elif 选 == "11" : self .show_tip ()
354+ elif 选 == "12" :
355+ data = json .dumps (self .__dict__ , ensure_ascii = False )
356+ print ("存档数据:\n " ,data )
357+ input ("回车…" )
358+ elif 选 == "13" :
359+ s = input ("读档数据:" )
360+ self .__dict__ .update (json .loads (s ))
361+ input ("成功…" )
362+ elif 选 == "0" :
363+ clear ()
364+ print ("👋 再见!" )
365+ break
366+ input ("\n 回车继续…" )
367+
368+ if __name__ == "__main__" :
369+ game = 网吧大亨终极版 ()
370+ game .开始游戏 ()
0 commit comments