CUITXKX 是一个基于 C 语言开发的简约、模块化 MUD (Multi-User Dungeon) 游戏引擎骨架。它旨在为文字冒险游戏开发者提供一个坚实的基础,强调代码的可读性、扩展性以及现代化的构建流程。
- 模块化设计:逻辑、数据、解析器完全分离,方便扩展房间与 NPC。
- 实时属性系统:基于指针偏移的动态攻击/防御计算,而非死板的数值累加。
- 动态状态看板:内置 ANSI 彩色进度条,实时展示气血 (HP)、内力 (MP) 与精神 (SP)。
- 全域检视指令:支持全方位的物品检视逻辑,可透视背包及身体穿戴物。
- CMake 构建:支持标准 CMake 工作流,轻松跨平台。
look:观察当前环境,高亮显示出口与周边的 NPC。go [方向]:在江湖中穿梭(支持:东、西、南、北、上、下)。talk [ID]:与 NPC 进行互动对话。see self:召唤“江湖档案簿”,查看彩色属性条、装备位及实时战力。get/wear [ID]:物理移动物品,实现从房间到背包、从背包到身体的流转。check [ID]:深入检视背包或身上物品的详细描述与附加属性。help [指令]:内置详细的中文帮助手册。
确保你的系统已安装:
- GCC (或 Clang)
- CMake (3.10+)
- Make
mkdir build
cd build
cmake ..
make./game.
├── CMakeLists.txt # 顶层 CMake 配置文件
├── inc/ # 头文件目录 (.h)
│ ├── parser.h # 指令解析器定义
│ ├── room.h # 房间与 NPC 数据结构
│ ├── item.h # 物品与装备定义
│ ├── player.h # 玩家属性与计算逻辑
│ └── util.h # 工具宏(如颜色控制、进度条)
├── src/ # 源码目录 (.c)
│ ├── main.c # 游戏主循环入口
│ ├── parser.c # 指令逻辑与 UI 渲染
│ ├── room.c # 房间实例定义
│ ├── item.c # 物品数据初始化
│ └── player.c # 玩家动态逻辑(属性计算、背包操作)
└── text/ # 数据与文本资源
├── room_spawn.h # 初始场景描述
├── weapon_desc.h # 武器类详细描述
└── con_desc.h # 消耗品类详细描述
本项目遵循 Teaching-First 原则。
- 在
text/weapon_desc.h中定义描述宏。 - 在
item.c中初始化item_t结构体实例,配置其攻击力。 - 在
inc/item.h中使用extern导出该实例。 - 将该指针放入
room.c的房间列表中,玩家即可在游戏中捡起并穿戴。
Tip
提示:在 Linux 下运行效果最佳,建议使用支持 ANSI 颜色的终端(如 GNOME Terminal, Alacritty 等)。
Important
指针安全:本项目通过 item_t **slot 进行二级指针操作,确保装备替换时内存状态的一致性,避免物品丢失。