提示
本页面是关于官方游戏的词条。
概述
- 游戏名称:弈局残响
- 制作方:暮雨
- 发行日期:2026年7月24日
- 运行平台:Windows
- 游戏类型:单机策略围棋文字解谜游戏
- 售价:免费
《弈局残响》是绒花计划新作的第一部官方游戏,由暮雨制作,运行平台为Windows。游戏故事线承接莲生玉宇,讲述的是凤凰在黄泉棋境中的故事。该游戏开源且免费。
游戏系统
架构
《弈局残响》采用Python与Pygame开发,依赖PyInstaller打包为.exe文件。代码主要由 main.py、go_board.py、narrative.py、renderer.py、data.py、effects.py、effect_executor.py、audio_manager.py 八个模块构成。游戏以状态机驱动,主要状态流转为:TUTORIAL → TITLE → PLAYING → FINALE_CHOICE → (SACRIFICE_MODE 或直接) → ENDING。
围棋规则
本游戏在传统围棋的基础上进行了一定的简化和变通:
- 棋盘:固定 13×13 路微缩棋盘,设九星位((3,3)、(3,9)、(9,3)、(9,9)、(6,6)),无座子制。
- 先行方:玩家执白先行(承自更古老的围棋规则),象征凤凰之身份——秩序与天衡的守护者。
- 气与提子:实现标准围棋气数计算与提子逻辑,包括棋串(group)的识别与整体提走。
- 禁入点(自杀手):落子后己方棋串无气且未提走对方棋子时,判定为非法,撤销落子。
- 同形重复(Ko):记录上一手棋盘状态,禁止落子后棋盘状态与上一手完全相同,防止打劫循环。
- 气数祝福(Blessing):剧情节点赋予的特殊状态,下一手落子可越死生之界——即使落子位置形成自杀形(0 口气)也允许落子。祝福在下次落子后自动消耗,且仅对白棋生效。
AI行为逻辑
AI执黑,在游戏中扮演泽代的幻象。采用非阻塞延迟落子(is_ai_turn_pending + ai_action_time),玩家落子后上锁回合,AI在 0.4~1.2 秒后响应。AI策略随棋局阶段动态变化:
| 阶段 | 手数范围 | 行为模式 |
|---|---|---|
| 开局期 | 第 1~24 手 | 在玩家落子周围 8 邻域寻找空位落子 |
| 镜像期 | 第 25~40 手 | 以天元为中心镜像模仿玩家落子(中心对称) |
| 侵蚀期 | 第 41~48 手 | 主动收紧白棋气数,优先选择 2~4 口气棋串的气位落子,为终局献祭制造机会 |
AI设有兜底机制:若计算出的落子点为自杀手导致 place_stone 失败,则遍历全盘寻找合法空位落子,绝不跳过AI回合,符合决斗的设定。
黄泉侵蚀机制
第41~48手为“黄泉侵蚀”阶段,每次AI落子后触发 apply_curse_effect:
- 气之诅咒:在白棋棋串的气位上凭空落下 2~4 颗黑子(不增加
move_counter),压缩白棋生存空间。 - 诅咒棋子标记:凭空落下的黑子标记为
is_curse=True,以红色脉冲光晕渲染,区别于正常落子。 - 视觉强化:画面边缘覆盖暗红色遮罩(vignette),侵蚀程度随手数递增(41手最弱,48手最强);每次诅咒触发屏幕震动(shake)与水波纹特效。
- 安全校验:诅咒落子前检查黑子是否自杀、是否提前提走白子,若会则跳过该位置。
献祭系统
第 49 手触发终局抉择后,若玩家选择“主动弃子”(选项3),将进入献祭系统(Sacrifice Mode):
- 献祭条件:落子位置需与己方棋子相邻,且落子后己方棋串被提走(真正的“断大龙献祭”)。
- 献祭落子:使用
place_sacrifice_stone方法,跳过气数祝福,直接执行落子 → 提对方死子 → 提己方死子(献祭核心)。 - 视觉引导:献祭模式下,有效献祭位置以紫色脉冲高亮显示,提示玩家选择。
- 保底机制:若棋盘上无自然献祭目标,
force_sacrifice_opportunity强制构造献祭场景(两种策略:利用现有棋串收气,或在空旷4×3区域直接构造献祭布局)。
灵体效果系统
剧情选择通过 SpiritEffect 与 EffectExecutor 执行效果:
| 效果类型 | 说明 |
|---|---|
LIBERTY_BLESSING | 气数祝福:下一手落子不受死活之缚 |
RANDOM_FRIENDLY | 随机友军:在随机合法位置落己方子 |
FRIENDLY_STONE / ENEMY_STONE | 在指定位置落己方/敌方子 |
REMOVE_STONE | 移除指定位置棋子 |
LIBERTY_CURSE | 气之诅咒(预留接口,暂未实装) |
音频系统
- BGM:两首原创曲目——《星移》(标题界面)、《侵蚀蔓延》(游戏中),循环播放,音量可调(默认 50%)。
- SFX:三种音效——落子音(
place.ogg)、提子音(capture.ogg)、弹窗展开音(popup.ogg),音量可调(默认 80%)。 - 音效触发规则:
popup音效仅在narrative.check_story_trigger返回 True 且should_play_popup_sound()为 True 时播放,不在普通落子或提子逻辑中调用。
界面与操作
- 操作方式:鼠标点击棋盘交叉点落子;主键盘数字键 1-4 选择剧情选项;
R键回到标题;Esc键退出;S 键进入设置界面。 - UI 面板:左上角显示当前步数(
N/49);右上角显示当前执棋者(黑/白棋子图标);祝福状态时显示★ 祝佑可用。 - 濒死棋子 Tooltip:鼠标悬停于濒死棋子(1 口气)上方时,显示该棋子的台词气泡。
- 设置界面:方向键选择BGM与SFX之音量,左右键调整(步进 10%),
Esc返回。
游戏剧情
剧透提示
以下内容包含游戏剧情,请自行决定是否继续阅读。
世界观背景
《弈局残响》是第一款官方游戏,完全依照ROSA系统规范词条制作。游戏以黄泉棋境为舞台,一个由水墨宣纸构成的异空间,玩家扮演的凤凰在此与AI对手泽代展开一场超越生死的对弈。棋局之中,黄泉之力不断侵蚀,常态逐渐被打破,每一步落子都在揭示千年前的真相。
剧情节点(固定步数触发)
| 触发手数 | 节点标题 | 剧情内容 | 选择分支 |
|---|---|---|---|
| 第 1 手 | 超然的假象 | 屏幕渐亮,水墨棋盘。凤凰的独白:”……余见灰烬,以为不触则不损。“ | 开始对弈(获得气数祝福) |
| 第 15 手 | 缺席的证明 | 棋盘上出现一颗无法被轻易提掉的死棋。揭示德斯特星的毁灭是凤凰缺席的证明——隐退不是超然,只是错过了最惨烈的坍塌。 | ① 承认自己的懦弱 ② 诅咒自己的无情(均获得气数祝福) |
| 第 25 手 | 镜像的裂痕 | 黑棋开始模仿玩家的落子轨迹。揭示泽代变成石像的真相——“我执伤痕”的真正含义,泽代替凤凰承受了因果,而凤凰选择了涅槃逃离。 | ① 直面泽代的镜像 ② 陷入疯狂的自责(均获得气数祝福) |
| 第 40 手 | 清算的降临 | 黄泉棋境的宣纸开始撕裂、燃烧。凤凰看到了自己如果不逃避本该迎来的结局——和泽代一样,化为死物。恐惧消散,转为平静的绝望。 | 迎接最终的清算(获得气数祝福) |
| 第 49 手 | 终局 | 四十九手已尽,棋盘黑白交错如支离破碎的记忆。黄泉棋境边界坍缩,泽代的声音响起:“这一手,由你决定。“ | ① 交白卷 ② 负隅顽抗 ③ 主动弃子 |
真相碎片
游戏共设 3 块真相碎片,分别在第 15、25、40 手收集。碎片数量影响结局文本的附加内容:
- 第 15 手:缺席的证明——揭示凤凰的隐退本质是懦弱,错过了德斯特星的毁灭(末日灾变)。
- 第 25 手:镜像的裂痕——揭示泽代与凤凰的关系,“我执伤痕”的真正含义。
- 第 40 手:清算的降临——揭示凤凰本该迎来的结局,直面逃避的后果。
三种结局
结局一:交白卷(坏结局)
玩家放下棋子,黄泉棋境宣纸合拢,水墨褪去。凤凰忘记了德斯特星、泽代与自己,成为黄泉中最安静的幽灵——不曾存在,也不曾消亡。
- 收集 ≥3 碎片:附加”你曾触碰到真相的边缘,却选择松手。那些碎片随你一同沉入虚无。”
- 收集 >0 碎片:附加”零星的残响试图挽留你,但你已不再聆听。“
结局二:负隅顽抗(普通结局)
玩家拼命提子,棋盘碎石飞溅,但每提一颗棋盘就崩裂一分。黄泉棋境无法承受暴力,玩家手指开始石化,手臂化为灰烬。终于明白这盘棋从来不是用来赢的——泽代曾试图告诉这个道理。
- 收集 ≥3 碎片:附加”你知道真相,却仍选择以力破局。真相成为你最后的嘲弄。”
- 收集 >0 碎片:附加”碎片在崩裂的棋盘中四散,你来不及拾起。“
结局三:主动弃子(真结局)
玩家找到那口气——最后一口气,落子断开它。棋串被提走的瞬间没有恐惧,侵蚀正从身上脱离。被提走的棋子化作一缕光穿透黄泉棋境屏障,粘土世界某处星辰重新亮起,泽代的石像上出现一道裂痕。玩家不再是对弈者,而成为棋盘上最后一颗弃子——这颗弃子改变了整盘棋的走向。
- 收集 ≥3 碎片:附加”你以完整的真相为献祭。所有的碎片,连同你自己,一同化作那一缕光。”
- 收集 >0 碎片:附加”即便真相残缺,你的弃子仍换来了一线变数。“
台词系统
游戏内置黑白双方台词池,按顺序循环取用:
- 黑方台词(15 句):如“灰烬之中,犹存温热”、“子未尝见吾真”、“熵增惟一,真者无欺”、“落子无悔,生死由命”、“余待人归”等,体现泽代的沧桑与宿命感。
- 白方台词(15 句):如“光驻此间”、“尔闻乎?此风声也”、“时如寒子”、“吾见汝影”等,体现凤凰的孤寂与追忆。
其他资料
视觉特效
- 黄泉侵蚀滤镜:第 41~48 手期间,画面边缘覆盖暗红色遮罩,中心透明,强度随手数递增。
- 屏幕震动:诅咒触发时屏幕随机偏移数像素,持续约 200ms。
- 水波纹:诅咒棋子落下位置生成红色水波纹扩散动画(持续 300ms)。
- 棋子光晕:被祝福棋子显示金色光晕;诅咒棋子显示红色脉冲光晕;濒死棋子显示红色濒死光晕。
- 结局差异化视觉:坏结局灰暗褪色脉动;普通结局暗红裂纹崩裂;真结局金色光芒从中心扩散,献祭位置光点闪烁。
结局画面
结局画面采用逐行浮现动画(每字符 40ms,行间延迟 200ms),标题根据结局类型变化:
- 坏结局:棋局终了 · 沉寂
- 普通结局:棋局终了 · 崩裂
- 真结局:棋局终了 · 余响
素材来源
| 类别 | 名称 | 来源/协议 |
|---|---|---|
| 字体 | 阿里巴巴普惠体 | 阿里巴巴集团,免费可商用 |
| 音效 | place.ogg / capture.ogg / popup.ogg | 爱给网”飓风影视服务”,CCE0(等同 CC0) |
| 游戏引擎 | Pygame | LGPL 2.1 许可证 |
| 代码 | 全部 .py 文件 | MIT 协议(AI 辅助生成部分归作者所有) |
| BGM | bgm_title.ogg / bgm.ogg | CC BY-NC-ND 4.0(禁止商用、禁止修改后二次发布) |
技术规格
- 开发语言:Python
- 游戏库:Pygame
- 打包工具:PyInstaller(生成
_internal文件夹 +.exe) - 窗口分辨率:800×800 像素
- 棋盘边距:90 像素 -帧率:60 FPS
- 日志系统:输出至
%LOCALAPPDATA%\Yijucanxiang_Logs\game.log
版本历史
- v1.0.2(当前版本):稳定正式版。
- v1.0.1:完善加载画面与引导教程。
- v1.0.0:首个测试版。实现完整三幕剧剧情、黄泉侵蚀机制、三种结局、献祭系统、音频管理、设置界面。
资源
- GitHub:https://github.com/MUYU46548
- 哔哩哔哩:https://space.bilibili.com/33375649
- 爱发电:https://www.ifdian.net/a/muyu46548B
- 源码协议:MIT License(代码可自由使用/修改/商用,需保留版权署名)
- 版权声明:© 2026 暮雨. All Rights Reserved.