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 .钱 = 800
13+ self .天数 = 1
14+ self .小时 = 10
15+ self .排队顾客 = 0
16+ self .上网价格 = 6
17+ self .口碑 = 100
18+ self .会员数 = 0
19+ self .今日营收 = 0
20+ self .天气 = ["☀️晴天" , "🌧️小雨" , "⛈️大雨" , "❄️雪天" ][random .randint (0 ,3 )]
21+
22+ self .电脑数量 = 6
23+ self .电脑等级 = 1
24+ self .电脑使用中 = 0
25+ self .电脑损坏 = 0
26+
27+ self .电脑桌等级 = 1
28+ self .主机等级 = 1
29+ self .显示器等级 = 1
30+ self .椅子等级 = 1
31+ self .鼠标等级 = 1
32+ self .键盘等级 = 1
33+
34+ self .街机数量 = 0
35+ self .街机等级 = 1
36+ self .街机使用中 = 0
37+
38+ self .饮料库存 = 20
39+ self .饮料成本 = 2
40+ self .饮料售价 = 5
41+
42+ self .网管列表 = []
43+ self .最大网管数 = 5
44+
45+ self .顾客上机时长 = [0 ] * self .电脑数量
46+
47+ def 生成存档码 (self ):
48+ clear ()
49+ 数据 = self .__dict__ .copy ()
50+ 字符串 = json .dumps (数据 , ensure_ascii = False )
51+ 唯一码 = hashlib .sha256 ((字符串 + str (time .time ())).encode ()).hexdigest ()[:16 ]
52+ print ("🏪 存档信息" .center (50 , "=" ))
53+ print (f"✅ 存档码:{ 唯一码 } " )
54+ print ("💾 存档数据:" )
55+ print (字符串 )
56+ input ("\n 回车返回…" )
57+
58+ def 读取存档码 (self ):
59+ clear ()
60+ try :
61+ s = input ("请粘贴存档数据:\n " )
62+ data = json .loads (s )
63+ self .__dict__ .update (data )
64+ print ("✅ 读档成功!" )
65+ except :
66+ print ("❌ 失败" )
67+ input ("回车…" )
68+
69+ def 时间流逝 (self ):
70+ for i in range (self .电脑使用中 ):
71+ self .顾客上机时长 [i ] += 1
72+ 下机 = 0
73+ for i in range (self .电脑使用中 ):
74+ if self .顾客上机时长 [i ] >= 24 :
75+ 下机 += 1
76+ if 下机 > 0 :
77+ print (f"\n ⏰ { 下机 } 人满24小时强制下机" )
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 .choice (["☀️晴天" ,"🌧️小雨" ,"⛈️大雨" ,"❄️雪天" ])
87+
88+ 来客 = random .randint (1 ,4 )
89+ if self .天气 == "☀️晴天" : 来客 += 2
90+ if self .口碑 > 120 :来客 += 2
91+ self .排队顾客 = min (self .排队顾客 + max (来客 ,0 ), 40 )
92+
93+ if random .randint (1 ,10 )== 1 and self .电脑损坏 < self .电脑数量 // 2 :
94+ self .电脑损坏 += 1
95+ print ("\n ⚠️ 一台电脑坏了!" )
96+
97+ if self .电脑损坏 > 0 and len (self .网管列表 )> 0 :
98+ for i in range (len (self .网管列表 )):
99+ if self .电脑损坏 <= 0 :break
100+ if self .网管列表 [i ]> 0 :
101+ self .电脑损坏 -= 1
102+ self .网管列表 [i ] -= 1
103+ print (f"\n ✅ 网管修好1台!还能修{ self .网管列表 [i ]} 次" )
104+ if self .网管列表 [i ]== 0 :
105+ print ("\n 👋 网管辞职了!" )
106+ self .网管列表 .pop (i )
107+ break
108+
109+ def 快进2h (self ):
110+ print ("\n ⏩快进2小时…" )
111+ self .时间流逝 ()
112+ self .时间流逝 ()
113+ def 快进3h (self ):
114+ print ("\n ⏩快进3小时…" )
115+ self .时间流逝 ()
116+ self .时间流逝 ()
117+ self .时间流逝 ()
118+
119+ def 每台电脑每小时收益 (self ):
120+ 倍率 = (
121+ self .电脑等级 * 0.2
122+ + self .电脑桌等级 * 0.05
123+ + self .主机等级 * 0.1
124+ + self .显示器等级 * 0.08
125+ + self .椅子等级 * 0.05
126+ + self .鼠标等级 * 0.03
127+ + self .键盘等级 * 0.03
128+ + 1
129+ )
130+ return round (self .上网价格 * 倍率 , 1 )
131+
132+ def 每台街机每小时收益 (self ):
133+ return round (8 + self .街机等级 * 3 , 1 )
134+
135+ def 商城 (self ):
136+ while True :
137+ clear ()
138+ print ("🏬【超级商城】" .center (50 ,"=" ))
139+ print (f"💰金钱:{ self .钱 } " )
140+ print (f"1.🖥️买电脑 { self .电脑数量 } 台" )
141+ print (f"2.⬆️电脑等级 Lv.{ self .电脑等级 } " )
142+ print (f"3.🪑电脑桌 Lv.{ self .电脑桌等级 } " )
143+ print (f"4.🖥️主机 Lv.{ self .主机等级 } " )
144+ print (f"5.🖥️显示器 Lv.{ self .显示器等级 } " )
145+ print (f"6.🪑椅子 Lv.{ self .椅子等级 } " )
146+ print (f"7.🖱️鼠标 Lv.{ self .鼠标等级 } " )
147+ print (f"8.⌨️键盘 Lv.{ self .键盘等级 } " )
148+ print (f"9.🎮买街机 { self .街机数量 } 台" )
149+ print (f"10.⬆️街机等级 Lv.{ self .街机等级 } " )
150+ print ("0.返回" )
151+ c = input ("选择:" ).strip ()
152+
153+ if c == "1" :
154+ 价 = 200 + self .电脑数量 * 50
155+ if self .钱 >= 价 :
156+ self .钱 -= 价
157+ self .电脑数量 += 1
158+ self .顾客上机时长 .append (0 )
159+ print (f"✅ 购买成功!花了{ 价 } 元" )
160+ else :print ("❌钱不够" )
161+ elif c == "2" :
162+ 价 = 300 * self .电脑等级
163+ if self .钱 >= 价 :
164+ self .钱 -= 价
165+ self .电脑等级 += 1
166+ print (f"✅ 电脑升到{ self .电脑等级 } 级!" )
167+ else :print ("❌钱不够" )
168+ elif c == "3" :
169+ 价 = 100 * self .电脑桌等级
170+ if self .钱 >= 价 :self .钱 -= 价 ;self .电脑桌等级 += 1 ;print ("✅升级成功" )
171+ else :print ("❌钱不够" )
172+ elif c == "4" :
173+ 价 = 150 * self .主机等级
174+ if self .钱 >= 价 :self .钱 -= 价 ;self .主机等级 += 1 ;print ("✅升级成功" )
175+ else :print ("❌钱不够" )
176+ elif c == "5" :
177+ 价 = 120 * self .显示器等级
178+ if self .钱 >= 价 :self .钱 -= 价 ;self .显示器等级 += 1 ;print ("✅升级成功" )
179+ else :print ("❌钱不够" )
180+ elif c == "6" :
181+ 价 = 80 * self .椅子等级
182+ if self .钱 >= 价 :self .钱 -= 价 ;self .椅子等级 += 1 ;print ("✅升级成功" )
183+ else :print ("❌钱不够" )
184+ elif c == "7" :
185+ 价 = 50 * self .鼠标等级
186+ if self .钱 >= 价 :self .钱 -= 价 ;self .鼠标等级 += 1 ;print ("✅升级成功" )
187+ else :print ("❌钱不够" )
188+ elif c == "8" :
189+ 价 = 50 * self .键盘等级
190+ if self .钱 >= 价 :self .钱 -= 价 ;self .键盘等级 += 1 ;print ("✅升级成功" )
191+ else :print ("❌钱不够" )
192+ elif c == "9" :
193+ 价 = 400 + self .街机数量 * 100
194+ if self .钱 >= 价 :self .钱 -= 价 ;self .街机数量 += 1 ;print ("✅街机+1" )
195+ else :print ("❌钱不够" )
196+ elif c == "10" :
197+ 价 = 250 * self .街机等级
198+ if self .钱 >= 价 :self .钱 -= 价 ;self .街机等级 += 1 ;print (f"✅街机升到{ self .街机等级 } 级" )
199+ else :print ("❌钱不够" )
200+ elif c == "0" :
201+ break
202+ input ("\n 回车继续…" )
203+
204+ def 招募网管 (self ):
205+ if len (self .网管列表 )>= self .最大网管数 :
206+ print (f"❌ 最多5名" )
207+ return
208+ if self .钱 < 200 :
209+ print ("❌ 200元" )
210+ return
211+ self .钱 -= 200
212+ self .网管列表 .append (5 )
213+ print (f"👨💻招募成功!{ len (self .网管列表 )} /5" )
214+
215+ def 接待电脑 (self ):
216+ 可用 = self .电脑数量 - self .电脑使用中 - self .电脑损坏
217+ if 可用 <= 0 or self .排队顾客 <= 0 :
218+ print ("❌ 没可用电脑" )
219+ return
220+ 接 = min (可用 , self .排队顾客 )
221+ 单台 = self .每台电脑每小时收益 ()
222+ self .钱 += 接 * 单台
223+ self .今日营收 += 接 * 单台
224+ for i in range (self .电脑使用中 , self .电脑使用中 + 接 ):
225+ self .顾客上机时长 [i ] = 0
226+ self .电脑使用中 += 接
227+ self .排队顾客 -= 接
228+ self .口碑 = min (self .口碑 + 2 ,150 )
229+ print (f"✅接待{ 接 } 台电脑,{ 单台 } 元/台" )
230+
231+ def 接待街机 (self ):
232+ 可用 = self .街机数量 - self .街机使用中
233+ if 可用 <= 0 :
234+ print ("❌ 街机已满" )
235+ return
236+ 接 = min (可用 , 3 )
237+ 单台 = self .每台街机每小时收益 ()
238+ self .钱 += 接 * 单台
239+ self .今日营收 += 接 * 单台
240+ self .街机使用中 += 接
241+ print (f"✅街机接待{ 接 } 人,{ 单台 } 元/台" )
242+
243+ def 突发事件 (self ):
244+ 事件列表 = [
245+ ("网红打卡🎉,排队+15" , lambda : setattr (self ,'排队顾客' ,min (self .排队顾客 + 15 ,40 ))),
246+ ("停电⚡,全部下机" , lambda : setattr (self ,'电脑使用中' ,0 )),
247+ ("老顾客送礼💳,+200元" , lambda : setattr (self ,'钱' ,self .钱 + 200 )),
248+ ("电脑蓝屏💥,损坏+2" , lambda : setattr (self ,'电脑损坏' ,min (self .电脑损坏 + 2 ,self .电脑数量 ))),
249+ ("卫生抽查🚽,口碑-12" , lambda : setattr (self ,'口碑' ,max (self .口碑 - 12 ,30 ))),
250+ ("猫咪躺椅😺,口碑+8" , lambda : setattr (self ,'口碑' ,min (self .口碑 + 8 ,150 ))),
251+ ("邻店倒闭🔥,排队+12" , lambda : setattr (self ,'排队顾客' ,min (self .排队顾客 + 12 ,40 ))),
252+ ("有人逃单💸,-50元" , lambda : setattr (self ,'钱' ,max (self .钱 - 50 ,0 ))),
253+ ]
254+ 文字 , func = random .choice (事件列表 )
255+ print (f"🚨 { 文字 } " )
256+ func ()
257+
258+ def 画界面 (self ):
259+ clear ()
260+ print ("🏪【网吧大亨·终极版】🏪" .center (58 ,"=" ))
261+ print ()
262+
263+ print ("🖥️ 电脑区:" , end = "" )
264+ for i in range (self .电脑使用中 ):
265+ print ("💻" , end = " " )
266+ for i in range (self .电脑损坏 ):
267+ print ("🔧" , end = " " )
268+ for i in range (self .电脑数量 - self .电脑使用中 - self .电脑损坏 ):
269+ print ("🖥️" , end = " " )
270+ print ()
271+
272+ print ("🎮 街机区:" , end = "" )
273+ for i in range (self .街机使用中 ):
274+ print ("🎮" , end = " " )
275+ for i in range (self .街机数量 - self .街机使用中 ):
276+ print ("🕹️" , end = " " )
277+ if self .街机数量 == 0 :
278+ print ("暂无街机" , end = "" )
279+ print ()
280+
281+ print ("-" * 58 )
282+ 顾客显示 = "👤" * min (self .排队顾客 , 12 )
283+ if self .排队顾客 > 12 :顾客显示 += f"+{ self .排队顾客 - 12 } "
284+ print (f"👥排队:{ 顾客显示 } 💰钱:{ self .钱 } " )
285+ print (f"🌟口碑:{ self .口碑 } { self .天气 } 📊今日营收:{ self .今日营收 } " )
286+ print (f"⚙️电脑Lv.{ self .电脑等级 } | 配件:桌{ self .电脑桌等级 } 主{ self .主机等级 } 显{ self .显示器等级 } 椅{ self .椅子等级 } 鼠{ self .鼠标等级 } 键{ self .键盘等级 } " )
287+ print (f"🎮街机Lv.{ self .街机等级 } | 💻电脑收益:{ self .每台电脑每小时收益 ()} 元/h 🎮街机收益:{ self .每台街机每小时收益 ()} 元/h" )
288+ print (f"👨💻网管:{ len (self .网管列表 )} /{ self .最大网管数 } " )
289+ print ("=" * 58 )
290+
291+ def 开始游戏 (self ):
292+ while True :
293+ self .画界面 ()
294+ print ("\n 【🎮 主菜单】" )
295+ print (" 1.👥接待电脑 2.🎮接待街机 3.🏬商城 4.👨💻招募网管" )
296+ print (" 5.🕒快进1h 6.⏩快进2h 7.⏩快进3h 8.🚨随机事件" )
297+ print (" 9.💾存档 10.📂读档 0.🚪退出" )
298+
299+ 选 = input ("\n 请选择:" ).strip ()
300+
301+ clear ()
302+ if 选 == "1" : self .接待电脑 ()
303+ elif 选 == "2" : self .接待街机 ()
304+ elif 选 == "3" : self .商城 ()
305+ elif 选 == "4" : self .招募网管 ()
306+ elif 选 == "5" : self .时间流逝 ()
307+ elif 选 == "6" : self .快进2h ()
308+ elif 选 == "7" : self .快进3h ()
309+ elif 选 == "8" : self .突发事件 ()
310+ elif 选 == "9" : self .生成存档码 ()
311+ elif 选 == "10" : self .读取存档码 ()
312+ elif 选 == "0" :
313+ clear ()
314+ print ("👋 欢迎下次再来!" )
315+ break
316+ input ("\n 回车继续…" )
317+
318+ if __name__ == "__main__" :
319+ 游戏 = 网吧大亨终极版 ()
320+ 游戏 .开始游戏 ()
0 commit comments