开学啦
2025-02-14 21:26:27
发布于:浙江
"""
《史诗级灾难:开学啦》Ultimate Edition 9.9.9
警告:本程序包含大量生草元素,可能引发以下症状:
- 在课堂上突然笑出声
- 对食堂产生PTSD
- 获得「量子波动学习法」抗性
- 觉醒替身「鸽子精」
"""
如果报错请附上报错信息以及报错的内容
版本 1:
"""
《史诗级灾难:开学啦》Ultimate Edition 9.9.9
警告:本程序包含大量生草元素,可能引发以下症状:
- 在课堂上突然笑出声
- 对食堂产生PTSD
- 获得「量子波动学习法」抗性
- 觉醒替身「鸽子精」
"""
import random
import time
import sys
from enum import Enum
from dataclasses import dataclass
from colorama import Fore, Back, Style, init
init(autoreset=True)
#-----------ASCII艺术区-----------
OPENING_SCENE = r"""
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
< 史诗级灾难片《开学啦》制作委员会
\__ ___________
∨
∧,,∧ 从暑假の温柔乡中
(´・ω・) 被无情撕扯出来的你
/ `ヽ
/ ̄ ̄ ̄ ̄ ̄\
│ DANGER ZONE │
\______/
"""
BAD_ENDING = r"""
____
/ \ "您的校园生活"
/ ─ ─\ 已升级为
/ (●) (●) \ 【地狱难度】
| (___) |
\ _ /
ノ \ \
/ ̄ ̄ ̄ ̄ ̄\ | )
| ::::::: | |/
\ /
\____/
"""
GOOD_ENDING = r"""
__
/ /| 成功存活!
/ ̄ ̄ ̄\ |
/ ≡ ≡ \/ 获得成就:
| 皿 | 【摸鱼の神】
\_____/
"""
ESCAPE_ART = r"""
_人人人人人人人_
> 紧急脱出成功! <
 ̄^Y^Y^Y^Y^Y^Y^Y ̄
"""
#-----------常量区-----------
MAX_ENERGY = 100
MIN_IQ = 80
MAX_SANITY = 100
PROCRASTINATION_PROB = 0.618 # 黄金拖延系数
MEME_KNOWLEDGE = [
"一键三连", "下次一定", "awsl", "蚌埠住了",
"你币有了", "佛系", "社死", "绝绝子",
"摆烂", "栓Q", "PUA", "CPU", "KTV"
]
class DisasterLevel(Enum):
PEACETIME = ("岁月静好", Fore.GREEN)
MINOR = ("眼皮打架", Fore.YELLOW)
MODERATE = ("灵魂出窍", Fore.MAGENTA)
SEVERE = ("人类补完计划启动", Fore.RED)
APOCALYPSE= ("课桌长出触手", Fore.WHITE + Back.RED)
#-----------数据结构-----------
@dataclass
class StudentState:
name: str
energy: int = MAX_ENERGY
iq: int = MIN_IQ
sanity: int = MAX_SANITY
meme_level: int = 0
is_vip: bool = False
has_cheat_code: bool = False
toilet_time: int = 0 # 厕所相对论计数器
consecutive_bad_food_days: int = 0 # 连续吃坏肚子天数
total_time: int = 0 # 总时间
homework_completed: int = 0 # 作业完成度
class QuantumHomework:
def __init__(self):
self.progress = 0.0
self.quantum_fluctuation = random.uniform(0.1, 0.9)
def observe_progress(self):
"""观测导致进度坍缩"""
observed = max(0, min(100, self.progress + random.uniform(-10, 10)))
self.progress += random.choice([-5, 0, 10])
return observed
#-----------核心类-----------
class ApocalypseSimulator:
def __init__(self, player_name):
self.player = StudentState(name=player_name)
self.day = 1
self.disaster_level = DisasterLevel.PEACETIME
self.homework = QuantumHomework()
self.canteen = CanteenSystem()
self.class_schedule = self.generate_schedule()
self.time_dilation = 1.0 # 时间膨胀系数
# 检测作弊码
if "麻婆" in player_name or "卫宫" in player_name:
self.player.has_cheat_code = True
print(Fore.CYAN + "\n检测到根源接续...解锁「无限饭制」!")
def generate_schedule(self):
"""生成包含时间陷阱的课程表"""
return [
("数学", "连续统深渊", 0.8),
("语文", "克苏鲁文学赏析", 1.2),
("体育", "san值恢复训练", 0.5),
("物理", "二向箔使用指南", 1.5)
]
def start_simulation(self):
print(Fore.CYAN + OPENING_SCENE)
self._typewriter_effect("欢迎来到史诗级灾难片...\n", 0.1)
time.sleep(1)
print(Fore.RED + "《开 学 啦》" + Style.RESET_ALL)
for _ in range(7): # 模拟一周
print(Fore.YELLOW + f"\n=== 第 {self.day} 天 ===")
self.simulate_day()
self.day += 1
if self.player.sanity <= 0:
print(Fore.RED + BAD_ENDING)
break
self._check_ending()
self._check_achievements()
else:
print(Fore.GREEN + GOOD_ENDING)
def simulate_day(self):
daily_time = 0
# 早晨自习
morning_time = self._handle_morning()
daily_time += morning_time
# 上午课程
for subject, title, difficulty in self.class_schedule:
class_time = self._handle_class(subject, title, difficulty)
daily_time += class_time
if self.player.sanity <= 0:
return
# 午休时间
lunch_time = self._handle_lunch()
daily_time += lunch_time
# 下午课程(混沌模式)
self.time_dilation *= 1.5
afternoon_class_time = self._handle_class("班会", "如何用唯物辩证法打王者", 2.0)
daily_time += afternoon_class_time
# 放学后
after_school_time = self._handle_after_school()
daily_time += after_school_time
# 状态更新
self.player.total_time += daily_time
self._update_disaster_level()
self._print_status()
def _handle_morning(self):
event, result = SchoolEvents.morning_self_study()
print(Fore.BLUE + "\n[早自习时间]")
self._typewriter_effect(f"✎ 发生事件:{event}\n→ {result}", 0.05)
# 检测VIP特权
if self.player.is_vip:
print(Fore.CYAN + "←触发VIP特权:睡到自然醒!")
self.player.energy = min(MAX_ENERGY, self.player.energy + 30)
else:
self.player.energy -= random.randint(10, 20)
# 随机触发作业检查
if random.random() < 0.7:
self._handle_homework_check()
return 30 # 早自习30分钟
def _handle_class(self, subject, title, difficulty):
print(Fore.MAGENTA + f"\n[{subject}课] {title}")
self._typewriter_effect(f"教师能量场展开:{subject}老师正在靠近...", 0.03)
# 时间膨胀效应
real_time = 45 * difficulty * self.time_dilation
print(f"⌛ 主观时间膨胀至:{real_time:.1f}分钟(相对论系数:{self.time_dilation:.2f})")
# 注意力检测
focus = random.randint(1, 20) + self.player.iq//10
if focus < 15:
print(Fore.RED + "⚠ 注意力涣散!触发时间膨胀")
self.time_dilation *= 1.2
self.player.sanity -= 10
else:
print(Fore.GREEN + "✓ 进入心流状态!")
self.player.iq += 2
# 随机提问
if random.random() < 0.4:
self._handle_pop_quiz(subject)
self.player.energy -= int(20 * difficulty)
self.player.sanity -= random.randint(5, 15)
return real_time
def _handle_lunch(self):
print(Fore.BLUE + "\n[食堂大冒险]")
dish, toxicity = self.canteen.get_random_food()
print(f"获得料理:{Fore.YELLOW}{dish}{Style.RESET_ALL}")
# 毒性检定
if random.random() < toxicity:
print(Fore.RED + "⚠ 食物中毒!进入喷射战士模式")
self.player.energy -= 40
self.player.sanity -= 20
self.time_dilation *= 0.8 # 厕所时间压缩
self.player.toilet_time += 30 # 假设在厕所30分钟
self.player.consecutive_bad_food_days += 1
else:
print(Fore.GREEN + "✓ 味觉系统已下线,安全食用")
self.player.energy += 30
self.player.consecutive_bad_food_days = 0
# VIP隐藏菜单
if self.player.is_vip:
print(Fore.CYAN + "←解锁隐藏菜单:仰望星空派PLUS!SAN值恢复")
self.player.sanity += 30
return 60 # 午休60分钟
def _handle_after_school(self):
print(Fore.BLUE + "\n[放学后]")
# 量子波动赶作业系统
if random.random() > PROCRASTINATION_PROB:
self._quantum_homework()
else:
print(Fore.YELLOW + "😴 开启摸鱼模式,时间飞逝~")
self.time_dilation *= 2 # 摸鱼时时间跳跃
self.player.sanity += 10
self.player.energy += 20
return 120 # 放学后2小时
def _handle_homework_check(self):
observed_progress = self.homework.observe_progress()
print(Fore.RED + f"\n⚠ 老师突然检查作业!当前作业进度:{observed_progress:.1f}%")
if observed_progress < 30:
print(Fore.RED + "老师很生气,后果很严重!SAN值和IQ下降")
self.player.sanity -= 20
self.player.iq -= 10
elif observed_progress < 60:
print(Fore.YELLOW + "老师有点不满意,警告一次")
self.player.sanity -= 10
else:
print(Fore.GREEN + "老师很满意,奖励你一颗糖!SAN值增加")
self.player.sanity += 10
def _handle_pop_quiz(self, subject):
question, difficulty = SchoolEvents.pop_quiz()
print(Fore.RED + f"\n⚠ 老师突然提问:{question}")
if self.player.iq > difficulty:
print(Fore.GREEN + "回答正确!IQ和SAN值增加")
self.player.iq += 5
self.player.sanity += 5
else:
print(Fore.RED + "回答错误!SAN值下降")
self.player.sanity -= 10
def _quantum_homework(self):
print(Fore.CYAN + "\n💪 开启量子波动赶作业系统!")
# 灵感迸发机制
if random.random() < 0.2:
print(Fore.GREEN + "✨ 灵感迸发!作业进度大幅提升")
self.homework.progress += 30
# 「参考」同学的量子纠缠
if random.random() < 0.3:
print(Fore.YELLOW + "👀 与同学产生量子纠缠,参考了同学的作业,进度提升")
self.homework.progress += 20
# 进度坍缩观测
observed_progress = self.homework.observe_progress()
self.player.homework_completed = observed_progress
print(Fore.CYAN + f"作业当前进度:{observed_progress:.1f}%")
def _sanity_check(self):
print(Fore.MAGENTA + "\n🧠 进行SAN值检测...")
if self.player.sanity > 80:
print(Fore.GREEN + "理智值正常,世界还是那么美好~")
elif self.player.sanity > 50:
print(Fore.YELLOW + "理智值有所下降,你开始看到一些奇怪的东西...")
elif self.player.sanity > 20:
print(Fore.MAGENTA + "理智值严重下降,克系幻觉开始出现!")
# 克系知识检测
if random.random() < 0.5:
print(Fore.RED + "你脑海中闪过一些克系知识,SAN值再次下降!")
self.player.sanity -= 10
# 二次元浓度过高警告
if self.player.meme_level > 5:
print(Fore.YELLOW + "二次元浓度过高,小心被异次元吸走!")
else:
print(Fore.RED + "理智值归零,你陷入了疯狂!")
self.player.sanity = 0
def _update_disaster_level(self):
if self.player.sanity > 80:
self.disaster_level = DisasterLevel.PEACETIME
elif self.player.sanity > 50:
self.disaster_level = DisasterLevel.MINOR
elif self.player.sanity > 20:
self.disaster_level = DisasterLevel.MODERATE
elif self.player.sanity > 10:
self.disaster_level = DisasterLevel.SEVERE
else:
self.disaster_level = DisasterLevel.APOCALYPSE
def _print_status(self):
print(Fore.CYAN + f"\n[状态信息]")
print(f" 精力:{self.player.energy}")
print(f" IQ:{self.player.iq}")
print(f" SAN值:{self.player.sanity}")
print(f" 梗知识等级:{self.player.meme_level}")
print(f" 灾难等级:{self.disaster_level.value[0]}")
self._sanity_check()
def _check_ending(self):
if self.player.sanity <= 0:
print(Fore.RED + BAD_ENDING)
sys.exit(0)
def _check_achievements(self):
# 「喷射战士」:连续3天吃坏肚子
if self.player.consecutive_bad_food_days >= 3:
print(Fore.CYAN + " 解锁成就:「喷射战士」!连续3天吃坏肚子,你是厕所常客!")
# 「时间管理大师」:厕所时间占比超50%
if self.player.total_time > 0 and (self.player.toilet_time / self.player.total_time) > 0.5:
print(Fore.CYAN + " 解锁成就:「时间管理大师」!厕所时间占比超50%,你把厕所当成了第二个家!")
# 「逆熵者」:作业完成度超过量子极限
if self.player.homework_completed > 90:
print(Fore.CYAN + " 解锁成就:「逆熵者」!作业完成度超过量子极限,你打破了时间和空间的束缚!")
def _typewriter_effect(self, text, delay=0.05):
for char in text:
sys.stdout.write(char)
sys.stdout.flush()
time.sleep(delay)
print()
#-----------食堂系统----------
class CanteenSystem:
def __init__(self):
self.dark_cuisine = [
("月饼炒辣椒", 0.3),
("爆炒妙蛙种子", 0.5),
("仰望星空派", 0.7),
("九转大肠(原味版)", 1.0)
]
def get_random_food(self):
return random.choice(self.dark_cuisine)
#-----------事件系统----------
class SchoolEvents:
@staticmethod
def morning_self_study():
events = [
("发现黑板上有神秘公式", "解析结果:早恋名单!"),
("窗边闪过人影", "风纪委员突袭!全员警戒"),
("后桌传来小笼包香味", "SAN值受到暴击")
]
return random.choice(events)
@staticmethod
def pop_quiz():
questions = [
("证明**是**", 50),
("分析宇智波灭族的经济影响", 70),
("用微积分求草莓种植面积", 60),
("解释为啥游戏总是在更新", 40),
("说明超级英雄为啥总在晚上出动", 30)
]
return random.choice(questions)
# 新添加课间休息系统
class BreakTimeSystem:
@staticmethod
def handle_break():
break_events = [
("走廊尽头传来神秘笑声", "吓得你一哆嗦,SAN值 -5"),
("同学拉你去小卖部,买了个奇怪零食", "感觉味道还行,精力 +10"),
("看到老师在和教导主任密谈", "好奇心爆棚,SAN值 -3"),
("有人在教室玩扔纸飞机,差点砸到你", "虚惊一场,精力 -5")
]
event, result = random.choice(break_events)
print(Fore.YELLOW + f"\n[课间休息]")
print(f"✎ 发生事件:{event}\n→ {result}")
if "SAN值 -" in result:
loss = int(result.split("-")[-1])
simulator.player.sanity -= loss
elif "精力 +" in result:
gain = int(result.split("+")[-1])
simulator.player.energy += gain
elif "精力 -" in result:
loss = int(result.split("-")[-1])
simulator.player.energy -= loss
# 在 ApocalypseSimulator 类的 simulate_day 方法中添加课间休息逻辑
class ApocalypseSimulator:
# ...原有代码...
def simulate_day(self):
daily_time = 0
# 早晨自习
morning_time = self._handle_morning()
daily_time += morning_time
# 上午课程
for i, (subject, title, difficulty) in enumerate(self.class_schedule):
class_time = self._handle_class(subject, title, difficulty)
daily_time += class_time
if self.player.sanity <= 0:
return
if i < len(self.class_schedule) - 1:
break_time = BreakTimeSystem.handle_break()
# 假设课间休息 10 分钟
daily_time += 10
# 午休时间
lunch_time = self._handle_lunch()
daily_time += lunch_time
# 下午课程(混沌模式)
self.time_dilation *= 1.5
afternoon_class_time = self._handle_class("班会", "如何用唯物辩证法打王者", 2.0)
daily_time += afternoon_class_time
# 放学后
after_school_time = self._handle_after_school()
daily_time += after_school_time
# 状态更新
self.player.total_time += daily_time
self._update_disaster_level()
self._print_status()
# ...原有代码...
# 新添加课外活动系统
class ExtraCurricularSystem:
def __init__(self):
self.activities = [
("篮球比赛", 20, 15, 10), # 精力消耗,SAN值增加,IQ增加
("绘画社团", 10, 5, 5),
("天文观测", 15, 8, 8),
("话剧表演", 25, 20, 12)
]
def participate(self):
activity = random.choice(self.activities)
name, energy_cost, sanity_gain, iq_gain = activity
print(Fore.CYAN + f"\n[课外活动] 你参加了 {name}")
if self.player.energy >= energy_cost:
self.player.energy -= energy_cost
self.player.sanity += sanity_gain
self.player.iq += iq_gain
print(f"精力 - {energy_cost},SAN值 + {sanity_gain},IQ + {iq_gain}")
else:
print("你精力不足,无法参加活动。")
# 在 ApocalypseSimulator 类的 _handle_after_school 方法中添加课外活动逻辑
class ApocalypseSimulator:
# ...原有代码...
def _handle_after_school(self):
print(Fore.BLUE + "\n[放学后]")
# 量子波动赶作业系统
if random.random() > PROCRASTINATION_PROB:
self._quantum_homework()
else:
print(Fore.YELLOW + " 开启摸鱼模式,时间飞逝~")
self.time_dilation *= 2 # 摸鱼时时间跳跃
self.player.sanity += 10
self.player.energy += 20
# 有一定概率参加课外活动
if random.random() < 0.3:
extracurricular = ExtraCurricularSystem()
extracurricular.participate()
return 120 # 放学后2小时
# ...原有代码...
# 主程序
if __name__ == "__main__":
print(Fore.YELLOW + "警告:运行本程序可能导致时间感错乱")
name = input("输入你的角色名:")
simulator = ApocalypseSimulator(name)
try:
simulator.start_simulation()
except KeyboardInterrupt:
print(Fore.RED + "\n触发紧急逃生协议!")
print(ESCAPE_ART)
finally:
print("成就解锁:在开学周幸存(伪)")
运用:
版本 2
"""
《史诗级灾难:开学啦》Ultimate Edition 9.9.9
警告:本程序包含大量生草元素,可能引发以下症状:
- 在课堂上突然笑出声
- 对食堂产生PTSD
- 获得「量子波动学习法」抗性
- 觉醒替身「鸽子精」
"""
import random
import time
import sys
from enum import Enum
from dataclasses import dataclass
#-----------ASCII艺术区-----------
OPENING_SCENE = r"""
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
< 史诗级灾难片《开学啦》制作委员会
\__ ___________
∨
∧,,∧ 从暑假の温柔乡中
(´・ω・) 被无情撕扯出来的你
/ `ヽ
/ ̄ ̄ ̄ ̄ ̄\
│ DANGER ZONE │
\______/
"""
BAD_ENDING = r"""
____
/ \ "您的校园生活"
/ ─ ─\ 已升级为
/ (●) (●) \ 【地狱难度】
| (___) |
\ _ /
ノ \ \
/ ̄ ̄ ̄ ̄ ̄\ | )
| ::::::: | |/
\ /
\____/
"""
GOOD_ENDING = r"""
__
/ /| 成功存活!
/ ̄ ̄ ̄\ |
/ ≡ ≡ \/ 获得成就:
| 皿 | 【摸鱼の神】
\_____/
"""
ESCAPE_ART = r"""
_人人人人人人人_
> 紧急脱出成功! <
 ̄^Y^Y^Y^Y^Y^Y^Y ̄
"""
#-----------常量区-----------
MAX_ENERGY = 100
MIN_IQ = 80
MAX_SANITY = 100
PROCRASTINATION_PROB = 0.618 # 黄金拖延系数
MEME_KNOWLEDGE = [
"一键三连", "下次一定", "awsl", "蚌埠住了",
"你币有了", "佛系", "社死", "绝绝子",
"摆烂", "栓Q", "PUA", "CPU", "KTV"
]
class DisasterLevel(Enum):
PEACETIME = ("岁月静好",)
MINOR = ("眼皮打架",)
MODERATE = ("灵魂出窍",)
SEVERE = ("人类补完计划启动",)
APOCALYPSE = ("课桌长出触手",)
#-----------数据结构-----------
@dataclass
class StudentState:
name: str
energy: int = MAX_ENERGY
iq: int = MIN_IQ
sanity: int = MAX_SANITY
meme_level: int = 0
is_vip: bool = False
has_cheat_code: bool = False
toilet_time: int = 0 # 厕所相对论计数器
consecutive_bad_food_days: int = 0 # 连续吃坏肚子天数
total_time: int = 0 # 总时间
homework_completed: int = 0 # 作业完成度
class QuantumHomework:
def __init__(self):
self.progress = 0.0
self.quantum_fluctuation = random.uniform(0.1, 0.9)
def observe_progress(self):
"""观测导致进度坍缩"""
observed = max(0, min(100, self.progress + random.uniform(-10, 10)))
self.progress += random.choice([-5, 0, 10])
return observed
#-----------核心类-----------
class ApocalypseSimulator:
def __init__(self, player_name):
self.player = StudentState(name=player_name)
self.day = 1
self.disaster_level = DisasterLevel.PEACETIME
self.homework = QuantumHomework()
self.canteen = CanteenSystem()
self.class_schedule = self.generate_schedule()
self.time_dilation = 1.0 # 时间膨胀系数
# 检测作弊码
if "麻婆" in player_name or "卫宫" in player_name:
self.player.has_cheat_code = True
print("\n检测到根源接续...解锁「无限饭制」!")
def generate_schedule(self):
"""生成包含时间陷阱的课程表"""
return [
("数学", "连续统深渊", 0.8),
("语文", "克苏鲁文学赏析", 1.2),
("体育", "san值恢复训练", 0.5),
("物理", "二向箔使用指南", 1.5)
]
def start_simulation(self):
print(OPENING_SCENE)
self._typewriter_effect("欢迎来到史诗级灾难片...\n", 0.1)
time.sleep(1)
print("《开 学 啦》")
self._last_day_of_summer()
for _ in range(7): # 模拟一周
print(f"\n=== 第 {self.day} 天 ===")
self.simulate_day()
self.day += 1
if self.player.sanity <= 0:
print(BAD_ENDING)
break
self._check_ending()
self._check_achievements()
else:
print(GOOD_ENDING)
def _last_day_of_summer(self):
print("\n 暑假最后一天,你突然发现作业几乎没动!")
print(" 望着堆积如山的作业,你感觉自己像被埋在了作业的坟墓里。")
while self.homework.progress < 100:
self.player.energy -= random.randint(10, 20)
self.player.sanity -= random.randint(5, 15)
if self.player.energy <= 0:
print(" 你困得一头栽倒在作业上,口水浸湿了作业本,仿佛在和作业进行一场“湿吻”。")
time.sleep(2)
self.player.energy = 20
print("⏰ 闹钟响了,你猛地惊醒,发现自己还在作业的深渊里。")
elif self.player.sanity <= 0:
print(" 你彻底疯了,开始对着作业跳起了奇怪的舞蹈,嘴里还念叨着“作业快消失”。")
break
progress_gain = random.randint(5, 15)
self.homework.progress = min(100, self.homework.progress + progress_gain)
print(f" 你疯狂地写着作业,目前进度:{self.homework.progress:.1f}%")
if random.random() < 0.2:
print(" 你家猫突然跳到作业本上,踩出了一串梅花印,仿佛在说“这作业我也有份”。")
if self.homework.progress >= 100:
print(" 终于在开学前赶完了作业,你感觉自己像个拯救了世界的超级英雄!")
else:
print(" 作业没写完,你只能带着忐忑的心情迎接开学。")
def simulate_day(self):
daily_time = 0
# 早晨自习
morning_time = self._handle_morning()
daily_time += morning_time
# 上午课程
for subject, title, difficulty in self.class_schedule:
class_time = self._handle_class(subject, title, difficulty)
daily_time += class_time
if self.player.sanity <= 0:
return
# 午休时间
lunch_time = self._handle_lunch()
daily_time += lunch_time
# 下午课程(混沌模式)
self.time_dilation *= 1.5
afternoon_class_time = self._handle_class("班会", "如何用唯物辩证法打王者", 2.0)
daily_time += afternoon_class_time
# 放学后
after_school_time = self._handle_after_school()
daily_time += after_school_time
# 状态更新
self.player.total_time += daily_time
self._update_disaster_level()
self._print_status()
def _handle_morning(self):
event, result = SchoolEvents.morning_self_study()
print("\n[早自习时间]")
self._typewriter_effect(f"✎ 发生事件:{event}\n→ {result}", 0.05)
# 检测VIP特权
if self.player.is_vip:
print("←触发VIP特权:睡到自然醒!")
self.player.energy = min(MAX_ENERGY, self.player.energy + 30)
else:
self.player.energy -= random.randint(10, 20)
# 随机触发作业检查
if random.random() < 0.7:
self._handle_homework_check()
return 30 # 早自习30分钟
def _handle_class(self, subject, title, difficulty):
print(f"\n[{subject}课] {title}")
self._typewriter_effect(f"教师能量场展开:{subject}老师正在靠近...", 0.03)
# 时间膨胀效应
real_time = 45 * difficulty * self.time_dilation
print(f"⌛ 主观时间膨胀至:{real_time:.1f}分钟(相对论系数:{self.time_dilation:.2f})")
# 注意力检测
focus = random.randint(1, 20) + self.player.iq // 10
if focus < 15:
print("⚠ 注意力涣散!触发时间膨胀")
self.time_dilation *= 1.2
self.player.sanity -= 10
if random.random() < 0.3:
print(" 你居然在课堂上打起了呼噜,声音大得像火车鸣笛,全班同学都被你吵醒了。")
else:
print("✓ 进入心流状态!")
self.player.iq += 2
# 随机提问
if random.random() < 0.4:
self._handle_pop_quiz(subject)
self.player.energy -= int(20 * difficulty)
self.player.sanity -= random.randint(5, 15)
return real_time
def _handle_lunch(self):
print("\n[食堂大冒险]")
dish, toxicity = self.canteen.get_random_food()
print(f"获得料理:{dish}")
# 毒性检定
if random.random() < toxicity:
print("⚠ 食物中毒!进入喷射战士模式")
self.player.energy -= 40
self.player.sanity -= 20
self.time_dilation *= 0.8 # 厕所时间压缩
self.player.toilet_time += 30 # 假设在厕所30分钟
self.player.consecutive_bad_food_days += 1
print(" 你以百米冲刺的速度冲向厕所,一路上还差点撞到了老师,老师一脸嫌弃地看着你。")
else:
print("✓ 味觉系统已下线,安全食用")
self.player.energy += 30
self.player.consecutive_bad_food_days = 0
# VIP隐藏菜单
if self.player.is_vip:
print("←解锁隐藏菜单:仰望星空派PLUS!SAN值恢复")
self.player.sanity += 30
return 60 # 午休60分钟
def _handle_after_school(self):
print("\n[放学后]")
# 量子波动赶作业系统
if random.random() > PROCRASTINATION_PROB:
self._quantum_homework()
else:
print(" 开启摸鱼模式,时间飞逝~")
self.time_dilation *= 2 # 摸鱼时时间跳跃
self.player.sanity += 10
self.player.energy += 20
if random.random() < 0.5:
print(" 你沉迷于游戏,连妈妈叫你吃饭都没听见,最后被妈妈揪着耳朵拎出了房间。")
return 120 # 放学后2小时
def _handle_homework_check(self):
observed_progress = self.homework.observe_progress()
print(f"\n⚠ 老师突然检查作业!当前作业进度:{observed_progress:.1f}%")
if observed_progress < 30:
print("老师很生气,后果很严重!SAN值和IQ下降")
self.player.sanity -= 20
self.player.iq -= 10
print(" 老师气得头发都竖起来了,像个愤怒的刺猬,对你进行了长达十分钟的“狮吼功”攻击。")
elif observed_progress < 60:
print("老师有点不满意,警告一次")
self.player.sanity -= 10
print(" 老师用那能**的眼神瞪了你一眼,你感觉后背发凉。")
else:
print("老师很满意,奖励你一颗糖!SAN值增加")
self.player.sanity += 10
print(" 老师笑着摸了摸你的头,给了你一颗糖,你感觉自己像个被宠爱的小宝宝。")
def _handle_pop_quiz(self, subject):
question, difficulty = SchoolEvents.pop_quiz()
print(f"\n⚠ 老师突然提问:{question}")
if self.player.iq > difficulty:
print("回答正确!IQ和SAN值增加")
self.player.iq += 5
self.player.sanity += 5
print(" 你回答得又快又准,全班同学都为你鼓掌,你感觉自己像个明星。")
else:
print("回答错误!SAN值下降")
self.player.sanity -= 10
print(" 你挠了挠头,一脸茫然,像个迷路的小羊羔,引得全班同学哄堂大笑。")
def _quantum_homework(self):
print("\n 开启量子波动赶作业系统!")
# 灵感迸发机制
if random.random() < 0.2:
print("✨ 灵感迸发!作业进度大幅提升")
self.homework.progress += 30
print(" 你的脑袋里突然亮起了一盏明灯,灵感如泉水般涌出,作业刷刷地就写完了一大半。")
# 「参考」同学的量子纠缠
if random.random() < 0.3:
print(" 与同学产生量子纠缠,参考了同学的作业,进度提升")
self.homework.progress += 20
print(" 你偷偷地瞟了一眼同桌的作业,感觉自己像个做贼的小偷,心里还念叨着“就看一眼,就看一眼”。")
# 进度坍缩观测
observed_progress = self.homework.observe_progress()
self.player.homework_completed = observed_progress
print(f"作业当前进度:{observed_progress:.1f}%")
def _sanity_check(self):
print("\n 进行SAN值检测...")
if self.player.sanity > 80:
print("理智值正常,世界还是那么美好~")
elif self.player.sanity > 50:
print("理智值有所下降,你开始看到一些奇怪的东西...")
if random.random() < 0.3:
print(" 你感觉有个幽灵在你身边飘来飘去,吓得你赶紧抱住了自己的书包。")
elif self.player.sanity > 20:
print("理智值严重下降,克系幻觉开始出现!")
# 克系知识检测
if random.random() < 0.5:
print("你脑海中闪过一些克系知识,SAN值再次下降!")
self.player.sanity -= 10
print(" 你感觉自己的眼睛要被某种神秘力量吸走了,赶紧闭上了眼睛。")
# 二次元浓度过高警告
if self.player.meme_level > 5:
print("二次元浓度过高,小心被异次元吸走!")
print(" 你感觉自己周围出现了一个巨大的漩涡,好像要把你吸进二次元世界。")
else:
print("理智值归零,你陷入了疯狂!")
self.player.sanity = 0
print(" 你开始在教室里上蹿下跳,大喊大叫,像个失控的疯子。")
def _update_disaster_level(self):
if self.player.sanity > 80:
self.disaster_level = DisasterLevel.PEACETIME
elif self.player.sanity > 50:
self.disaster_level = DisasterLevel.MINOR
elif self.player.sanity > 20:
self.disaster_level = DisasterLevel.MODERATE
elif self.player.sanity > 10:
self.disaster_level = DisasterLevel.SEVERE
else:
self.disaster_level = DisasterLevel.APOCALYPSE
def _print_status(self):
print(f"\n[状态信息]")
print(f" 精力:{self.player.energy}")
print(f" IQ:{self.player.iq}")
print(f" SAN值:{self.player.sanity}")
print(f" 梗知识等级:{self.player.meme_level}")
print(f" 灾难等级:{self.disaster_level.value[0]}")
self._sanity_check()
def _check_ending(self):
if self.player.sanity <= 0:
print(BAD_ENDING)
sys.exit(0)
def _check_achievements(self):
# 「喷射战士」:连续3天吃坏肚子
if self.player.consecutive_bad_food_days >= 3:
print(" 解锁成就:「喷射战士」!连续3天吃坏肚子,你是厕所常客!")
print(" 感觉你都快和厕所里的苍蝇称兄道弟啦!")
# 「时间管理大师」:厕所时间占比超50%
if self.player.total_time > 0 and (self.player.toilet_time / self.player.total_time) > 0.5:
print(" 解锁成就:「时间管理大师」!厕所时间占比超50%,你把厕所当成了第二个家!")
print(" 厕所里都快被你布置成温馨小窝,还打算在那装个电视呢!")
# 「逆熵者」:作业完成度超过量子极限
if self.player.homework_completed > 90:
print(" 解锁成就:「逆熵者」!作业完成度超过量子极限,你打破了时间和空间的束缚!")
print("⏱️ 时间都被你追着跑,作业就像被施了魔法一样乖乖完成!")
def _typewriter_effect(self, text, delay=0.05):
for char in text:
sys.stdout.write(char)
sys.stdout.flush()
time.sleep(delay)
print()
#-----------食堂系统----------
class CanteenSystem:
def __init__(self):
self.dark_cuisine = [
("月饼炒辣椒", 0.3),
("爆炒妙蛙种子", 0.5),
("仰望星空派", 0.7),
("九转大肠(原味版)", 1.0),
("草莓拌臭豆腐", 0.8),
("香蕉配辣椒面", 0.6)
]
def get_random_food(self):
return random.choice(self.dark_cuisine)
#-----------事件系统----------
class SchoolEvents:
@staticmethod
def morning_self_study():
events = [
("发现黑板上有神秘公式", "解析结果:早恋名单!"),
("窗边闪过人影", "风纪委员突袭!全员警戒"),
("后桌传来小笼包香味", "SAN值受到暴击"),
("听到一阵诡异的笑声", "原来是同桌在做美梦傻笑呢!"),
("书本突然自己翻页", "难道是知识在主动找你,可惜你睡着了没接住!")
]
return random.choice(events)
@staticmethod
def pop_quiz():
questions = [
("证明**是**", 50),
("分析宇智波灭族的经济影响", 70),
("用微积分求草莓种植面积", 60),
("假如你是愚公,如何用现代科技移山", 45),
("解释为啥奥特曼总是在快没能量时才放大招", 35)
]
return random.choice(questions)
#-----------主程序----------
if __name__ == "__main__":
print("警告:运行本程序可能导致时间感错乱")
name = input("输入你的角色名:")
simulator = ApocalypseSimulator(name)
try:
simulator.start_simulation()
except KeyboardInterrupt:
print("\n触发紧急逃生协议!")
print(ESCAPE_ART)
print(" 你像只受惊的兔子,撒腿就逃出了这个“开学噩梦”!")
finally:
print("成就解锁:在开学周幸存(伪)")
print(" 你就像打不死的小,在开学的“炮火”中顽活了下来,简直是奇迹!")
�������������������������������������强�����������强��������������������
全部评论 3
会报错
2025-02-12 来自 广东
0?
2025-02-12 来自 浙江
0报错了
2025-02-14 来自 广东
0
d
2025-02-12 来自 浙江
0d
2025-02-11 来自 浙江
0
有帮助,赞一个