1+ # 欢迎使用 PythonIDE!如果觉得好用,请给个好评哦~
2+ import random
3+ import json
4+ import hashlib
5+ import time
6+
7+ # 强力清屏,不占字符上限
8+ def clear ():
9+ print ("\033 c" , end = "" )
10+
11+ class 网吧大亨终极版 :
12+ def __init__ (self ):
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+ self .顾客上机时长 = [0 ] * self .电脑总数
23+
24+ self .网管列表 = []
25+ self .最大网管数 = 5
26+
27+ self .口碑 = 100
28+ self .会员数 = 0
29+ self .饮料库存 = 20
30+ self .饮料成本 = 2
31+ self .饮料售价 = 5
32+ self .装修等级 = 1
33+ self .天气 = ["☀️晴天" , "🌧️小雨" , "⛈️大雨" , "❄️雪天" ][random .randint (0 ,3 )]
34+ self .今日营收 = 0
35+
36+ def 生成存档码 (self ):
37+ clear ()
38+ 数据 = {
39+ "钱" : self .钱 , "天数" : self .天数 , "小时" : self .小时 ,
40+ "电脑总数" : self .电脑总数 , "电脑使用中" : self .电脑使用中 , "电脑损坏" : self .电脑损坏 ,
41+ "排队顾客" : self .排队顾客 , "上网价格" : self .上网价格 , "顾客上机时长" : self .顾客上机时长 ,
42+ "网管列表" : self .网管列表 , "口碑" : self .口碑 , "会员数" : self .会员数 ,
43+ "饮料库存" : self .饮料库存 , "饮料成本" : self .饮料成本 , "饮料售价" : self .饮料售价 ,
44+ "装修等级" : self .装修等级 , "天气" : self .天气 , "今日营收" : self .今日营收
45+ }
46+ 字符串 = json .dumps (数据 , ensure_ascii = False )
47+ 唯一码 = hashlib .sha256 ((字符串 + str (time .time ())).encode ('utf-8' )).hexdigest ()[:16 ]
48+ print ("🏪 存档信息" .center (40 , "=" ))
49+ print (f"✅ 存档码:{ 唯一码 } " )
50+ print ("💾 存档数据:" )
51+ print (字符串 )
52+ input ("\n 回车返回菜单..." )
53+
54+ def 读取存档码 (self ):
55+ clear ()
56+ try :
57+ 数据字符串 = input ("请粘贴存档数据:\n " )
58+ 数据 = json .loads (数据字符串 )
59+ for 键 , 值 in 数据 .items ():
60+ setattr (self , 键 , 值 )
61+ print ("✅ 读档成功!" )
62+ except :
63+ print ("❌ 存档错误!" )
64+ input ("回车返回..." )
65+
66+ def 时间流逝 (self ):
67+ for i in range (self .电脑使用中 ):
68+ self .顾客上机时长 [i ] += 1
69+
70+ 下机人数 = 0
71+ for i in range (self .电脑使用中 ):
72+ if self .顾客上机时长 [i ] >= 24 :
73+ 下机人数 += 1
74+
75+ if 下机人数 > 0 :
76+ print (f"\n ⏰ 有{ 下机人数 } 位顾客上网满24小时,已强制下机!" )
77+
78+ self .电脑使用中 -= 下机人数
79+ self .顾客上机时长 = self .顾客上机时长 [下机人数 :] + [0 ]* 下机人数
80+
81+ self .小时 += 1
82+ if self .小时 >= 24 :
83+ self .小时 = 9
84+ self .天数 += 1
85+ self .今日营收 = 0
86+ self .天气 = ["☀️晴天" ,"🌧️小雨" ,"⛈️大雨" ,"❄️雪天" ][random .randint (0 ,3 )]
87+
88+ 来客数 = random .randint (1 ,4 )
89+ if self .天气 == "☀️晴天" : 来客数 += 2
90+ if self .天气 == "⛈️大雨" : 来客数 -= 2
91+ if self .口碑 > 120 :来客数 += 2
92+ if self .口碑 < 60 :来客数 -= 1
93+ self .排队顾客 = min (self .排队顾客 + max (来客数 ,0 ), 40 )
94+
95+ if random .randint (1 ,10 )== 1 and self .电脑损坏 < self .电脑总数 // 2 :
96+ self .电脑损坏 += 1
97+ print ("\n ⚠️ 一台电脑坏了!" )
98+
99+ if self .电脑损坏 > 0 and len (self .网管列表 )> 0 :
100+ for i in range (len (self .网管列表 )):
101+ if self .电脑损坏 <= 0 :break
102+ if self .网管列表 [i ]> 0 :
103+ self .电脑损坏 -= 1
104+ self .网管列表 [i ] -= 1
105+ print (f"\n ✅ 网管修好1台!还能修{ self .网管列表 [i ]} 次" )
106+ if self .网管列表 [i ]== 0 :
107+ print ("\n 👋 一位网管修满5次,辞职了!" )
108+ self .网管列表 .pop (i )
109+ break
110+
111+ def 快进2小时 (self ):
112+ print ("\n ⏩ 快进2小时..." )
113+ self .时间流逝 ()
114+ self .时间流逝 ()
115+
116+ def 快进3小时 (self ):
117+ print ("\n ⏩ 快进3小时..." )
118+ self .时间流逝 ()
119+ self .时间流逝 ()
120+ self .时间流逝 ()
121+
122+ def 招募网管 (self ):
123+ if len (self .网管列表 )>= self .最大网管数 :
124+ print (f"\n ❌ 最多只能雇 { self .最大网管数 } 个网管!" )
125+ return
126+ if self .钱 < 200 :
127+ print ("\n ❌ 招募网管需要200元!" )
128+ return
129+ self .钱 -= 200
130+ self .网管列表 .append (5 )
131+ print (f"\n 👨💻 招募成功!当前网管:{ len (self .网管列表 )} /{ self .最大网管数 } " )
132+
133+ def 接待顾客 (self ):
134+ 可用 = self .电脑总数 - self .电脑使用中 - self .电脑损坏
135+ if 可用 <= 0 or self .排队顾客 <= 0 :
136+ print ("\n ❌ 没电脑/没顾客!" )
137+ return
138+ 接待 = min (可用 , self .排队顾客 )
139+ 收入 = 接待 * self .上网价格
140+ self .钱 += 收入
141+ self .今日营收 += 收入
142+ for i in range (self .电脑使用中 , self .电脑使用中 + 接待 ):
143+ self .顾客上机时长 [i ]= 0
144+ self .电脑使用中 += 接待
145+ self .排队顾客 -= 接待
146+ self .口碑 = min (self .口碑 + 2 ,150 )
147+ print (f"\n ✅ 接待{ 接待 } 人!赚{ 收入 } 元 🌟口碑+2" )
148+
149+ def 买电脑 (self ):
150+ 价格 = 180
151+ if self .钱 < 价格 :
152+ print (f"\n ❌ 买电脑需要{ 价格 } 元!" )
153+ return
154+ self .钱 -= 价格
155+ self .电脑总数 += 1
156+ self .顾客上机时长 .append (0 )
157+ print ("\n 🆕 新增电脑一台!" )
158+
159+ def 卖饮料 (self ):
160+ if self .电脑使用中 == 0 or self .饮料库存 <= 0 :
161+ print ("\n ❌ 没人上网,卖不出去!" )
162+ return
163+ 卖出 = min (random .randint (1 ,self .电脑使用中 ), self .饮料库存 )
164+ 利润 = 卖出 * (self .饮料售价 - self .饮料成本 )
165+ self .钱 += 利润
166+ self .今日营收 += 利润
167+ self .饮料库存 -= 卖出
168+ print (f"\n 🥤 卖出{ 卖出 } 瓶饮料!赚{ 利润 } 元" )
169+
170+ def 进货饮料 (self ):
171+ 进价 = self .饮料成本 * 10
172+ if self .钱 < 进价 :
173+ print ("\n ❌ 钱不够进货!" )
174+ return
175+ self .钱 -= 进价
176+ self .饮料库存 += 10
177+ print (f"\n 📦 饮料进货+10瓶!花费{ 进价 } 元" )
178+
179+ def 升级装修 (self ):
180+ 费用 = 150 * self .装修等级
181+ if self .钱 < 费用 :
182+ print (f"\n ❌ 升级需要{ 费用 } 元!" )
183+ return
184+ self .钱 -= 费用
185+ self .装修等级 += 1
186+ self .口碑 = min (self .口碑 + 10 ,150 )
187+ print (f"\n 🎨 装修升到{ self .装修等级 } 级!口碑+10" )
188+
189+ def 发展会员 (self ):
190+ 费用 = 80
191+ if self .钱 < 费用 :
192+ print ("\n ❌ 发展会员需要80元!" )
193+ return
194+ self .钱 -= 费用
195+ 新增 = random .randint (3 ,8 )
196+ self .会员数 += 新增
197+ self .口碑 = min (self .口碑 + 5 ,150 )
198+ print (f"\n 👑 会员+{ 新增 } 人!口碑+5" )
199+
200+ def 每日打卡 (self ):
201+ 奖励 = random .randint (50 ,150 )
202+ self .钱 += 奖励
203+ print (f"\n 🎁 打卡成功!获得{ 奖励 } 元" )
204+
205+ def 突发事件 (self ):
206+ 事件列表 = [
207+ ("网红打卡🎉,顾客暴涨!" , lambda : setattr (self ,'排队顾客' ,min (self .排队顾客 + 15 ,40 )) or setattr (self ,'口碑' ,self .口碑 + 15 )),
208+ ("突然停电⚡,所有顾客下机!" , lambda : setattr (self ,'电脑使用中' ,0 ) or setattr (self ,'口碑' ,max (self .口碑 - 15 ,30 ))),
209+ ("老顾客送礼🎁,直接给你200元!" , lambda : setattr (self ,'钱' ,self .钱 + 200 )),
210+ ("电脑集体蓝屏💥,损坏+2!" , lambda : setattr (self ,'电脑损坏' ,min (self .电脑损坏 + 2 ,self .电脑总数 ))),
211+ ("卫生抽查🚽,口碑下降!" , lambda : setattr (self ,'口碑' ,max (self .口碑 - 12 ,30 ))),
212+ ("猫咪躺键盘😺,顾客觉得超可爱!" , lambda : setattr (self ,'口碑' ,min (self .口碑 + 8 ,150 ))),
213+ ("邻店倒闭🔥,分流来一批顾客!" , lambda : setattr (self ,'排队顾客' ,min (self .排队顾客 + 12 ,40 ))),
214+ ("有人逃单💸,损失50元!" , lambda : setattr (self ,'钱' ,max (self .钱 - 50 ,0 ))),
215+ ("饮料过期🥤,库存清空!" , lambda : setattr (self ,'饮料库存' ,0 )),
216+ ("会员日👑,会员额外增加!" , lambda : setattr (self ,'会员数' ,self .会员数 + random .randint (5 ,12 ))),
217+ ]
218+ 文字 , func = random .choice (事件列表 )
219+ print (f"\n 🚨 突发事件:{ 文字 } " )
220+ func ()
221+
222+ def 画地图 (self ):
223+ clear ()
224+ print ("🏪【网吧大亨·终极版】🏪" .center (58 , "=" ))
225+ print ()
226+
227+ 电脑行 = " "
228+ for i in range (self .电脑总数 ):
229+ if i < self .电脑使用中 :
230+ 电脑行 += "💻 "
231+ elif i < self .电脑使用中 + self .电脑损坏 :
232+ 电脑行 += "🔧 "
233+ else :
234+ 电脑行 += "🖥️ "
235+ print (电脑行 )
236+ print ("-" * 58 )
237+
238+ 顾客显示 = "👤" * min (self .排队顾客 , 12 )
239+ if self .排队顾客 > 12 :
240+ 顾客显示 += f"+{ self .排队顾客 - 12 } 人"
241+ print (f" 👥排队:{ 顾客显示 } " )
242+
243+ print (f" 👑会员:{ self .会员数 } | 👨💻网管:{ len (self .网管列表 )} /{ self .最大网管数 } | 🎨装修:{ self .装修等级 } 级" )
244+ print (f" 🌟口碑:{ self .口碑 } | { self .天气 } | 📊今日营收:{ self .今日营收 } 元" )
245+ print (f" 💰金钱:{ self .钱 } | 🥤饮料库存:{ self .饮料库存 } | 💸网费:{ self .上网价格 } 元/时" )
246+ print ("=" * 58 )
247+
248+ def 开始游戏 (self ):
249+ while True :
250+ self .画地图 ()
251+ print ("\n 【🎮 超级操作菜单】" )
252+ print (" 1.👥接待顾客 2.🥤卖饮料 3.📦进货饮料 4.🆕买电脑" )
253+ print (" 5.👨💻招募网管 6.🎨升级装修 7.👑发展会员 8.💰每日打卡" )
254+ print (" 9.🚨突发事件 10.💸改网价 11.🕒快进1h 12.⏩快进2h 13.⏩快进3h" )
255+ print ("14.💾生成存档码 15.📂读取存档码 0.🚪退出游戏" )
256+
257+ 选择 = input ("\n 请输入操作(1-15或0):" ).strip ()
258+
259+ clear ()
260+ if 选择 == "1" : self .接待顾客 ()
261+ elif 选择 == "2" : self .卖饮料 ()
262+ elif 选择 == "3" : self .进货饮料 ()
263+ elif 选择 == "4" : self .买电脑 ()
264+ elif 选择 == "5" : self .招募网管 ()
265+ elif 选择 == "6" : self .升级装修 ()
266+ elif 选择 == "7" : self .发展会员 ()
267+ elif 选择 == "8" : self .每日打卡 ()
268+ elif 选择 == "9" : self .突发事件 ()
269+ elif 选择 == "10" :
270+ try :
271+ 新价 = int (input ("输入新价格(1-40):" ))
272+ if 1 <= 新价 <= 40 :
273+ self .上网价格 = 新价
274+ print ("✅ 价格已改!" )
275+ except : pass
276+ elif 选择 == "11" : self .时间流逝 ()
277+ elif 选择 == "12" : self .快进2小时 ()
278+ elif 选择 == "13" : self .快进3小时 ()
279+ elif 选择 == "14" : self .生成存档码 ()
280+ elif 选择 == "15" : self .读取存档码 ()
281+ elif 选择 == "0" :
282+ clear ()
283+ print ("👋 感谢玩《网吧大亨·终极版》!" )
284+ break
285+
286+ input ("\n 回车继续..." )
287+
288+ if __name__ == "__main__" :
289+ 游戏 = 网吧大亨终极版 ()
290+ 游戏 .开始游戏 ()
0 commit comments