# 神岛代码天梯S1启航 **Repository Path**: yuzu-46/codeLadder-s1 ## Basic Information - **Project Name**: 神岛代码天梯S1启航 - **Description**: 神岛代码天梯S1启航 参赛仓库 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-30 - **Last Updated**: 2026-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CodeLadder-S1 CodeLadder-S1 是一个神奇代码岛项目,使用 ArenaPro Cli 开发。 **许可证:[MIT](./LICENSE) | 作者:Yuzu-46 (柚子 46)** ## 项目概述 本项目是为参加神岛代码天梯 S1 而开发的编程闯关游戏。 比赛信息:https://pd.qq.com/s/6yben6q5w ## 项目规范 - 本项目使用 TypeScript 开发 - 遵循 TypeScript ESLint 代码规范 - 使用 React Hooks 规范(客户端) - 统一的事件系统和单例模式 - 模块化的代码结构 - 前后端分离架构 - 遵循以下命名规范 - 遵循以下分支管理规范 - 遵循以下 Issue 规范 ### 命名规范 - 变量和函数名使用小驼峰命名法(camelCase):`playerName`, `getPlayerPosition`, `createInstanceWithDependencies` - 类名和接口名使用大驼峰命名法(PascalCase):`PlayerManager`, `IGameEntity`, `AbstractFactory` - 常量使用全大写字母加下划线(UPPER_CASE):`METADATA_KEYS`, `CACHE_TTL` - 类型定义使用大驼峰命名法(PascalCase):`FactoryConfig`, `CacheItem` - 文件夹和文件名使用小驼峰或短横线分隔(kebab-case),保持项目内统一 - 私有或内部方法使用下划线前缀:`_privateMethod`, `_internalProperty` - 静态属性和方法使用大驼峰命名法(PascalCase):`getInstance`, `DEFAULT_CONFIG` - 泛型参数通常使用单个大写字母:`T`, `U`, `K`, `V` - 单例类继承命名:`extends Singleton()` ### 分支管理规范 - `main`:主分支,用于稳定版本发布 - `dev`:开发主分支 - `docs`:文档分支 - `feature/week[n]-xxx`:功能分支,表示第 n 周的某某功能 - `fix/xxx`:修复分支 - `bugFix/xxx`:Bug 修复分支 - `release/*`:发布准备分支 - `hotfix/*`:紧急热修复分支 ### Issue 规范 - **Issue 状态标签**: - `todo`: 待办的 - 任务尚未开始 - `in-progress`: 进行的 - 任务正在处理中 - `done`: 已完成 - 任务已完成并合并到主分支 - `closed`: 已关闭 - 任务已取消或终止 ## 项目结构 使用 ArenaPro 脚手架和 AP framework 的标准结构: ``` app/ ├── client/ # 客户端代码 │ ├── src/ │ │ ├── App.tsx # 客户端应用入口 │ │ ├── framework/ # 客户端框架代码 │ │ └── play/ # 客户端游戏逻辑 │ │ ├── entity/ # 客户端实体组件 │ │ └── mgr/ # 客户端管理器 │ └── types/ # 客户端类型定义 ├── server/ # 服务端代码 │ ├── src/ │ │ ├── App.ts # 服务端应用入口 │ │ ├── framework/ # 服务端框架代码 │ │ └── play/ # 服务端游戏逻辑 │ │ ├── const/ # 服务端常量定义 │ │ ├── data/ # 服务端数据结构 │ │ ├── entity/ # 服务端实体定义 │ │ └── mgr/ # 服务端管理器 │ └── types/ # 服务端类型定义 ├── shares/ # 前后端共享代码 │ ├── App.ts # 共享应用定义 │ ├── data/ # 共享数据结构 │ └── types/ # 共享类型定义 └── i18n/ # 国际化资源 ├── res/ # 翻译资源文件 ├── types/ # 国际化类型定义 └── index.ts # 国际化入口文件 ``` ## 玩法说明 这是一个基于传送带和分拣站的物流管理游戏。玩家通过操作角色来完成各种任务: - 玩家控制角色在游戏世界中移动,可以拾取传送带上的货物 - 玩家可以将货物运输到指定的分览站进行分拣处理 - 游戏中有任务系统,玩家需要完成指定的收集任务 - 系统会记录玩家的货物收集数量、总分和任务链连续完成数 - 游戏包含效率统计面板,显示玩家的操作效率 - 游戏会追踪玩家的挂机状态,确保玩家保持活跃 ### 游戏机制详解 #### 货物系统 - 游戏中存在多种类型的货物,目前主要有 A 类(绿色)和 B 类(红色)货物 - 货物会在传送带上生成,玩家可以靠近并拾取 - 玩家每次只能携带一件货物 - 按 E 键可传送至最近的传送带货物位置 #### 分拣站系统 - 游戏中设有三种分拣站: - A 站(绿色):专门处理 A 类货物 - B 站(红色):专门处理 B 类货物 - 通用分拣站(黄色):可处理所有类型的货物 - 玩家携带货物靠近对应类型的分拣站时,按跳跃键(空格)即可进行货物分拣 - 成功分拣后,货物会被存入对应仓库,并获得相应分数 - 如果对应仓库已满(上限为 10 个),将无法继续分拣 #### 仓库系统 - 玩家拥有独立的仓库,分为 A 库和 B 库,分别存放 A 类和 B 类货物 - 每个仓库最多可容纳 10 件货物,超过容量将无法继续分拣 - 仓库达到上限后,系统会通知玩家仓库已满 #### 任务系统 - 玩家会接收到各种任务,任务类型包括: - 收集特定数量的某种类型货物(如:收集 5 个 A 类货物) - 收集多种类型货物的组合任务(如:收集 3 个 A 类和 4 个 B 类货物) - 限时任务(在规定时间内完成收集目标) - 指定分拣站任务(使用特定分拣站完成任务) - 限制错误次数任务(错误分拣次数不超过规定数量) - 完成任务可获得分数奖励,并增加任务链连续完成数 - 任务链连续完成数会影响玩家的总体效率评分 #### 评分与效率系统 - 成功分拣货物可获得基础分数 - 完成任务会有额外的奖励分数 - 任务链连续完成数越高,奖励分数越多 - 系统会统计以下效率指标: - 总操作时间:玩家操作的总时长 - 平均每分钟收集数:单位时间内的收集效率 - 当前任务链连续完成数:连续完成任务的数量 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进本项目。 ## 版权声明 本项目采用 MIT 许可证,详情请参见 [LICENSE](./LICENSE) 文件。 本项目受版权保护,虽然代码以 MIT 许可证发布,但强烈反对任何形式的抄袭行为。请在学习和使用时注重理解与创新,而非简单的复制。 作者:Yuzu-46 (柚子46)