一款跑在终端里的打工经营模拟游戏。在虚构城市「坤城」中体验打工人的酸甜苦辣。
叙事主题:「在一个人人都想往上爬的城市里,你要成为什么样的人?」
双击 游戏/ 里的 exe 启动(5 个版本任选,见下方对照表)。
存档共用 save/ 目录,所以在哪一层启动都行。
推荐 Windows Terminal(宽度 ≥ 110 列、高度 ≥ 30 行效果最佳)。
传统 CMD 也能跑,但建议把窗口拉大一点,并把字体设为 Consolas + 新宋体。
Win7 只能用 v5.1mini.exe(它的 TUI 走 Win32 Console API,不依赖 ANSI 转义)。
| 文件 | 版本 | 差别 |
|---|---|---|
v5.1.exe |
常规 | 完整坤城,钱不过手 |
v5.1flash.exe |
轻装 | 砍掉技能/声望/成就/好友/房产/福布斯/宠物/会员,只剩打工循环(15 项菜单) |
v5.1feeling.exe |
财阀 | 名义工资 ×2.1 但派遣抽成 28%、绩效罚款、房租 +3%/月、物价 +0.12%/天、负债日息 1.2%、医院 ×2.2 |
v5.1real.exe |
真实 | 有工资单:工时/通勤/试用期八折/五险一金 10.5%/个税/加班费改调休,日报算时薪 |
v5.1mini.exe |
极简 | 只留打工/股票/睡觉,兼容 Win7 控制台 |
三个主剖面的差别不在数字大小,在钱的中间环节:常规不过手,real 过两道手但账目清楚,
feeling 过三道手且你在链条最末端。详见 游戏/v5.1.md 的「三个剖面」一节。
五个版本共用同一套源码,靠 源码/variant.h 的编译开关裁剪,改一处全版本同步。
结算逻辑集中在 源码/mod_tone.cpp(常规版编译进去是空操作,-O2 直接折叠)。
# 单个版本
g++ -O2 -std=c++14 -o 游戏/v5.1.exe \
core_state.cpp tui_state.cpp mod_cliff.cpp mod_core.cpp mod_forbes.cpp \
mod_init.cpp mod_main.cpp mod_menus.cpp mod_save.cpp mod_shop.cpp \
mod_social.cpp mod_stock.cpp mod_stock_ui.cpp mod_tone.cpp mod_work.cpp -lm
# 五个版本一起编
双击 源码/build.bat
⚠️ v5.0 起必须用 UTF-8 编译,不要加-fexec-charset=GBK。 TUI 走 UTF-8 + ANSI 直出,加 GBK 会让tui.h里的█ ░ ▁▂▃编不了, 报converting to execution character set: Illegal byte sequence, 并连带刷出满屏tui_stream_reset was not declared。
原先 335 KB / 8394 行的单文件已拆成 13 个模块 + 1 个公共头,每个 15–39 KB:
core.h 公共类型 / 常量 / extern / 全部函数原型
variant.h 版本变体开关(5 个版本靠它裁剪)
tui.h TUI 引擎(含 Win7 legacy 刷新分支)
tui_state.cpp TUI 全局状态
core_state.cpp 全局变量定义
mod_core.cpp 工具 / 页面框架 / 输入 mod_stock.cpp 股票引擎 / 新闻
mod_init.cpp 初始化与数据表 mod_stock_ui.cpp 行情页 / 图表
mod_cliff.cpp 断崖机制 mod_save.cpp 存档
mod_social.cpp 聊天室 / 好友 / 手机 mod_forbes.cpp 福布斯 / 事件
mod_work.cpp 打工核心 / 结算 / 生存 mod_shop.cpp 商店 / 技能 / 声望
mod_tone.cpp 工资单 / 通勤 / 罚款 / 通胀 / 负债(real & feeling)
mod_menus.cpp 各类页面 mod_main.cpp 主菜单 / main
改一个系统只碰一个文件,详见 源码/README.md。
- Web 版(旧版,不再更新):https://ciallo0721-cmd.top/work/
- GitHub 仓库:https://github.com/ciallo0721-cmd/Work-Simulator
比纯 CLI 高一级,比 GUI 轻。整个游戏跑在一个带边框的字符界面上:
┌─ 档案 ──────────────────┐ ┌─ 今日 ──────────────────────────────┐
│ 匿名玩家 Lv.7 │ │ 时间槽 上 下 晚 还能干活 收入 +860 │
│ 坤币 48,250 │ │ 坤城指数 1240 +2 ▇▅▃▅▅▁▅▇█▅▁▆▅▆▇ │
│ 时间 上 下 晚 │ └─────────────────────────────────────┘
│ ─────────────────────── │ ┌─ 主菜单 ───────────────────────────┐
│ 饱食 █████░░░░░░ 46 │ │ > 1 查看状态 2 打工赚钱 3 商城 │
│ 血量 ████████░░░ 78 │ │ 4 技能系统 5 背包物品 6 任务 │
│ 精神 ███░░░░░░░░ 32 │ └─────────────────────────────────────┘
└─────────────────────────┘
能做的事
- 方向键在菜单里移动,回车进入,数字键直接快选,Q 退出
- 左侧常驻状态栏:等级、坤币、时间槽、五条属性、资产概览、坤城指数走势
- 顶部实时天数/季节/声望,底部按键提示条
- 所有老页面(技能 / 背包 / 任务 / 宠物 …)自动嵌进内容面板,支持 PgUp / PgDn 翻阅
- 25 支坤城股票,9 个行业板块:科技 / 金融 / 地产 / 消费 / 医药 / 能源 / 制造 / 传媒 / 农业
- 没有任何"保底回升":价格是纯随机游走 + 情绪趋势,跌破面值就真的一路躺平
- 旧版
价格低于基准价 → 强制 +1的隐性上涨已彻底删除
- 旧版
- 涨跌停板:主板 ±10%,ST 股 ±5%;封板后买不进 / 卖不出
- 交易日:每 120 个 tick 结算一天(约 2 分钟),收盘重算涨跌基准、刷新新闻
- ST 风险警示:跌破基准价 65% 连续 2 日 → 挂 ST(名称带
ST标记,界面显示剩余退市倒计时) - 退市机制:
- 跌破基准价 25%,或 ST 满 3 日仍未改善,或 ST 挂满 10 日 → 停牌 → 按最后价 18% 强制清算持仓
- 退市股 40 个交易日后可重组重新挂牌(价格回到基准价)
- 融资买入 + 强制平仓:
- 买入时可选融资,自付 50%,券商垫 50%
- 维持担保比例 =(持仓市值 + 现金)/ 负债,跌破 130% 自动强平
- 强平从亏得最狠的持仓开始卖,卖完不够还债就扣现金,再不够记破产
- ★ 断崖机制(v5.1 新增):
- 一只股票连续 5 个交易日都在跌,且这 5 天累计跌幅跌穿 -25% → 直接断崖
- 不再慢慢阴跌:开盘直接砸到基准价的 8%,当日停牌,次日按清算价强制变现
- 坤透社发头条:
【经济】XX 断崖式崩盘,股价一日归零 - 股票页会提前显示预警:
断崖预警 · 连跌 4 日 · 累计 -23% - 不用「单日 -25%」判定是因为主板有 ±10% 跌停,单日根本走不出来; 断崖表达的是一路阴跌、不给回本机会
- 实现在
源码/mod_cliff.cpp,由stk_day_close()每个交易日收盘调用
- 坤城新闻(坤透社):主菜单首页「坤城速报」直接显示最新 8 条,按
N进全屏新闻页,1/2/3按类型筛选- 娱乐:演员 / 声优 / 音乐人 / 导演的丑闻、新作、婚讯、离世
- 经济:破产清算 / 立案调查 / 财务造假 / 国资注资 / 并购 / 政策调整
- 政治:市长 / 总统选举、政策调控、官员落马
- 每条新闻带影响幅度,持续几十个 tick 推动对应标的或整个板块
- 实时行情:进入股票页后每秒跳动一次,空格暂停;
R手动跳一档 - 分时折线图:右侧大图带 Y 轴刻度、网格、现值标记,涨红跌绿
- 历史落盘:
save/stock_history.dat存价格走势,save/stocks.dat存股票状态与新闻 - 按
C把图表放大到全宽,Esc返回
手机 → 进入聊天室,独立 TUI 页面:
- 左侧消息流:时间戳 + 发言人 + 内容,按类型上色(骗子红 / 黑产橙 / 同城紫 / 系统黄 / 你自己青)
- 右侧在线名单:
*在线 /-离线 - 底部输入行:直接打字,支持中文输入法(走控制台原生回显,不是自绘字符)
- 命令:
@名字 内容搭话、同意/拒绝响应对方请求、/quit或Esc退出 - 每 3~8 秒会有人自动说话,偶尔插系统消息
首次启动的「输入名字」也改成了同样的输入行,中英文都能打。
- 任务系统:出租车、程序员、企业家等 10 种打工任务
- 技能系统:10 项可升级技能,影响任务效率和收入
- 商城/家具:购买家具和物品,提供被动收入加成
- 成就系统:30 个成就(含叙事型 flavor text)
- 合成系统:物品合成,创造更强装备
- 时间槽系统 — 每天 3 个时段(上午/下午/晚上),取代旧能量制
- 打工难度模式 — 摸鱼/普通/加班/拼命,风险和回报成正比
- 打工微型事件 — 18 种随机事件,40% 触发率,含分支选择
- 每日日报结算 — 收入统计 + 生活成本扣除 + 夜间恢复
- 每日生活成本 — 房租 + 餐饮,随等级增长
- 手机聊天室:10+ AI 网友,含骗子、黑产等真实社交体验
- 好友系统:10 位 NPC 好友,可互动送礼
- 状态系统:饱食度/血量/精神,影响打工效率
- 季节系统:春夏秋冬四季轮换,各有不同加成
- 宠物系统:5 种宠物,提供额外收入倍数
- 公司经营:10 级公司升级,获得被动收入
- 房产投资:10 处房产,稳定收益
- 声望系统:重置游戏获得永久加成
- 福布斯排行榜:记录全服财富排名
- 自动保存到
save/文件夹(文件夹结构) - 每 5 分钟 + 退出时自动保存
- 存档版本:v8(TUI 版未改动存档格式,老存档直接能用)
save/
├── manifest.work ← 主清单
├── player/core.player
├── pets/main.dat + 0~4.pet
├── friends/main.dat + 0~9.chr
├── tasks.ts / inventory.bag / stats.dat
├── forbes.list
└── stock_history.dat ← 股票历史(q25i 记录,每次行情一条)
修改器/修改器_源码.py — Python 存档修改器 v3.0,适配文件夹结构存档。
python 修改器/修改器_源码.py功能:修改属性、家具、预设作弊、存档修复、福布斯管理
| 项目 | 值 |
|---|---|
| 语言 | C++(C 风格,gcc/g++ 均可编译) |
| 代码行数 | ~7000 行(单文件) + 960 行 TUI 引擎(源码/tui.h) |
| 界面 | 自绘 TUI:双缓冲 + 行级差异刷新 + 256 色 ANSI |
| 作者 | ciallo0721-cmd |
| 存档版本 | v8(文件夹结构) |
| GitHub | https://github.com/ciallo0721-cmd/Work-Simulator |
源码/tui.h 是独立的界面层,不碰游戏逻辑:
- 画布:
TuiCell数组双缓冲,UTF-8 + CJK 宽字符对齐 - 刷新:逐行比对,只重画变化的行,不闪屏
- 按键:
_kbhit/_getch轮询,支持方向键 / Home / End / PgUp / PgDn - 组件:边框、面板、进度条、迷你走势、带 Y 轴折线图、输入行
- printf 捕获:
#define printf tui_printf,老页面零改动渲染进内容面板
# 渲染指定页面到 stdout(1=主菜单 2=股票 3=流式子页)
TUI_SELFTEST=1 TUI_FRAME=2 ./打工模拟器.exe > dump.bin
# 按键回放跑完整链路(U/D/L/R 方向键,~ 回车)
TUI_AUTOKEYS="9DDB" ./打工模拟器.exe- 坤币为虚拟货币,纯属游戏设定
- 聊天室有骗子和黑产,谨慎社交
- 精神过低或过高都有猝死风险(可从存档恢复)
- 终端建议 ≥ 110×30;太小会自动降级布局,但会显拥挤
- 如果画面出现错位,多半是终端字体把符号当成了双宽 —— 换 Consolas 试试
- 修改器仅供娱乐,请先备份存档
祝您打工愉快,早日成为坤城打工皇帝!