Skip to content

About

无聊写的

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

34 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

打工模拟器 v5.1 — 坤城篇 · TUI 版

一款跑在终端里的打工经营模拟游戏。在虚构城市「坤城」中体验打工人的酸甜苦辣。

叙事主题:「在一个人人都想往上爬的城市里,你要成为什么样的人?」


🚀 快速开始

Windows

双击 游戏/ 里的 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。

源码结构(v5.1 模块化)

原先 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。

在线体验


🖥️ 什么是 TUI

比纯 CLI 高一级,比 GUI 轻。整个游戏跑在一个带边框的字符界面上:

┌─ 档案 ──────────────────┐ ┌─ 今日 ──────────────────────────────┐
│ 匿名玩家          Lv.7  │ │ 时间槽 上 下 晚  还能干活   收入 +860 │
│ 坤币 48,250             │ │ 坤城指数 1240  +2  ▇▅▃▅▅▁▅▇█▅▁▆▅▆▇ │
│ 时间 上 下 晚           │ └─────────────────────────────────────┘
│ ─────────────────────── │ ┌─ 主菜单 ───────────────────────────┐
│ 饱食 █████░░░░░░  46    │ │ >  1 查看状态   2 打工赚钱  3 商城  │
│ 血量 ████████░░░  78    │ │    4 技能系统   5 背包物品  6 任务  │
│ 精神 ███░░░░░░░░  32    │ └─────────────────────────────────────┘
└─────────────────────────┘

能做的事

  • 方向键在菜单里移动,回车进入,数字键直接快选,Q 退出
  • 左侧常驻状态栏:等级、坤币、时间槽、五条属性、资产概览、坤城指数走势
  • 顶部实时天数/季节/声望,底部按键提示条
  • 所有老页面(技能 / 背包 / 任务 / 宠物 …)自动嵌进内容面板,支持 PgUp / PgDn 翻阅

📈 股票市场(v5.1 真实化)

  • 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 返回

💬 聊天室(v5.0 重做)

手机 → 进入聊天室,独立 TUI 页面:

  • 左侧消息流:时间戳 + 发言人 + 内容,按类型上色(骗子红 / 黑产橙 / 同城紫 / 系统黄 / 你自己青)
  • 右侧在线名单:* 在线 / - 离线
  • 底部输入行:直接打字,支持中文输入法(走控制台原生回显,不是自绘字符)
  • 命令:@名字 内容 搭话、同意 / 拒绝 响应对方请求、/quit 或 Esc 退出
  • 每 3~8 秒会有人自动说话,偶尔插系统消息

首次启动的「输入名字」也改成了同样的输入行,中英文都能打。


🎮 游戏特色

核心系统

  • 任务系统:出租车、程序员、企业家等 10 种打工任务
  • 技能系统:10 项可升级技能,影响任务效率和收入
  • 商城/家具:购买家具和物品,提供被动收入加成
  • 成就系统:30 个成就(含叙事型 flavor text)
  • 合成系统:物品合成,创造更强装备

时间与难度(v4.0 起)

  • 时间槽系统 — 每天 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

⚠️ 注意事项

  1. 坤币为虚拟货币,纯属游戏设定
  2. 聊天室有骗子和黑产,谨慎社交
  3. 精神过低或过高都有猝死风险(可从存档恢复)
  4. 终端建议 ≥ 110×30;太小会自动降级布局,但会显拥挤
  5. 如果画面出现错位,多半是终端字体把符号当成了双宽 —— 换 Consolas 试试
  6. 修改器仅供娱乐,请先备份存档

祝您打工愉快,早日成为坤城打工皇帝!

About

无聊写的

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages