import random import time from collections import Counter class 饰品大亨: def __init__(self, verbose=False, manual=False): self.分数 = 50 self.轮数 = 0 self.总轮数 = 10 self.店名 = "" self.店铺类型 = "" self.分店数 = 0 self.客流量 = 50 self.品牌价值 = 50 self.现金流 = 50 self.事件记录 = [] self.verbose = verbose self.manual = manual def 显示状态(self): if not self.verbose: return print("=" * 60) print(f"🏪 {self.店名}({self.店铺类型}) 经营状况 (第{self.轮数}/{self.总轮数}轮)") print("=" * 60) print(f"💰 综合分数: {self.分数} | 🏢 分店数: {self.分店数}") print(f"👥 客流量: {self.客流量} | 💎 品牌价值: {self.品牌价值} | 💵 现金流: {self.现金流}") print("-" * 60) def 应用效果(self, 分数变, 分店变, 客流变, 现金变, 品牌变, 描述): 旧分数 = self.分数 旧现金流 = self.现金流 旧客流量 = self.客流量 旧品牌价值 = self.品牌价值 旧分店数 = self.分店数 self.分数 += 分数变 self.分店数 = max(0, self.分店数 + 分店变) self.客流量 = max(0, min(100, self.客流量 + 客流变)) self.现金流 += 现金变 self.品牌价值 = max(0, min(100, self.品牌价值 + 品牌变)) self.事件记录.append(f"第{self.轮数}轮: {描述}") if self.verbose: print(f"✨ {描述}") # 资金变化描述(重点突出) if 现金变 > 0: print(f"💰 资金增加 +{现金变}万,现在有{self.现金流}万") elif 现金变 < 0: print(f"� 资金减少 {现金变}万,现在有{self.现金流}万") else: print(f"💰 资金保持{self.现金流}万") # 分数变化描述 if 分数变 > 0: print(f"� 综合分数提升 +{分数变},从{旧分数}→{self.分数}") elif 分数变 < 0: print(f"📉 综合分数下降 {分数变},从{旧分数}→{self.分数}") # 其他参数变化描述 变化列表 = [] if 客流变 != 0: if 客流变 > 0: 变化列表.append(f"客流量+{客流变}({旧客流量}→{self.客流量})") else: 变化列表.append(f"客流量{客流变}({旧客流量}→{self.客流量})") if 品牌变 != 0: if 品牌变 > 0: 变化列表.append(f"品牌价值+{品牌变}({旧品牌价值}→{self.品牌价值})") else: 变化列表.append(f"品牌价值{品牌变}({旧品牌价值}→{self.品牌价值})") if 分店变 != 0: if 分店变 > 0: 变化列表.append(f"分店数+{分店变}({旧分店数}→{self.分店数})") else: 变化列表.append(f"分店数{分店变}({旧分店数}→{self.分店数})") if 变化列表: print(f"📈 其他变化: {', '.join(变化列表)}") def 选择店铺类型(self): if self.verbose: print("🌟" + "=" * 56 + "🌟") if self.manual: print(" " * 20 + "饰品大亨") else: print(" " * 20 + "饰品大亨:自动模拟版") print("🌟" + "=" * 56 + "🌟") print("\n请选择店铺类型:") print(" 1. 时尚银饰店 (现金流-5, 品牌价值+5, 客流量+5)") print(" 2. 古法金饰店 (现金流-15, 品牌价值+10, 客流量-5)") print(" 3. 潮流合金店 (现金流-0, 品牌价值-5, 客流量+10)") print(" 4. 手工DIY饰品店 (现金流-10, 品牌价值+10)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if 选 == 1: self.店铺类型 = "时尚银饰店" self.客流量 += 5 self.品牌价值 += 5 self.现金流 -= 5 elif 选 == 2: self.店铺类型 = "古法金饰店" self.品牌价值 += 10 self.现金流 -= 15 self.客流量 -= 5 elif 选 == 3: self.店铺类型 = "潮流合金店" self.客流量 += 10 self.品牌价值 -= 5 self.现金流 += 5 else: self.店铺类型 = "手工DIY饰品店" self.品牌价值 += 10 self.现金流 -= 10 if self.manual: self.店名 = self.店铺类型 else: self.店名 = f"自动模拟{self.店铺类型}" if self.verbose: if self.manual: print(f"\n🎯 你选择了:{self.店铺类型}") else: print(f"\n🎲 自动选择店铺类型:{self.店铺类型}") print(f"你的店铺「{self.店名}」正式成立!\n") def 轮次1(self): if self.verbose: print("\n📦 第1轮 · 首次进货") print("请选择进货渠道:") print(" 1. 批发市场 (风险低,收益一般)") print(" 2. 品牌代理 (成本高,品牌价值提升)") print(" 3. 线上进货 (风险高,可能爆款)") print(" 4. 手工设计 (独特风格,可能大获成功)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if 点数 <= 2: self.应用效果(-5, 0, 0, 3, -2, "批发市场淘到积压货,质量不佳") elif 点数 <= 4: self.应用效果(5, 0, 0, 5, 2, "批发市场淘到一批性价比不错的货") else: self.应用效果(10, 0, 5, 8, 5, "批发市场捡漏,发现小众优质货源") elif 选 == 2: if 点数 <= 2: self.应用效果(-3, 0, -2, -5, -2, "品牌代理拖延供货,错失良机") elif 点数 <= 4: self.应用效果(5, 0, 2, 5, 5, "与品牌代理顺利合作,品质保证") else: self.应用效果(15, 0, 5, 10, 10, "拿到独家代理,品牌价值大增") elif 选 == 3: if 点数 <= 2: self.应用效果(-5, 0, -5, -3, -3, "物流延误,款式过季") elif 点数 <= 4: self.应用效果(5, 0, 5, 8, 2, "线上款式受欢迎,客流增加") else: self.应用效果(15, 0, 15, 15, 5, "线上爆款,一夜成名") else: if 点数 <= 2: self.应用效果(-5, 0, -3, 5, -5, "手工设计不被认可") elif 点数 <= 4: self.应用效果(5, 0, 3, 5, 5, "手工饰品小受欢迎") else: self.应用效果(20, 0, 10, 12, 15, "手工设计走红,独特风格吸引顾客") def 轮次2(self): if self.verbose: print("\n🎉 第2轮 · 开业促销") print("请选择促销方式:") print(" 1. 价格折扣 (快速引流,可能亏本)") print(" 2. 社交媒体宣传 (可能爆红)") print(" 3. 会员制度 (长期收益)") print(" 4. 口碑营销 (稳健发展)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if 点数 <= 2: self.应用效果(-5, 0, 5, -5, -3, "折扣过大,亏本赚吆喝") elif 点数 <= 4: self.应用效果(5, 0, 15, 5, 2, "薄利多销,客流上升") else: self.应用效果(10, 0, 25, 10, 5, "人气爆棚,成为话题") elif 选 == 2: if 点数 <= 2: self.应用效果(-2, 0, -2, -3, -2, "宣传反响平平") elif 点数 <= 4: self.应用效果(5, 0, 10, 5, 5, "小有成效,客流增加") else: self.应用效果(20, 0, 30, 15, 15, "视频爆红,门店排长队") elif 选 == 3: if 点数 <= 2: self.应用效果(-1, 0, 0, -2, -1, "会员活动参与度低") elif 点数 <= 4: self.应用效果(5, 0, 5, 3, 5, "积累首批会员") else: self.应用效果(15, 0, 15, 8, 10, "会员激增,复购率高") else: if 点数 <= 2: self.应用效果(-5, 0, -5, 3, -3, "无人问津,开业冷清") elif 点数 <= 4: self.应用效果(0, 0, 5, 5, 2, "平稳起步,靠口碑慢慢积累") else: self.应用效果(5, 0, 10, 8, 5, "口碑发酵,自然客流不错") def 轮次3(self): if self.verbose: print("\n🗣️ 第3轮 · 顾客反馈") print("请选择处理方式:") print(" 1. 主动更换产品 (成本高,挽回声誉)") print(" 2. 忽略投诉 (省钱,可能流失顾客)") print(" 3. 改进产品 (长期投资)") print(" 4. 低调处理 (风险较低)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if 点数 <= 2: self.应用效果(-5, 0, 2, -8, 5, "更换成本过高,但挽回部分声誉") elif 点数 <= 4: self.应用效果(5, 0, 5, -3, 10, "妥善处理,赢得信任") else: self.应用效果(15, 0, 10, 5, 20, "真诚态度感动顾客,品牌大涨") elif 选 == 2: if 点数 <= 2: self.应用效果(-15, 0, -20, -5, -15, "口碑崩塌,顾客大量流失") elif 点数 <= 4: self.应用效果(-5, 0, -10, -2, -5, "部分顾客流失,负面影响") else: self.应用效果(-2, 0, -5, 3, -2, "少数人计较,侥幸过关") elif 选 == 3: if 点数 <= 2: self.应用效果(-5, 0, 0, -8, -2, "研发失败,资金打水漂") elif 点数 <= 4: self.应用效果(5, 0, 3, -5, 5, "小有改进,产品更可靠") else: self.应用效果(15, 0, 10, -8, 20, "技术突破,品质领先") else: if 点数 <= 2: self.应用效果(-15, 0, -15, -10, -20, "被消费者曝光,形象崩塌") elif 点数 <= 4: self.应用效果(-3, 0, -5, -3, -5, "悄悄处理,但仍有影响") else: self.应用效果(-1, 0, -2, 0, -2, "侥幸过关,但埋下隐患") def 轮次4(self): if self.verbose: print("\n🏁 第4轮 · 市场竞争") print("请选择应对策略:") print(" 1. 价格战 (短期有效,可能亏本)") print(" 2. 差异化定位 (长期优势)") print(" 3. 跨界联名 (合作共赢)") print(" 4. 提升服务 (口碑建设)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if 点数 <= 2: self.应用效果(-10, 0, 5, -8, -5, "价格战亏本,客流略增") elif 点数 <= 4: self.应用效果(-5, 0, 10, -3, 0, "勉强稳住客流") else: self.应用效果(5, 0, 20, 5, 2, "价格战成功,抢回顾客") elif 选 == 2: if 点数 <= 2: self.应用效果(-5, 0, -5, -3, -5, "特色不被认可") elif 点数 <= 4: self.应用效果(5, 0, 5, 3, 5, "吸引特定人群") else: self.应用效果(15, 0, 15, 8, 15, "形成独特优势") elif 选 == 3: if 点数 <= 2: self.应用效果(-5, 0, -3, -3, -3, "被对方拒绝") elif 点数 <= 4: self.应用效果(5, 0, 5, 3, 5, "勉强合作,客流微增") else: self.应用效果(15, 0, 15, 5, 10, "联名双赢,品牌提升") else: if 点数 <= 2: self.应用效果(-2, 0, 2, -3, 0, "服务成本高,效果有限") elif 点数 <= 4: self.应用效果(5, 0, 5, 2, 5, "服务受欢迎") else: self.应用效果(15, 0, 15, 5, 10, "服务成招牌") def 轮次5(self): if self.verbose: print("\n📱 第5轮 · 直播风口") print("请选择应对方式:") print(" 1. 自己直播 (可能成为网红)") print(" 2. 请主播带货 (成本高,可能爆红)") print(" 3. 专注线下 (稳健发展)") print(" 4. 短视频营销 (积累粉丝)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if 点数 <= 2: self.应用效果(-5, 0, -3, -3, -2, "口才不佳,直播效果差") elif 点数 <= 4: self.应用效果(5, 0, 5, 3, 3, "小有收获") else: self.应用效果(20, 0, 20, 8, 15, "成为网红店主") elif 选 == 2: if 点数 <= 2: self.应用效果(-10, 0, -5, -8, -5, "主播不负责,效果差") elif 点数 <= 4: self.应用效果(5, 0, 10, 5, 5, "正常销量") else: self.应用效果(20, 0, 30, 10, 10, "主播带火,销量暴增") elif 选 == 3: if 点数 <= 2: self.应用效果(-5, 0, -10, -5, -3, "线下受冲击") elif 点数 <= 4: self.应用效果(0, 0, 0, 0, 0, "维持现状") else: self.应用效果(5, 0, 5, 5, 5, "线下体验优势凸显") else: if 点数 <= 2: self.应用效果(-2, 0, -1, -3, -1, "内容无趣") elif 点数 <= 4: self.应用效果(3, 0, 2, 3, 5, "少量粉丝") else: self.应用效果(15, 0, 15, 8, 20, "爆款视频,粉丝暴涨") def 轮次6(self): if self.verbose: print("\n🏢 第6轮 · 租金谈判") print("请选择应对方式:") print(" 1. 接受涨价 (短期成本高)") print(" 2. 谈判降租 (可能成功)") print(" 3. 换址搬迁 (风险高)") print(" 4. 扩张分店 (压力减小)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if 点数 <= 2: self.应用效果(-10, 0, -5, -10, -5, "租金过高难以承受") elif 点数 <= 4: self.应用效果(-2, 0, 0, -5, 0, "勉强接受") else: self.应用效果(0, 0, 5, 5, 2, "生意好能覆盖") elif 选 == 2: if 点数 <= 2: self.应用效果(-5, 0, -3, -5, -5, "谈判破裂,关系恶化") elif 点数 <= 4: self.应用效果(2, 0, 0, 5, 2, "小幅降低租金") else: self.应用效果(10, 0, 5, 8, 5, "成功降租") elif 选 == 3: if 点数 <= 2: self.应用效果(-15, 0, -15, -8, -5, "新址更差") elif 点数 <= 4: self.应用效果(0, 0, -5, -5, 0, "新址一般") else: self.应用效果(15, 0, 20, -5, 5, "找到黄金地段") else: if 点数 <= 2: self.应用效果(-20, -1, -10, -15, -10, "扩张失败,双重打击") elif 点数 <= 4: self.应用效果(5, 1, 0, -8, 2, "平稳开分店") else: self.应用效果(20, 1, 15, 5, 10, "分店成功,压力减小") def 轮次7(self): if self.verbose: print("\n🔥 第7轮 · 爆款机遇") print("请选择应对策略:") print(" 1. 大量备货 (可能积压)") print(" 2. 饥饿营销 (制造稀缺)") print(" 3. 提价销售 (增加利润)") print(" 4. 开发衍生品 (扩大收益)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if 点数 <= 2: self.应用效果(-10, 0, -5, -10, -5, "热度过去,积压库存") elif 点数 <= 4: self.应用效果(15, 0, 10, 10, 10, "抓住机会,销量大增") else: self.应用效果(25, 0, 15, 20, 20, "成为经典爆款") elif 选 == 2: if 点数 <= 2: self.应用效果(-5, 0, -10, 3, 0, "顾客买不到,转向别家") elif 点数 <= 4: self.应用效果(10, 0, 5, 8, 10, "饥饿营销成功") else: self.应用效果(20, 0, 25, 12, 20, "引发抢购热潮") elif 选 == 3: if 点数 <= 2: self.应用效果(-15, 0, -15, 5, -10, "顾客反感,口碑下降") elif 点数 <= 4: self.应用效果(0, 0, -2, 10, -5, "小幅提价,利润增加") else: self.应用效果(5, 0, 0, 15, 0, "提价成功") else: if 点数 <= 2: self.应用效果(-5, 0, -2, -5, 0, "衍生品无人问津") elif 点数 <= 4: self.应用效果(10, 0, 5, 8, 5, "衍生品小受欢迎") else: self.应用效果(20, 0, 10, 15, 15, "衍生品也成爆款") def 轮次8(self): if self.verbose: print("\n🔄 第8轮 · 市场变化") if self.店铺类型 == "古法金饰店": print("请选择应对方式:") print(" 1. 深耕黄金市场 (巩固优势)") print(" 2. 坚持原创设计 (长期优势)") print(" 3. 提升服务体验 (口碑建设)") print(" 4. 清仓回笼资金 (现金为王)") else: print("请选择应对方式:") print(" 1. 转型黄金饰品 (风险高)") print(" 2. 坚持原创设计 (长期优势)") print(" 3. 提升服务体验 (口碑建设)") print(" 4. 清仓回笼资金 (现金为王)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if self.店铺类型 == "古法金饰店": if 点数 <= 2: self.应用效果(-5, 0, -5, -8, -5, "市场饱和,增长乏力") elif 点数 <= 4: self.应用效果(8, 0, 5, 5, 5, "稳步发展,保持优势") else: self.应用效果(20, 0, 10, 12, 15, "成为黄金饰品标杆") else: if 点数 <= 2: self.应用效果(-15, 0, -5, -10, -5, "转型失败,两头不讨好") elif 点数 <= 4: self.应用效果(5, 0, 5, -5, 5, "部分转型,保留原业务") else: self.应用效果(20, 0, 10, -5, 10, "成功转型黄金饰品") elif 选 == 2: if 点数 <= 2: self.应用效果(-10, 0, -10, -5, -5, "设计被忽视") elif 点数 <= 4: self.应用效果(5, 0, -5, 3, 5, "核心顾客支持") else: self.应用效果(15, 0, 10, 5, 15, "设计逆袭") elif 选 == 3: if 点数 <= 2: self.应用效果(-2, 0, 0, -3, 0, "服务不受欢迎") elif 点数 <= 4: self.应用效果(5, 0, 5, 3, 5, "服务增加粘性") else: self.应用效果(15, 0, 10, 5, 10, "服务成特色") else: if 点数 <= 2: self.应用效果(-15, 0, -10, -5, -20, "清仓亏本,品牌大跌") elif 点数 <= 4: self.应用效果(0, 0, -5, 10, -5, "平稳清仓") else: self.应用效果(5, 0, -2, 15, -10, "清仓成功,现金充足") def 轮次9(self): if self.verbose: print("\n⚠️ 第9轮 · 内部危机") print("请选择应对方式:") print(" 1. 挽留设计师 (成本高)") print(" 2. 培养新人 (长期投资)") print(" 3. 外包设计 (降低成本)") print(" 4. 改革制度 (风险高)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if 点数 <= 2: self.应用效果(-10, 0, -5, -15, 5, "设计师回归但成本过高") elif 点数 <= 4: self.应用效果(0, 0, 0, -10, 10, "设计师回归,稳定局面") else: self.应用效果(10, 0, 5, -5, 20, "设计师带回新资源") elif 选 == 2: if 点数 <= 2: self.应用效果(-10, 0, -10, -5, -10, "新人能力不足,客户流失") elif 点数 <= 4: self.应用效果(0, 0, -5, -3, 5, "新人勉强胜任") else: self.应用效果(10, 0, 5, 3, 15, "新人带来新灵感") elif 选 == 3: if 点数 <= 2: self.应用效果(-5, 0, -3, -5, -5, "外包设计质量差") elif 点数 <= 4: self.应用效果(3, 0, 0, -3, 2, "外包设计及格") else: self.应用效果(8, 0, 5, -5, 8, "外包设计出彩") else: if 点数 <= 2: self.应用效果(-15, 0, -10, -8, -10, "改革失败,老客不满") elif 点数 <= 4: self.应用效果(0, 0, -5, -5, 5, "改革缓慢推进") else: self.应用效果(15, 0, 10, -5, 20, "改革成功,焕然一新") def 轮次10(self): if self.verbose: print("\n🏁 第10轮 · 最后冲刺") print("请选择最后策略:") print(" 1. 扩张分店 (可能成功或失败)") print(" 2. 打造网红店 (可能成为地标)") print(" 3. 高位套现 (出售店铺)") print(" 4. 稳健经营 (维持现状)") if self.manual: 选 = int(input("请输入选择 (1-4): ")) else: 选 = random.randint(1, 4) if self.manual: 点数 = int(input("请输入骰子点数 (1-6): ")) else: 点数 = random.randint(1, 6) if self.verbose: print(f" 选择: {选} 点数: {点数}") if 选 == 1: if 点数 <= 2: self.应用效果(-30, -2, -10, -15, -15, "盲目扩张导致崩溃") elif 点数 <= 4: self.应用效果(10, 1, 5, -8, 5, "稳健扩张") else: self.应用效果(20, 2, 10, 5, 10, "成功扩张,分店增加") elif 选 == 2: if 点数 <= 2: self.应用效果(-5, 0, -5, -5, -5, "网红热度难持久") elif 点数 <= 4: self.应用效果(10, 0, 10, 5, 10, "成为小有名气的网红店") else: self.应用效果(20, 0, 20, 10, 20, "成为城市地标") elif 选 == 3: if 点数 <= 2: self.应用效果(5, 0, 0, 15, -10, "低价出售") elif 点数 <= 4: self.应用效果(15, 0, 0, 30, -5, "合理价格出售") else: self.应用效果(30, 0, 0, 45, 0, "高价套现") else: if 点数 <= 2: self.应用效果(-10, 0, -5, -5, -3, "经营困难") elif 点数 <= 4: self.应用效果(0, 0, 0, 0, 0, "平稳维持") else: self.应用效果(5, 0, 2, 5, 2, "略有盈余") def 判断结局(self): if self.verbose: print("\n" + "=" * 60) print("🏆 游戏结束!最终结局判定") print("=" * 60) 综合评分 = self.分数 + self.现金流 // 5 if 综合评分 >= 100 and self.分店数 >= 3: 结局 = "连锁之巅·品牌霸主" 描述 = "你打造了饰品帝国,成为行业标杆,分店遍布全国!" elif 综合评分 >= 90 and self.品牌价值 > 70: 结局 = "直播涅槃·流量新生" 描述 = "你成功转型直播带货,线上线下融合,流量源源不断!" elif 综合评分 >= 85: 结局 = "高位套现·全身而退" 描述 = "你在市场高点卖出店铺,带着财富优雅离场。" elif 75 <= 综合评分 < 85: 结局 = "社区之光·网红传奇" 描述 = "你成为社区网红店,虽然规模不大但口碑极佳。" elif 65 <= 综合评分 < 75: 结局 = "收支平衡·情怀续航" 描述 = "勉强维持经营,靠着一份情怀继续坚持。" elif 55 <= 综合评分 < 65: 结局 = "薄利长流·黄金微光" 描述 = "微利经营,如同黄金微光般微弱但持续,细水长流。" elif 35 <= 综合评分 < 55: 结局 = "同质困局·黯然退场" 描述 = "设计缺乏创新,被市场淘汰,最终黯然关门。" elif 20 <= 综合评分 < 35: 结局 = "租金绞杀·数据废墟" 描述 = "高租金压垮了你的梦想,店铺变成数据废墟。" elif 0 <= 综合评分 < 20: 结局 = "品牌贬值·二手踩踏" 描述 = "品牌价值归零,二手市场10元回收都没人要。" else: 结局 = "降级求生·缩水危机" 描述 = "从门店沦为柜台,最终消失在商场角落。" if self.verbose: print(f"\n✨ 结局: {结局}") print(f"📖 {描述}") print(f"📊 最终数据 - 综合评分:{综合评分} 分数:{self.分数} 现金流:{self.现金流} 分店:{self.分店数} 品牌:{self.品牌价值}") print(f"\n💰 最终奖励: {self.现金流} 万") print("\n📜 经营大事记:") for i, 事 in enumerate(self.事件记录[-5:], 1): print(f" {i}. {事}") return 结局 def 运行(self, verbose=False): self.verbose = verbose self.选择店铺类型() while self.轮数 < self.总轮数: self.轮数 += 1 self.显示状态() 剧情函数 = getattr(self, f"轮次{self.轮数}", None) if 剧情函数: 剧情函数() else: if self.verbose: print(f"错误:未定义第{self.轮数}轮剧情") break # 自然波动 self.分数 += random.randint(-1, 2) self.分数 = max(0, self.分数) if self.verbose: print() # 加一个空行分隔轮次 self.显示状态() 结局 = self.判断结局() if self.verbose: print("\n" + "=" * 60) print("模拟完成!") return self.分数, self.现金流, 结局 if __name__ == "__main__": print("=" * 60) print("饰品大亨 - 游戏模式选择") print("=" * 60) print("1. 手动游玩模式") print("2. 自动模拟模式 (运行10000次)") 模式 = input("\n请选择模式 (1/2): ").strip() if 模式 == "1": print("\n开始手动游玩模式!") 游戏 = 饰品大亨(verbose=True, manual=True) 游戏.运行(verbose=True) else: print("\n开始自动模拟模式...") # 运行10000次模拟,统计平均分数和众数 random.seed(time.time()) scores = [] cashflows = [] 综合评分列表 = [] outcomes = [] for i in range(100000): 游戏 = 饰品大亨(verbose=False) 分数, 现金流, 结局 = 游戏.运行(verbose=False) scores.append(分数) cashflows.append(现金流) 综合评分列表.append(分数 + 现金流 // 5) outcomes.append(结局) if (i+1) % 1000 == 0: print(f"已完成 {i+1} 次模拟...") # 总体统计 平均分 = sum(scores) / len(scores) 分数众数 = Counter(scores).most_common(1)[0][0] 分数众数次数 = Counter(scores).most_common(1)[0][1] 平均现金流 = sum(cashflows) / len(cashflows) 现金流众数 = Counter(cashflows).most_common(1)[0][0] 现金流众数次数 = Counter(cashflows).most_common(1)[0][1] 平均综合评分 = sum(综合评分列表) / len(综合评分列表) 综合评分众数 = Counter(综合评分列表).most_common(1)[0][0] 综合评分众数次数 = Counter(综合评分列表).most_common(1)[0][1] print(f"\n=== 100000次模拟总体统计 ===") print(f"平均分数: {平均分:.2f}") print(f"分数众数: {分数众数} (出现 {分数众数次数} 次)") print(f"平均现金流: {平均现金流:.2f}") print(f"现金流众数: {现金流众数} (出现 {现金流众数次数} 次)") print(f"平均综合评分: {平均综合评分:.2f}") print(f"综合评分众数: {综合评分众数} (出现 {综合评分众数次数} 次)") # 各结局统计 结局统计 = {} for 结局, 分数, 现金流, 综合评分 in zip(outcomes, scores, cashflows, 综合评分列表): if 结局 not in 结局统计: 结局统计[结局] = {'分数': [], '现金流': [], '综合评分': []} 结局统计[结局]['分数'].append(分数) 结局统计[结局]['现金流'].append(现金流) 结局统计[结局]['综合评分'].append(综合评分) # 计算全局最大最小值 最大分数 = max(scores) 最小分数 = min(scores) 最大现金流 = max(cashflows) 最小现金流 = min(cashflows) print(f"\n=== 全局统计 ===") print(f"分数 - 最大值: {最大分数}, 最小值: {最小分数}") print(f"现金流 - 最大值: {最大现金流}, 最小值: {最小现金流}") print(f"\n=== 各结局详细统计 ===") print(f"{'结局':<30} {'次数':>6} {'平均分':>8} {'分数众数':>8} {'平均现金流':>10} {'现金流众数':>10}") print("-" * 82) for 结局, 次数 in Counter(outcomes).most_common(): 分数列表 = 结局统计[结局]['分数'] 现金流列表 = 结局统计[结局]['现金流'] 综合评分列表 = 结局统计[结局]['综合评分'] 平均分 = sum(分数列表) / len(分数列表) 分数众数 = Counter(分数列表).most_common(1)[0][0] 平均现金流 = sum(现金流列表) / len(现金流列表) 现金流众数 = Counter(现金流列表).most_common(1)[0][0] 平均综合评分 = sum(综合评分列表) / len(综合评分列表) 综合评分众数 = Counter(综合评分列表).most_common(1)[0][0] print(f"{结局:<30} {次数:>6} {平均分:>8.2f} {分数众数:>8} {平均现金流:>10.2f} {现金流众数:>10}") 最大次数 = Counter(outcomes).most_common(1)[0][1] 最常结局 = [结局 for 结局, 次数 in Counter(outcomes).items() if 次数 == 最大次数] print(f"\n最常出现的结局: {'、'.join(最常结局)} (出现 {最大次数} 次)")