Skip to content

Commit 9e4eee1

Browse files
[投稿] 添加脚本: 网吧模拟器(2.3) — by Daoyu268
1 parent 2deb7b1 commit 9e4eee1

1 file changed

Lines changed: 358 additions & 0 deletions

File tree

Lines changed: 358 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,358 @@
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

Comments
 (0)