Files

801 lines
34 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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(最常结局)} (出现 {最大次数} 次)")