diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..c65e71f --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,9 @@ +# 协作约定 + +- 仓库:NumberSwipe_New;正式发布分支:main。 +- 唯一微信主工程:wechat-campaign-200-r2/。修改、构建和验收以该目录为准。 +- 先读取该目录 README.md 与 release-info.json。不要从旧工作副本覆盖主版本。 +- 开工先检查 git status 与远端差异;不要覆盖其他协作者未提交的改动。新功能从最新 main 建立 codex/主题 分支,完成验证后合并。 +- 使用 npm ci 与 npm run check;提交必要源码、构建产物及 package-lock.json。发布使用 npm run package。 +- 禁止新增本机绝对路径或跨仓库依赖;资源路径相对当前模块定位。保留关卡、playOrder、上游快照和存档兼容。 +- campaign-200-r2/ 是网页来源;历史发布包与 archive/ 不代表当前微信主版本。公司原仓库不作为本仓库推送目标。 diff --git a/README.md b/README.md index 76f158d..7a34e31 100644 --- a/README.md +++ b/README.md @@ -1,104 +1,5 @@ -# NumberSwipe_New · 数字一笔画衍生项目 +# NumberSwipe_New -本仓库管理 NumberSwipe-Variants 下的衍生玩法、关卡、生成工具和设计资料。 +正式分支:main。唯一微信主工程:[wechat-campaign-200-r2](wechat-campaign-200-r2/README.md)。当前为分层反馈、音乐与流动指路主版本,版本以 [release-info.json](wechat-campaign-200-r2/release-info.json) 为准。 -## 最新微信美术版(2026-10-22) - -- 源码及微信开发者工具导入目录: [wechat-campaign-200-r2](wechat-campaign-200-r2/)。 -- 最新独立包:[明亮教具室·过关重音修复版](releases/NumberSwipe-campaign-200-r2-明亮教具室-过关重音修复版-20261022.zip)。 -- 包含明亮教具室美术、字体资源、指路表现、循环教学及庆祝效果;网页版本入口见下方。 - -## 网页版:campaign-200-r2 - -- 试玩入口:[200 关评分修订版](campaign-200-r2/index.html),下载后可直接打开。 -- 版本说明与校验方式:[最新版 README](campaign-200-r2/README.md)。 -- 关卡评分:[SCORES.html](campaign-200-r2/SCORES.html)。 -- `campaign-200`、`campaign-50` 和 `archive` 保留为历史版本及来源资料。 -- 根目录 `index.html` 是早期五玩法验证入口,最新版请使用上方入口。 - -以下保留早期玩法验证说明。 - ---- - -# 一笔路径 · 第二轮玩法验证 - -按第一轮试玩反馈,当前只保留五个入口,每个玩法8关:入门、普通、进阶、难,各两关,共40关。 - -## 开始试玩 - -双击 `index.html`。各玩法 `modes//play.html` 都是可独立运行的离线单文件,所有关卡开放。首页也可直接进入各玩法的设计评审与答案图。 - -| 入口 | 核心区别 | -|---|---| -| 方向通道 | 横线只通左右,竖线只通上下;四种拐角连接不同两条边,都可以反向经过 | -| 双色交替 | 每步蓝→橙→蓝;大格整块一步,走过后仍保留原颜色 | -| 永久墙壁 | 共边上的黑黄墙整局不变,无开关,必须绕行 | -| 步进开关门 | 只有一道门;每落一格切换开/关,必须安排到门边的步数 | -| 六边融合:双色与墙 | 六向邻接同时满足换颜色与不穿墙,进阶和难关拓宽到三行 | - -相对步差、先后链、到达窗口和路径开门已从试玩入口退出,保存在 `archive/v1/`,不参与当前生成、构建及验收。 - -## 方向图示 - -图标是通道形状,不是单向箭头: - -- `─`:左 ↔ 右。 -- `│`:上 ↔ 下。 -- `└`:上 ↔ 右。 -- `┌`:右 ↔ 下。 -- `┐`:下 ↔ 左。 -- `┘`:左 ↔ 上。 - -试玩用Canvas绘制清晰的线条通道,不依赖系统字体箭头。点击条件标签可高亮对应格。通道格不能做起点或终点,离开该格时检查进出边。 - -## 双色图示 - -蓝格带○,橙格带△;颜色为主要信息,符号辅助区分。蓝→橙→蓝是每关常驻说明。经过的格显示步号,底色仍是原来的蓝或橙;不能把已走格统一染成另一个颜色。 - -## 永久墙与步进门 - -黑黄粗线画在两格真实共边上,是永久墙,不占一个格,也不会切换。 - -步进门没有开关格,也没有钥匙: - -1. 空盘门关。 -2. 落下起点算第一格,门变开。 -3. 落下第二格门变关,第三格再开,依此交替。 -4. 移动之前用当前门状态判断能否穿过;落格后再切换。 -5. 不落格、点击按钮或原地等待不会切换;撤销按剩余路径恢复状态。 - -盘面门口显示“开/关”,条件栏同时显示“再落一格就关/开”。开门是两段绿色边框之间的缺口,关门是连续阻挡。 - -## 操作与设计资料 - -点按或拖动相邻格追加,松手可继续;点已走格回退,也可撤销和重开。固定数字与通道条件画错会标红,但允许保留路径再修正;永久墙、关闭门和同色移动直接阻止追加。指路不会沿错误前缀继续。 - -每个文件夹含 `levels.json`、独立 `rules.mjs` / `ui.mjs`、离线 `play.html`、`DESIGN.html` / `DESIGN.md` / `design.json`,以及8张原始盘面和8张作者解SVG。 - -设计资料记录作者解、关键分叉、诱惑路线及每项新机制解除后的完整反例。试玩包只有规则和原始关卡,运行时求解,不读取设计资料答案。进度按玩法分别存档。 - -## 构建与检查 - -Node.js 22+,本次使用24.21.0;无需安装第三方依赖。 - -```powershell -node --test tests/*.test.mjs -node tools/validate.mjs -node tools/build.mjs -node tools/design-pages.mjs -node tools/isolation.mjs -``` - -`node tools/generate.mjs` 使用固定种子,会覆盖当前五个玩法的关卡与设计资料;重生成后必须重新构建、检查。历史四个玩法不会重新加入入口。 - -当前40/40关完整有序解唯一,每项通道要求、颜色机制、永久墙及步进门逐项必要;解除任意一项均至少两解。除教学起点外,辅助数字逐项检查必要性。 - -27项规则与离线页面脚本测试通过。浏览器工具禁止file://地址,因此尚未完成实际浏览器像素与真机触感验收;DOM/Canvas测试不能替代这些检查。难度仍需新玩家校准。 - -原NumberSwipe项目保持只读,全部修改在同级NumberSwipe-Variants目录。原项目91个受检查文件的内容及清单保持一致,详见 `reports/ISOLATION.md`。 - -## 对比试玩 - -建议先玩方向通道、双色交替,再玩永久墙与步进门,最后玩六边融合。各玩法按四档顺序推进;观察是否能只看盘面说明就复述规则。 - -在“记录本关体验”填口述推理,导出本关JSON。观察者用 `reports/playtest-template.csv` 补充第一次错误、回退、提示、思考时间和边界可读性。尤其比较墙与门是否产生不同决策,以及六边融合是否仍主要靠顺手试画。 +克隆整个仓库后进入主工程运行 npm ci、npm run check。微信开发者工具可导入仓库根目录或主工程。协作前读取 [AGENTS.md](AGENTS.md)。发布包位于 releases/;网页来源和历史版本保留在 campaign-200-r2、campaign-200、campaign-50、archive。 diff --git a/project.config.json b/project.config.json index 49f1f78..3a092a6 100644 --- a/project.config.json +++ b/project.config.json @@ -23,5 +23,6 @@ "appid": "wx7a14d0d70b5dd13d", "editorSetting": {}, "miniprogramRoot": "wechat-campaign-200-r2/", - "projectname": "NumberSwipe-campaign-200-r2" + "projectname": "NumberSwipe_New-main", + "description": "正式主版本:分层反馈、音乐与流动指路" } diff --git a/releases/NumberSwipe-main-20261023.zip b/releases/NumberSwipe-main-20261023.zip new file mode 100644 index 0000000..cc1eb28 Binary files /dev/null and b/releases/NumberSwipe-main-20261023.zip differ diff --git a/wechat-campaign-200-r2/.gitignore b/wechat-campaign-200-r2/.gitignore index 75ce323..1c96078 100644 --- a/wechat-campaign-200-r2/.gitignore +++ b/wechat-campaign-200-r2/.gitignore @@ -1,2 +1,5 @@ .font-sources/ .font-tools/ +node_modules/ +*.log +project.private.config.json diff --git a/wechat-campaign-200-r2/HANDOFF.md b/wechat-campaign-200-r2/HANDOFF.md index 3761edf..a0491e6 100644 --- a/wechat-campaign-200-r2/HANDOFF.md +++ b/wechat-campaign-200-r2/HANDOFF.md @@ -1,155 +1,23 @@ -# 当前交接补充(2026-10-22) +# NumberSwipe 正式主版本 -主版本权威目录:`G:\项目\NumberSwipe-Variants\wechat-campaign-200-r2`。当前包:`releases/NumberSwipe-campaign-200-r2-明亮教具室-续玩选关教学流畅版-20261022.zip`;版本标记:`2026-10-22-resume-chapter-lessons`。以下2026-10-20的“两边同步”“最新包”与教学速度描述仅作历史记录,不覆盖本段及当前README。 +本目录是唯一正式微信主工程,属于 NumberSwipe_New 仓库 main 分支。2026-10-23 已将分层反馈、音乐与流动指路强化版提升为主版本。版本以 release-info.json 为准。 -本轮改动:`src/resume.mjs`处理续玩选关与路线校验;`src/level-select.mjs`处理章节布局和三种通关状态;`build.mjs`在适配层注入启动/退出存档,保持四份上游快照原样;`src/main.mjs`缓存教学示范棋盘和指路静态界面;`src/hints.mjs`与棋盘适配缓存提示几何。教程缓存不得影响玩家状态,输入、尺寸、规则页变化必须使对应缓存失效。后台返回也要进入未完成关卡,不停在选关页。 +## 开发与验收 -存档键 `variant:campaign-200-r2:v1:resume` 不取代原通关键。重玩已通关关卡不能覆盖未完成进度。源码及交付版属于main,勿覆盖 `G:\项目\NumberSwipe\.worktrees\layered-feedback`。工作暂存目录 `G:\项目\NumberSwipe\wechat-campaign-200-r2-resume-select` 只用于本轮构建验证。 - -验收:50项模块测试与200关模拟通关;四档选关按钮边界;浏览器200关填色采样;教学平均绘制1.63→0.72ms/帧、357/360帧复用。真机性能尚未确认。按README所列命令构建/验证。 - ---- - -# NumberSwipe 主程交接 - -更新时间:2026-10-20(北京时间)。面向接任主程;先读本文件、同目录 README.md,再查源码。当前任务已完成,没有正在等待执行的开发指令;下一步根据用户真机反馈继续调整。 - -## 1. 当前版本和目录 - -| 用途 | 目录或入口 | -| --- | --- | -| 本会话微信开发工作副本 | `G:\项目\NumberSwipe\wechat-campaign-200-r2` | -| 已同步的微信项目副本 | `G:\项目\NumberSwipe-Variants\wechat-campaign-200-r2` | -| 200关评分修订版网页源项目 | `G:\项目\NumberSwipe-Variants\campaign-200-r2` | -| 微信导入入口 | 微信项目中的 `project.config.json`,运行产物为 `game.js` | -| 网页试玩入口 | `G:\项目\NumberSwipe-Variants\campaign-200-r2\index.html` | -| 旧版,避免误改 | `NumberSwipe-Variants\campaign-200`、`campaign-50`(实际53关) | - -两个微信目录不是自动同步关系。本会话在 NumberSwipe 下的微信子项目修改、验证后,再复制指定修改文件到 Variants 对应目录。继续开发前对比两边的源码和时间,避免覆盖其他会话的新改动。原 NumberSwipe 其他模式、旧网页 DEMO 不在本次修改范围。 - -微信版关卡来源:`scored-2026-10-15-r2`,200关、20章,每章10关。微信适配版本标记:`2026-10-19-animated-lessons-one-second`。不得从同级 `wechat` 或其他模式的微信目录混入关卡。 - -本次交接核对时,两边 `game.js` 及下述最新压缩包内的 `game.js` SHA-256 相同: - -```text -4069ac9b0f38d42196a544f008988808c227653abb0bdb8e326aa7adcfb861a5 -``` - -这只是交接时点的快照;之后有新改动时应重新核对。 - -## 2. 最新交付与用户要求 - -最新微信包: - -`G:\项目\NumberSwipe-Variants\releases\NumberSwipe-campaign-200-r2-高亮指路-保留玩家填色-20261020.zip` - -同名副本也在 `G:\项目\NumberSwipe\releases`。更早的“动画教学”包较慢,不能当最新版。压缩包已经构建,导入微信开发者工具后重新编译并生成真机预览;旧二维码可能加载旧代码。本会话未上传或发布小游戏。 - -最新两项用户要求已实施: - -1. 新机制说明必须使用真实游戏关卡画面,文案与动画联合解释,不再只有文字。 -2. 用户认为逐格停顿效率低,要求整段约1秒、连续流畅;当前 `duration:1000` 指整段,不是每格1秒。结束停留,点击“重播”再播放。 - -不要恢复此前每拍1300毫秒、移动450毫秒后停顿的实现,也不要未经用户要求放慢动画。错误反馈和门状态变化仍保留;是否足够看清需真机反馈。 - -目录里还包含通关操作栏修订:完成后底部由“下一关”独占,替换重开/撤销/指路;最后一关为“返回选关”。反馈、操作栏与棋盘分区,出现按钮不能挪动或遮盖棋盘。该修订见当前源码、README 和 validation,不要用旧文件覆盖。 - -## 3. 源码定位及修改方式 - -| 文件 | 职责 | -| --- | --- | -| `src/main.mjs` | 微信 Canvas 页面、触摸路由、规则面板、演示布局、动画绘制、前后台处理 | -| `src/copy.mjs` | 最新十类教学及组合规则文案;保留具体动作、奇偶例子,不退回旧网页术语 | -| `src/hints.mjs` | 分段提示判定、生命周期和独立透明层光效 | -| `src/lessons.mjs` | 按当前机制选择真实教学关、通过求解器取得演示路线、错误例子、回退、1秒时间轴 | -| `src/platform.mjs` | wx 到上游 UI 所需接口的适配、PACK、存储和 Canvas | -| `src/audio.mjs` | 微信原生音频播放器,静音、后台停止、试听及错误诊断 | -| `audio-assets.mjs` | 生成本地 WAV 资源 | -| `build.mjs` | esbuild 打包,注入微信适配及演示绘制接口 | -| `src/upstream/*` | 网页 r2 的四个原始快照;来源及哈希见 source-manifest.json | - -保持 `src/upstream/levels.json`、`rules.mjs`、`ui.mjs`、`audio.mjs` 快照原样。微信改动放适配层,必要的上游 UI 替换通过 build.mjs 注入;不要手工修改压缩后的 game.js。 - -教学实现细节: - -- 共十类:基础、墙、横通道、竖通道、拐角、双色、奇偶、节奏门、六边形、无起点。 -- 首次教学及手动规则页都使用实际教学关。组合关按出现的机制拆段,不展示当前正式关的完整答案。 -- 演示复用上游盘面绘制;build.mjs 导出 `renderLesson`,暂存并恢复绘制状态,用独立 Canvas 输出。`previewOnly` 阻止教学绘制更新实际游戏 UI、报错、操作按钮等。 -- 墙/同色显示红色阻挡线,方向/奇偶显示错误及回退。门展示切换、穿过保持开启、撤销穿门。 -- `lessonFrame` 使用连续进度,main.mjs 绘制移动光圈和连接段;结束保持结果。翻段/重播重新计时;后台停止绘制,返回重新演示。 -- 不修改玩家路线、存档、提示次数、音效记录;不要为了教学调用实际玩家输入函数。 -- 只读诊断:`GameGlobal.numberSwipeR2.snapshot()`、`.buttons()`。可查真实游戏状态、音频状态及当前教学。 - -## 4. 已确认的玩法与表现约束 - -- 每格仅走一次,共边移动、不可斜走;固定数字表示第几步到达。无计时、体力和分数。 -- 松手续画。拖动时只有回到紧邻的上一格才撤销一步,碰其他已走格不撤销;撤销按钮退一步,重开清空。 -- 方向格是明确的通道:lr 横向、du 纵向,ru/dr/dl/lu 指定两侧拐角,可反向通过,不能作为端点。图标居中固定,线从图标穿过,正确亮起、错误变红,均不位移。 -- 双色仅用蓝/橙区分,连续两格必须异色。不要恢复三角/圆形叠加标识;内部 category 名字仍可能为 circle/triangle,不等于需要画形状。 -- 大格/异形整块一步,不画内部拼接缝;双色、奇偶不要求必须带大格。 -- 奇偶按访问步数判定。避免同一格叠加奇偶和方向图标。 -- 永久墙不能通过。节奏门空盘关闭,起点算一步,每进入一格切换一次;移动前检查门状态。合法穿过后保持开启,撤销穿门那一步后恢复切换,重开重置。 -- 六边形共边六邻接,可以混合其他已支持机制;关卡应宽向展开,避免全部是纵向蛇形单路线。 -- 指路现为高对比分段提示(白色/深色双描边与流动光点),只展示最早未完成的一段。节点为起点、数字点、方向点、奇偶点、终点,按正确解排序;正确到达段末后消失,再点才提示下一段。暂不接广告。提示使用独立透明 hintCanvas,清空或擦除只影响提示层;已走格多边形和实际连接段让出给原棋盘,保留整格填色及数字、方向反馈。不要在主 Canvas 上使用 destination-out 清除玩家绘制。 -- 不恢复已被用户否决的相对步差、先后链、到达窗口、开关钥匙开门。保留的是永久墙和节奏门。 -- 玩法可以混合,但新机制首次出现需极简教学;用户不需要专门的大格教学。 -- 沿用原项目白底、紫色路线及既有 UI;不要重新发明一套皮肤。 - -音效:普通移动沿当前音色每步升一个半音;撤销/重开后步数决定音高。其他五类反馈音保持既有听感。微信使用随包41个 WAV(36个移动音+五类反馈)及 `wx.createInnerAudioContext`,不依赖浏览器振荡器。静音/进入后台时停止播放和延迟音效。 - -## 5. 构建、测试与实际验证边界 - -在当前微信项目目录执行: +需要 Node.js 22+、npm。首次克隆后在本目录运行: ```powershell -Set-Location 'G:\项目\NumberSwipe\wechat-campaign-200-r2' -node build.mjs -node --test hints.test.mjs lessons.test.mjs audio-copy.test.mjs -node smoke.mjs +npm ci +npm run check +npm run package ``` -本机 Node:`C:\Program Files\nodejs\node.exe`。build.mjs 当前硬编码 esbuild 位置为 `G:/项目/NumberSwipe/modes/01-number-stroke/node_modules/esbuild/lib/main.js`,迁移电脑需调整依赖路径。播放器无第三方运行时依赖。 +微信开发者工具导入本目录,或导入仓库根目录(根配置已指向这里)。构建使用本目录锁定的 esbuild,无需原 NumberSwipe 目录。烟测使用仓库内相邻 campaign-200-r2 的上游文件及快照哈希;移动整个仓库后仍有效。字体、音效、音乐与上游快照均随仓库保存。现成字体可直接构建;仅重新制作字体时另需 Python fonttools 和字体原始文件(见 build-fonts.py)。 -已报告通过: +## 协作 -- lessons.test.mjs:12项,包括十类教学、200关机制映射及1秒连续时间轴/结束停留。 -- audio-copy.test.mjs:6项,原生音频、静音/后台、音高、资源和文案。 -- smoke.mjs:实际 game.js 在模拟 wx/Canvas 中的200关唯一解、触摸通关、撤销/重开/提示、存档和前后台;教学状态隔离与窄屏分页。 -- 当前 validation.json 另记录通关按钮布局及4种手机尺寸检查。该内容可能来自其他会话的更新,以当前文件为准。 +从最新 main 创建 codex/主题 分支,在本目录修改、构建、测试,通过评审后合并 main。每次发布更新 release-info.json,运行打包命令;输出 ../releases/ 下对应版本名。不要把独立旧副本当作主目录,不要将本机绝对路径或跨仓库依赖写入脚本。网页 campaign-200-r2 是关卡来源及历史网页版本,不是本微信主版本。 -不要把 Node 模拟器、假 Canvas 和边界断言当作真实屏幕截图或真机验收。本会话未验证手机实际帧率、1秒内的错误提示可读性、真实字体布局及音效听感;需要开发者工具和手机预览确认。文档交接本身未重新运行全套游戏测试。 +当前版本保留200关、原存档兼容、分层音效、BGM、振动设置、三列选关及流动指路。真机听感、振动与性能仍需微信预览验收。 -smoke.mjs 会校验上游路径和快照哈希,并覆写 validation.json。移到新机器时缺少上游目录会导致来源检查失败,不能直接删除该检查掩盖问题。 - -## 6. 长线关卡设计背景(调整关卡时才需展开) - -用户反馈原200关重复、后半程太简单、最大18格、六边形多为单调竖向路径。r2 是评分后重排并重制的版本,最大36格,不能误把旧200关当当前数据。评分仅是推理负担代理,不能当真人难度或通关率。 - -用户主观锚点对应旧版编号: - -- 需要提示/否则思考很久:73、76、77、80、85、88、144。 -- 略难、应在100关以后经常出现:149、158;比需要提示简单明显。 -- 喜欢但不能过多:无固定起点的111(12-1)、136(14-6)。此前端口17851/17581口述有歧义,用户明确确认关卡号码和无起点特征;不要据端口推翻反馈。 - -r2 无起点关序号为45、65、105、145、185。网页设计资料、评分表、关卡映射及作者证明在 `campaign-200-r2` 的 DESIGN/SCORES/DIFFICULTY 页面、design.json 和 reports 下。作者解不应打包给玩家;运行判定用规则求解。 - -此前局域网约定:17850=53关,17851=旧200关,17852=r2评分修订200关。服务可能已停止或换址,先查实际监听和返回版本,不能凭端口断言当前内容。微信包与这些网页服务相互独立。 - -## 7. 接手时的行动顺序与注意事项 - -1. 确认用户在修改微信版还是网页版,阅读本文件及当前 README,核对两个微信目录是否仍一致。 -2. 读取当前源码及 Git 状态;原工作区存在其他会话未提交文件,不清理、不回滚。用户已授权的范围内直接完成工作,不重复请求确认。 -3. 若继续调教学,先看 lessons.mjs/main.mjs/copy.mjs,再看 build.mjs 的 renderLesson 注入。保持上游快照、200关排列和存档键 `variant:campaign-200-r2:v1`。 -4. 修改后构建和运行与改动相关的检查,再同步微信副本、生成带新版本名的独立包。不要默认两个目录有自动镜像。 -5. 本环境 Variants 目录不在默认可写根内,写入需通过工具申请 require_escalated;读取允许。不要绕过权限。 - -当前 package.ps1 可生成仅含运行必需文件的独立导入包。重新打包时需明确包含 game.js/game.json/project.config.json/audio 和所需开发文件,排除作者解、研究资料及无关项目;按 project.config.json 的上传忽略配置复核资源。上传发布前沿用用户当前授权范围,不假定本交接授予上传授权。 - -给新会话的起始消息可直接用: - -> 请接任 NumberSwipe 主程,先读取 G:\项目\NumberSwipe\wechat-campaign-200-r2\HANDOFF.md 和同目录 README.md,核对当前文件及另一个微信副本后,再按我的新需求继续。不要覆盖其他会话更新,也不要重新生成或打乱当前200关。 - - - - - +提升前基线:Git 标签 backup/pre-layered-main-20261023。历史开发记录见 OPTIMIZATION.md,其中独立实验版描述仅适用于提升前。 diff --git a/wechat-campaign-200-r2/OPTIMIZATION.md b/wechat-campaign-200-r2/OPTIMIZATION.md new file mode 100644 index 0000000..2c69d99 --- /dev/null +++ b/wechat-campaign-200-r2/OPTIMIZATION.md @@ -0,0 +1,73 @@ +## 本轮更新:音乐与流动指路(2026-10-22) + +- 每页15关,3列×5行(末页5关左对齐);完成数字后绘制圆润勾。320×568仍保持44px以上格子。 +- 选关按钮与指路启用分别播放新短音;选关、游戏各有一首原创16秒稀疏木琴循环,低音量独立播放器,不占用四路反馈池。 +- 游戏右上角统一进入设置,只有音乐、音效、振动三个独立存储开关;旧减少动态存储不再限制本版表现。 +- 数字节点经实际操作测试确认:小幅回弹、中震、checkpoint-N音;终点只用complete和弦,无节点叠加。方向格步号缩小保留线路。 +- 指路箭头沿完整分段保留位置;前进一步旧箭头180ms冲向终点,新箭头65px/s出发;不按剩余路线长度重置相位。 +- 后台、音频中断停止音乐和反馈;恢复后按场景播放。原版声音资源及上一版包保留。 + +验证:72项模块测试、200关模拟触摸通过;浏览器375宽与320×568排版、200/200关提示前后及撤销重画的玩家填色像素检查通过。iPhone/Android真机音量、触觉及帧率待验收。 + +当前独立包:`NumberSwipe-campaign-200-r2-分层反馈二版-音乐与流动指路-20261022.zip`。主版与历史包保持原样。 + +# 分层反馈独立版验收记录(2026-10-22) + +当前主版本保持不变。本目录是独立开发副本,版本标记为 `experimental-layered-feedback`,基于 `2026-10-22-resume-chapter-lessons`。不回写 Variants 主目录,也不覆盖其他工作树及历史发布包。 + +## 使用与验证 + +解压独立包后导入微信开发者工具,重新编译并生成预览二维码。源代码目录运行: + +```powershell +node build.mjs +node --test feedback.test.mjs resume-select.test.mjs bright-classroom.test.mjs hints.test.mjs lessons.test.mjs audio-copy.test.mjs +node smoke.mjs +./package.ps1 +``` + +浏览器验收页: + +```powershell +$env:NUMBERSWIPE_QA_PORT='17861' +node qa/serve.mjs +``` + +打开 `http://127.0.0.1:17861/qa/bright-classroom.html`,使用“反馈对照”选择原版/强化版。此页不发起触觉;原音效保存在 `audio-original/`,哈希记录在 `qa/original-audio-sha256.json`。正式设置只增加“振动”开关,没有强度滑杆。 + +## 实现与参数 + +| 内容 | 实现 | 验收依据 | +| --- | --- | --- | +| 实际操作事件 | `layered-feedback-build.mjs` 在追加、回退、错误及完成处注入事件;每次原生触摸回调的插值批次统一提交声音和最高级触觉 | 高速单次移动跨三块得到 move、move、complete;序号与步号递增 | +| 数字节点 | 固定数字大于1、步号匹配且现有规则无冲突;终点只发 complete | 合法但偏离唯一解的移动仍按普通事件处理,不用答案判断反馈 | +| 回退确认 | `backtrack.mjs` 对原命中多边形并集的外边界计算距离,内缩 `min(3,0.06u)`;剔除异形内部拼接边 | 方形、凹口、六边与真实拖动测试;起手和前进命中未扩大,按钮撤销即时 | +| 普通落格 | 120ms,最低缩放0.985;新桥100ms展开;数字、通道、墙门、命中轮廓不缩放 | `landingScale` 边界测试和原有200关几何回归 | +| 数字节点 | 回弹最高1.035,260ms结束;原局部彩带最多两组;回退节点取消其彩带 | 多个节点先到达、后绘制的测试;通关清空未结束节点 | +| 完成 | 即时完成章;庆祝沿用原2.6秒规模;实际 onPlay 在120ms内作为起点,否则锁定逻辑起点 | 迟到回调不重启;音频中断、后台、换关取消旧演出 | +| 音频 | 四路:三路移动、一路节点/确认;普通音超过20次/秒合并到最新步号;通关停掉残留音 | 最新步号、四路停止、静音取消、回调代际测试 | +| 触觉 | 独立键 `number-swipe:haptics:v1`,默认开;普通轻震70ms限频;节点中震替代轻震;完成中震后90ms轻震 | 关闭、预览、旧任务、迟到失败回调、短震降级测试;从不调用长震 | +| 选关 | 始终每行3关,每章10关;通关绿色、当前紫色 | 四档手机尺寸与三列断言;截图 `qa/layered-feedback-three-columns.png` | + +集中参数在 `src/feedback-params.mjs`。反馈调度和生命周期在 `src/feedback.mjs`,触觉适配在 `src/haptics.mjs`。四份上游快照未修改;所有规则、关卡、顺序、续玩存档、提示和手动下一关继续保留。减少动态关闭块体缩放和彩带运动,音效和振动分别控制。 + +重开、换关、选关退出、后台和音频中断会取消旧音频、触觉延迟任务与表现事件。硬件不支持强度时只降级为一次短震;不可用静默跳过。一次原生触摸回调产生多个插值事件时,视觉事件逐个保留,音频与触觉采用最高优先级,不补播过期的低级触觉。 + +## 证据与结果 + +| 证据 | 结论 | 复现入口 | +| --- | --- | --- | +| 67项模块测试通过 | 事件优先级、回退确认、触觉代际、原音效哈希、音画同步与已有模块回归通过 | 上述 `node --test` 命令 | +| 200关模拟触摸通过 | 关卡唯一解、合法移动、撤销重开、存档与分段指路未破坏 | `node smoke.mjs` / `validation.json` | +| 浏览器200关稳定画面填色采样通过 | 开启提示和撤销重画后,玩家填色保持一致 | `qa/hints.html` | +| 强化移动音第1/36步 RMS 约1503/555 | 高步号能量降低,36步逐半音关系仍在 | `feedback.test.mjs`、`audio-copy.test.mjs` | +| 主版源文件基线逐项哈希一致 | 独立开发没有改写当前主版 | 工作区同级 `wechat-campaign-200-r2-layered-feedback-baseline.json` | + +## 真机验收:待完成 + +| 设备 | 状态 | 仍需确认 | +| --- | --- | --- | +| iPhone | 未进行 | 轻/中震差别、90ms组合舒适度、高步号音色、密集关跟手、实际音画同步与帧率 | +| Android | 未进行 | 强度不支持时的短震降级、连续震动舒适度、同上音效与性能项目 | + +浏览器和模拟器结果不作为真机通过。本轮没有可用的iPhone/Android设备会话,没有上传或发布小游戏。 diff --git a/wechat-campaign-200-r2/README.md b/wechat-campaign-200-r2/README.md index 46b2bdf..45035c7 100644 --- a/wechat-campaign-200-r2/README.md +++ b/wechat-campaign-200-r2/README.md @@ -1,135 +1,21 @@ -# 主版本:续玩、章节选关与教学动画优化(2026-10-22) +# NumberSwipe 正式主版本 -主版本源码以 `G:\项目\NumberSwipe-Variants\wechat-campaign-200-r2` 为准;本轮基于“过关重音修复版”开发。`codex/layered-feedback` 开发分支及其工作树不参与此次同步。版本标记见 `release-info.json`。 +本目录是唯一正式微信主工程,属于 NumberSwipe_New 仓库 main 分支。2026-10-23 已将分层反馈、音乐与流动指路强化版提升为主版本。版本以 release-info.json 为准。 -- 启动直接进入上次未完成关卡,恢复已画路线;即使退出前停在选关页,冷启动与后台返回均回到未完成关。画线、撤销、重开实时保存,进入后台再补存。完成一关后下次进入下一未完成关;重玩已通关关卡不会覆盖原来的未完成存档。 -- 选关每页一章、10关,增加留白;已通关为绿色并带勾,当前关紫色,其他关奶油色。自动定位当前章节,保留全部200关可选。320×568等四档尺寸均检查触摸区域和安全区。 -- 新机制教学按“教学页、路线、画布尺寸”缓存示范棋盘,移动光圈仍连续绘制;重播、分段及结束后停留循环保持。指路额外缓存圆滑路径与静态界面,降低反复曲线计算和拖尾阴影开销。玩家填色、规则标注及门状态继续实时更新。 +## 开发与验收 -发布包:`../releases/NumberSwipe-campaign-200-r2-明亮教具室-续玩选关教学流畅版-20261022.zip`。直接解压导入,重新编译并生成预览。尚未上传发布。 - -验证命令: +需要 Node.js 22+、npm。首次克隆后在本目录运行: ```powershell -node build.mjs -node --test resume-select.test.mjs bright-classroom.test.mjs hints.test.mjs lessons.test.mjs audio-copy.test.mjs -node smoke.mjs -./package.ps1 +npm ci +npm run check +npm run package ``` -50项模块测试、200关模拟通关及稳定画面下的200关浏览器填色采样对比通过。浏览器教学对比:375×812、DPR 2、3轮各120帧,平均1.63→0.72 ms/frame,357/360帧复用示范棋盘;数据见 `qa/lesson-performance-20261022.json`,属于本机浏览器绘制耗时,不等于微信手机帧率。微信真机仍需验收退出再进、字体、教学流畅度。 +微信开发者工具导入本目录,或导入仓库根目录(根配置已指向这里)。构建使用本目录锁定的 esbuild,无需原 NumberSwipe 目录。烟测使用仓库内相邻 campaign-200-r2 的上游文件及快照哈希;移动整个仓库后仍有效。字体、音效、音乐与上游快照均随仓库保存。现成字体可直接构建;仅重新制作字体时另需 Python fonttools 和字体原始文件(见 build-fonts.py)。 -新增存档:`variant:campaign-200-r2:v1:resume`,保留原通关和设置存档键。损坏或过期路线安全回到对应关卡空盘;所有关卡通关后保留可重玩关卡。`node qa/serve.mjs` 提供本机预览,默认端口17859,可用 `NUMBERSWIPE_QA_PORT` 覆盖。 +## 协作 -以下为历史版本说明,不作为当前发布包依据。 +从最新 main 创建 codex/主题 分支,在本目录修改、构建、测试,通过评审后合并 main。每次发布更新 release-info.json,运行打包命令;输出 ../releases/ 下对应版本名。不要把独立旧副本当作主目录,不要将本机绝对路径或跨仓库依赖写入脚本。网页 campaign-200-r2 是关卡来源及历史网页版本,不是本微信主版本。 ---- - -2026-10-22 数字和六边形优化:通道一位数按格宽36%、两位数按30%绘制,上限分别28/25逻辑像素;调整通道及数字牌间距,小屏按比例缩放以避免越界。双色玩法移除圆/三角角标,数字在方块中央,保留奇偶规则文字。六边形厚度1.2–2.2像素,投影透明度0.09,减小偏移、倒角暗部及暖色外晕。发布包:releases/NumberSwipe-campaign-200-r2-明亮教具室-大数字双色轻六边版-20261022.zip。 - -2026-10-22 指路重新设计:参考任天堂官方《灵活脑学校 一起伸展大脑》玩法画面中的奶油色承托、珊瑚橙强调和清楚的方向标识,结合本游戏圆润积木材质,自行程序化绘制奶油色圆边+浅珊瑚色教学引导带。三个圆角方向标沿圆弧移动,带短柔光尾;终点有贴纸式目标环;减少动态保持静态方向。已走方块、规则文字继续避让。参考图片仅用于分析,未作为游戏资源。连接桥没有改动。 - -参考:https://www.nintendo.com/hk/switch/azlsa/stretch/index.html -官方示例:https://www.nintendo.com/hk/switch/azlsa/assets/img/stretch/genre5-img3.png -当前包:releases/NumberSwipe-campaign-200-r2-明亮教具室-教具指路设计版-20261022.zip。 - -2026-10-22 更新:连接桥缩短到格子边缘,仅保留1.2逻辑像素衔接;指路合并连续单元路径,并用二次曲线采样圆滑转角。光点及渐隐拖尾沿同一条曲线按弧长向目标移动,过弯保持平稳速度。减少动态模式保持静态指引。新增圆弧拼接与断段隔离回归测试。当前包:releases/NumberSwipe-campaign-200-r2-明亮教具室-短桥圆弧流光版-20261022.zip。 - -本轮连接桥与指路精修(2026-10-21):连接桥去掉端部封口、端部倒角和实体厚边,只有侧面保留柔和倒角,两端延伸并渐隐到已走块体内。指路改为暖金色光带、浅金高光、移动光点和方向箭头;减少动态模式显示静态虚线及箭头。提示继续独立绘制并避让已走方块和规则文字。 - -验收:34项模块测试通过;200关模拟微信触摸回归通过;浏览器200关提示前后及撤销重画的玩家填色像素一致。新增截图:qa/bright-classroom-bridge-v4.png、qa/bright-classroom-hint-v4.png。发布包:releases/NumberSwipe-campaign-200-r2-明亮教具室-连接桥与指路精修版-20261021.zip(位于项目根目录)。 -# 数字一笔 · campaign-200-r2 微信小游戏 - -## 明亮教具室程序化美术(2026-10-21) - -### 投影、数字与按钮精修(v3,当前版本) - -根据参考图再次区分两类效果:棋块外沿使用黄棕色近边晕染+短投影,底盘则没有实体下沿,只由实际面轮廓alpha投出软阴影。底盘暗部改为淡暖色,避免灰黑底沿看起来像第二块垫子。 - -数字以真实字形边界定位;原生Canvas若只返回文字宽度,会通过一次离屏alpha测量获得字形边界。普通格数字在视觉中心,大块/异形数字位于左上占用单元区域,输入中心与规则不变。白字增加短暗边和柔光,深色数字使用淡渐变与固定微颗粒;生成缓存不作为外部图片资源。 - -按钮重新调整实体图标轮廓、视觉尺寸与文字留白,短标签使用随包的站酷快乐体改名子集 `NumberSwipePlayful.ttf`,字体许可见 `fonts/zcoolkuaile-OFL.txt`。规则和正文继续用Noto Sans SC。当前有5个字体子集、3份许可;字体源及输出哈希见manifest。 - -33项模块测试、200关模拟触摸与200关浏览器提示像素检查通过。新版包为 `../releases/NumberSwipe-campaign-200-r2-明亮教具室-投影字效精修版-20261021.zip`;微信手机的显示、字体和生成材质耗时仍需新包真机预览。 - -以下为历史修订记录。 - -### 参考图圆润材质修订(v2) - -按用户随后提供的效果图重做主游戏区:浅紫 `#8178F4`、暖奶油 `#F9EDD5`、金黄背景;移除固定数字框、四角框、双色访问内框和常驻块轮廓线。现在使用 `src/bright-classroom/cushion.mjs` 从几何距离场生成柔光倒角、下缘暗部和软投影,所有缓存像素均在运行时生成,未引入图片资源。按钮使用同一圆润材质和实心玩具图标;桥接缩细,简单盘面按可用面积放大。 - -本次用户参考图优先于早期报告的薄描边与低渐变建议,对应参数集中在设计令牌 `referenceMatch`。密集盘的小号白数字仍采用较深紫面。规则所需的墙、通道、类别符号继续保留,操作和关卡不变。 - -新版导入包:`../releases/NumberSwipe-campaign-200-r2-明亮教具室-参考图圆润版-20261021.zip`。以下为第一版说明及历史记录;当前执行30项模块测试。 - -当前 `game.js` 已应用暖黄背景、奶油舞台、轻厚度块体、紫色路径、程序图标和圆角按钮。方形、大块异形、六边、通道、双色、奇偶与墙门共用新渲染器;规则教学同步换皮。所有游戏美术均由Canvas路径生成,不使用图片资源。字体为随包提供的Nunito数字800与Noto Sans SC中文500/600/700子集,许可证、字集和SHA-256见 `fonts/`。 - -200关内容、顺序、原规则、微信存档key、逐格回退、撤销、分段提示及手动下一关保持原行为。双色已走保留蓝橙面与圆/三角;提示使用真实共边和块内引导,遮罩避让玩家块面与关键标注。新增选关页“设置”中的减少动态开关,保存于本地;静态页面和无动画的思考阶段停止RAF。 - -直接导入本目录可运行,或解压 `../releases/NumberSwipe-campaign-200-r2-明亮教具室-20261021.zip` 后导入。包含 `game.js`、两个配置文件、`audio/`、`fonts/`,无需构建npm。不要使用旧二维码判断新皮肤是否生效,应重新编译并生成预览。 - -开发预览:在本目录执行 `node qa/serve.mjs`,打开 [明亮教具室试玩](http://127.0.0.1:17859/qa/bright-classroom.html),可切换全部200关和五种屏幕尺寸;画前几步/完成本关是验收页工具,正式游戏不提供自动解题按钮。 - -验证命令: - -```powershell -node build.mjs -node --test bright-classroom.test.mjs hints.test.mjs lessons.test.mjs audio-copy.test.mjs -node smoke.mjs -``` - -29项模块测试通过;模拟微信200关唯一解与触摸通关通过,覆盖教学隔离、四种手机尺寸、减少动态存档、静态停止绘制和字体装载调用。浏览器200关已走格采样像素在提示前后及撤销重画后保持一致。自动检查与浏览器预览不代表微信手机实测;仍需手机验收字体加载、密集关手势、音频与帧率。 - -美术接入在 `bright-classroom-build.mjs` 与 `src/bright-classroom/`,上游四份快照未修改。重建依赖本仓库的 `docs/design/bright-classroom/tokens.json` 与原型内esbuild安装。字体无需在普通构建时重做;补充字集时用 `build-fonts.py`,读取 `.font-sources/` 的上游字体(构建专用),生成改名子集及manifest。来源:[Nunito](https://github.com/google/fonts/tree/main/ofl/nunito)、[Noto Sans SC](https://github.com/google/fonts/tree/main/ofl/notosanssc),许可随资源保留。 - -以下为此前版本的变更记录。 - -本包源于 G:\项目\NumberSwipe-Variants\campaign-200-r2,版本 scored-2026-10-15-r2。完整保留原版 200 关及 playOrder,不混入原 NumberSwipe 项目关卡,也不重新生成关卡。 - -## 导入 - -微信开发者工具 → 小游戏 → 导入本目录(含 game.js / game.json / project.config.json)。已经构建,不需要“构建 npm”。项目沿用 Variants 根配置中的小游戏 AppID;需使用有权限的微信账号登录,才能真机预览和上传。本次未执行上传。 - -内容包含原有基础、大块/异形、墙、通道、双色交替、奇偶、节奏门及六边盘面。保留 20 章顺序、全部选关、可关闭教学规则、手势插值、逐格回退、撤销、重开、指路、通关后手动下一关,以及原版半音音阶音效。音频改用随包提供的41个WAV文件和 wx.createInnerAudioContext 播放,保留半音上行与五类反馈音;关闭音效会立即停止,重新开启会播放试听音。微信版不再依赖浏览器振荡器。 - -选关界面用分页适配微信 Canvas。反馈通过微信原生输入弹窗填写;导出记录保存到小游戏用户目录,并在支持时打开微信文件分享界面。玩法、判定和盘面绘制仍直接使用 r2 模块,通过轻量宿主接口适配,不加载 WebView。 - -## 来源与验证 - -src/upstream 下 levels.json、rules.mjs、ui.mjs、audio.mjs 是上游原文件的完整快照,source-manifest.json 记录原始路径及 SHA-256。构建为 ui.mjs 注入微信宿主,替换音频、规则文案和浏览器下载记录入口。上游四个快照文件保持不变。发布包没有 design.json、作者解及反例文件。 - -存档 key 延续 variant:campaign-200-r2:v1,保存于微信本地;浏览器和微信存储彼此独立,不会自动迁移网页进度。 - -validation.json:200/200 唯一解及模拟微信触摸通关,撤销/重开/指路,前后台循环和存档/音效偏好恢复。原 r2 的 8 项测试也全部通过。尚需在微信开发者工具和手机检查显示、音效听感及平台兼容性;模拟验收不等于真机验收。 - -## 重建 - -此目录 src 保存完整适配源码。build.mjs 默认引用原 NumberSwipe 工程的 esbuild;如独立移动目录,需要将该 import 改为本机可用的 esbuild。运行 node build.mjs 后重新打包。smoke.mjs 会读 source-manifest.json 指定的上游路径检查哈希,然后对实际 game.js 做 200 关模拟验收。 - -## 真机音效及文案修订(2026-10-19) - -改用微信原生音频播放器与本地音效资源;关闭后再次点“音效开”会播放试听音。新增6项音频/文案回归检查。进后台与系统音频中断时停止音效和延迟播放。错误不再静默忽略,可从只读状态的audio字段查询。 - -十类教学说明及组合规则采用具体动作与例子,例如“共边”改为“边挨着边,不能斜着走”,“奇偶”说明第1、3、5步与第2、4、6步。复杂规则可以分页阅读。关卡的布局、约束、顺序与原有微信存档保持不变。 - -修改后需要在开发者工具重新编译并重新生成真机预览,旧二维码可能仍加载旧包。自动测试验证播放调用和非静音音频资源,手机上的实际听感仍需真机确认。 - -## 通关按钮布局修订 - -通关后“下一关”独占底部操作栏,替换重开/撤销/指路;最后一关显示“返回选关”。盘面、反馈文字与操作栏固定分区,按钮出现时不挪动盘面。验证320×568、375×667、390×844、414×896四种尺寸下无按钮/盘面遮挡,且能正确跳转。 - -## 关卡动画教学(2026-10-19) - -首次机制教学和手动规则页加入真实教学关卡画面,复用正式盘面绘制与规则判定,不制作独立示意图。文字说明与逐步动画同步,黄色光圈表示演示位置;墙和同色展示红色阻挡线,通道及奇偶展示变红、退回及正确路线。节奏门演示切换、穿过锁定及撤销穿门。支持重播、逐段阅读。组合关按实际出现的机制拆段说明,使用对应极简教学关,避免提前展示正式关解法。 - -演示独立于玩家路线、提示次数、存档及音效;关闭页面继续原关。后台停止绘制,返回时从头演示。新增 lessons.test.mjs 的11项教学检查;smoke.mjs 检查动画前后路线、错误状态、棋盘坐标和通关状态不变,并验证200关及窄屏规则页。仍需在微信开发者工具和手机检查实际动画与排版。 - -### 教学动画提速 -整段演示固定约1秒,逐帧连续连线,去掉每格停顿与重复静止步骤。演示结束后停留在结果,点击重播可再次观看。 - -## 高亮分段指路与玩家填色(2026-10-20) -恢复高对比提示:点击“指路”直接显示最早未正确完成的一段,按起点、数字点、方向点、奇偶点和终点分段。提示为半透明白线、深色描边及连续流动白色光点;正确到达段末后消失,再次点击才显示下一段,暂不接广告。 - -提示使用独立透明 Canvas,每帧只清空提示层,并从中擦除玩家已经走过的格子区域;已画的连接段不再叠加提示。玩家棋盘及整格填色、数字、方向反馈继续由原绘制代码负责,双色关保留原有蓝/橙格色。撤销、重开会按实际路线恢复相应提示。 - -构建:node build.mjs。检查:node --test hints.test.mjs lessons.test.mjs audio-copy.test.mjs(23项),node smoke.mjs(200关,并比较点击指路前后玩家填色数据)。浏览器像素回归:node qa/serve.mjs 后打开 http://127.0.0.1:17859/qa/hints.html,检查200关前两步的已走格填色采样像素在开启提示、撤销再画前后相同;qa/hint-player-fill.png 为浏览器检查截图,不能作为微信真机截图。独立导入包通过 ./package.ps1 生成,只含运行必需文件。真机显示仍需手机预览确认。 +当前版本保留200关、原存档兼容、分层音效、BGM、振动设置、三列选关及流动指路。真机听感、振动与性能仍需微信预览验收。 diff --git a/wechat-campaign-200-r2/audio-assets.mjs b/wechat-campaign-200-r2/audio-assets.mjs index 8afbfab..dfe7723 100644 --- a/wechat-campaign-200-r2/audio-assets.mjs +++ b/wechat-campaign-200-r2/audio-assets.mjs @@ -1,6 +1,17 @@ import fs from 'node:fs';import path from 'node:path'; -// 原版音效保持不变;路径点新增同音色的短C大调庆祝音。 -export function buildAudio(root){const out=path.join(root,'audio');fs.mkdirSync(out,{recursive:true});const cues={checkpoint:[[523,.065,0],[784,.38,.05],[392,.25,.065]],correct:[[659,.09,0],[880,.14,.075]],error:[[330,.10,0],[247,.15,.09]],undo:[[587,.07,0],[440,.10,.055]],restart:[[523,.075,0],[392,.09,.065],[523,.11,.14]],complete:[[392,.10,0],[494,.10,.075],[587,.13,.15],[523,.65,.26],[659,.55,.28],[784,.48,.30],[196,.18,0,.28],[261.5,.22,.075,.25],[392,.24,.15,.25]]};for(let n=1;n<=36;n++)cues['move-'+n]=[[523*Math.pow(2,(n-1)/12),.07,0]]; -for(const [name,tones]of Object.entries(cues)){const rate=22050,length=Math.ceil((Math.max(...tones.map(([,d,t])=>t+d))+.03)*rate),b=Buffer.alloc(44+length*2);b.write('RIFF');b.writeUInt32LE(b.length-8,4);b.write('WAVEfmt ',8);b.writeUInt32LE(16,16);b.writeUInt16LE(1,20);b.writeUInt16LE(1,22);b.writeUInt32LE(rate,24);b.writeUInt32LE(rate*2,28);b.writeUInt16LE(2,32);b.writeUInt16LE(16,34);b.write('data',36);b.writeUInt32LE(length*2,40);for(let i=0;i=0&&ud+t))+.02)*rate),b=Buffer.alloc(44+length*2); + b.write('RIFF');b.writeUInt32LE(b.length-8,4);b.write('WAVEfmt ',8);b.writeUInt32LE(16,16);b.writeUInt16LE(1,20);b.writeUInt16LE(1,22);b.writeUInt32LE(rate,24);b.writeUInt32LE(rate*2,28);b.writeUInt16LE(2,32);b.writeUInt16LE(16,34);b.write('data',36);b.writeUInt32LE(length*2,40); + for(let i=0;i=d)continue; + const move=name.startsWith('move-'),node=name.startsWith('checkpoint'),attenuation=1/(1+Math.pow(f/2300,1.35)); + const gain=(name==='complete'?.20:node?.38:move?.28:.23)*attenuation*weight; + const tau=name==='complete'?.11:node?.032:move?.022:.025; + const env=(1-Math.exp(-u/(node?.0015:.003)))*Math.exp(-u/tau)*Math.min(1,(d-u)/.008); + sample+=(Math.sin(2*Math.PI*f*u)+.10*Math.exp(-u/.012)*Math.sin(4*Math.PI*f*u))*gain*env; + }b.writeInt16LE(Math.round(Math.max(-1,Math.min(1,sample))*32767),44+i*2);}fs.writeFileSync(path.join(out,name+'.wav'),b); + } +} diff --git a/wechat-campaign-200-r2/audio-copy.test.mjs b/wechat-campaign-200-r2/audio-copy.test.mjs index d1d81bf..5a56910 100644 --- a/wechat-campaign-200-r2/audio-copy.test.mjs +++ b/wechat-campaign-200-r2/audio-copy.test.mjs @@ -1,7 +1,7 @@ import test from 'node:test';import assert from 'node:assert/strict';import fs from 'node:fs';import path from 'node:path';import {fileURLToPath} from 'node:url';import {CasualAudio,stopAudio,audioDiagnostics} from './src/audio.mjs';import {tutorials,rulesFor,playerText} from './src/copy.mjs'; const root=path.dirname(fileURLToPath(import.meta.url)); function setup(){const played=[],contexts=[],storage=new Map(),options=[];globalThis.wx={setInnerAudioOption:o=>options.push(o),showToast:()=>{},createInnerAudioContext:()=>{const a={stops:0,stop(){this.stops++;},play(){assert.ok(fs.existsSync(path.join(root,this.src)));played.push(this.src);},onError(fn){this.error=fn;},onPlay(fn){this.playing=fn;}};contexts.push(a);return a;}};const sound=new CasualAudio({}, {getItem:k=>storage.get(k),setItem:(k,v)=>storage.set(k,v)},'sound');return {sound,played,contexts,storage,options};} -test('手机没有浏览器音频接口时,原生播放器仍能播放全部 36 步和六类反馈音',()=>{const h=setup();for(let step=1;step<=36;step++)h.sound.play('move',0,step);for(const kind of ['correct','error','undo','restart','complete','checkpoint'])h.sound.play(kind);assert.equal(h.played.length,42);assert.equal(h.contexts.length,4);assert.ok(h.options.every(o=>o.obeyMuteSwitch===false));assert.ok(h.contexts.every(a=>a.obeyMuteSwitch===false));}); +test('手机没有浏览器音频接口时,原生播放器仍能播放全部 36 步和六类反馈音',()=>{const h=setup();for(let step=1;step<=36;step++){h.sound.lastMove=-Infinity;h.sound.play('move',0,step);}for(const kind of ['correct','error','undo','restart','complete','checkpoint']){h.sound.stop();h.sound.play(kind);}assert.equal(h.played.length,42);assert.equal(h.contexts.length,4);assert.ok(h.options.every(o=>o.obeyMuteSwitch===false));assert.ok(h.contexts.every(a=>a.obeyMuteSwitch===false));}); test('关闭音效停止播放;再次开启会试听并保存偏好;后台中断停止所有播放器',()=>{const h=setup();h.sound.play('move');h.sound.toggle();const count=h.played.length;h.sound.play('move');assert.equal(h.played.length,count);assert.equal(h.storage.get('sound'),'off');h.sound.toggle();assert.equal(h.played.at(-1),'audio/correct.wav');assert.equal(h.storage.get('sound'),'on');const stops=h.contexts.map(a=>a.stops);stopAudio();assert.ok(h.contexts.every((a,i)=>a.stops>stops[i]));}); test('延迟通关音在静音或进入后台时取消,不在返回后突然播放',async()=>{const h=setup();h.sound.play('complete',.02);h.sound.toggle();await new Promise(resolve=>setTimeout(resolve,40));assert.equal(h.played.length,0);}); test('音频错误可诊断,不再静默吞掉',()=>{const h=setup();h.sound.unlock();h.contexts[0].error({errCode:10003,errMsg:'test missing audio'});assert.equal(audioDiagnostics.lastError.errCode,10003);}); diff --git a/wechat-campaign-200-r2/audio-original/checkpoint.wav b/wechat-campaign-200-r2/audio-original/checkpoint.wav new file mode 100644 index 0000000..2b5d64c Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/checkpoint.wav differ diff --git a/wechat-campaign-200-r2/audio-original/complete.wav b/wechat-campaign-200-r2/audio-original/complete.wav new file mode 100644 index 0000000..2c02f0f Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/complete.wav differ diff --git a/wechat-campaign-200-r2/audio-original/correct.wav b/wechat-campaign-200-r2/audio-original/correct.wav new file mode 100644 index 0000000..500f4c4 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/correct.wav differ diff --git a/wechat-campaign-200-r2/audio-original/error.wav b/wechat-campaign-200-r2/audio-original/error.wav new file mode 100644 index 0000000..bb47fd2 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/error.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-1.wav b/wechat-campaign-200-r2/audio-original/move-1.wav new file mode 100644 index 0000000..d4d1cd6 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-1.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-10.wav b/wechat-campaign-200-r2/audio-original/move-10.wav new file mode 100644 index 0000000..a395f63 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-10.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-11.wav b/wechat-campaign-200-r2/audio-original/move-11.wav new file mode 100644 index 0000000..4ae9a1d Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-11.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-12.wav b/wechat-campaign-200-r2/audio-original/move-12.wav new file mode 100644 index 0000000..a445067 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-12.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-13.wav b/wechat-campaign-200-r2/audio-original/move-13.wav new file mode 100644 index 0000000..3cffdbc Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-13.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-14.wav b/wechat-campaign-200-r2/audio-original/move-14.wav new file mode 100644 index 0000000..894118c Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-14.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-15.wav b/wechat-campaign-200-r2/audio-original/move-15.wav new file mode 100644 index 0000000..12ade59 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-15.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-16.wav b/wechat-campaign-200-r2/audio-original/move-16.wav new file mode 100644 index 0000000..3d35aab Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-16.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-17.wav b/wechat-campaign-200-r2/audio-original/move-17.wav new file mode 100644 index 0000000..ed4bc6a Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-17.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-18.wav b/wechat-campaign-200-r2/audio-original/move-18.wav new file mode 100644 index 0000000..89b2d5d Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-18.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-19.wav b/wechat-campaign-200-r2/audio-original/move-19.wav new file mode 100644 index 0000000..64e0ccd Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-19.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-2.wav b/wechat-campaign-200-r2/audio-original/move-2.wav new file mode 100644 index 0000000..b6f8f1e Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-2.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-20.wav b/wechat-campaign-200-r2/audio-original/move-20.wav new file mode 100644 index 0000000..46c0e14 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-20.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-21.wav b/wechat-campaign-200-r2/audio-original/move-21.wav new file mode 100644 index 0000000..a54c68c Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-21.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-22.wav b/wechat-campaign-200-r2/audio-original/move-22.wav new file mode 100644 index 0000000..27d0857 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-22.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-23.wav b/wechat-campaign-200-r2/audio-original/move-23.wav new file mode 100644 index 0000000..dca7888 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-23.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-24.wav b/wechat-campaign-200-r2/audio-original/move-24.wav new file mode 100644 index 0000000..2cb9f3b Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-24.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-25.wav b/wechat-campaign-200-r2/audio-original/move-25.wav new file mode 100644 index 0000000..198545f Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-25.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-26.wav b/wechat-campaign-200-r2/audio-original/move-26.wav new file mode 100644 index 0000000..9fc9c79 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-26.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-27.wav b/wechat-campaign-200-r2/audio-original/move-27.wav new file mode 100644 index 0000000..72f2d9c Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-27.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-28.wav b/wechat-campaign-200-r2/audio-original/move-28.wav new file mode 100644 index 0000000..385673c Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-28.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-29.wav b/wechat-campaign-200-r2/audio-original/move-29.wav new file mode 100644 index 0000000..7e57ffe Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-29.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-3.wav b/wechat-campaign-200-r2/audio-original/move-3.wav new file mode 100644 index 0000000..7bc0f41 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-3.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-30.wav b/wechat-campaign-200-r2/audio-original/move-30.wav new file mode 100644 index 0000000..67176e1 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-30.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-31.wav b/wechat-campaign-200-r2/audio-original/move-31.wav new file mode 100644 index 0000000..2266134 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-31.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-32.wav b/wechat-campaign-200-r2/audio-original/move-32.wav new file mode 100644 index 0000000..2621abe Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-32.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-33.wav b/wechat-campaign-200-r2/audio-original/move-33.wav new file mode 100644 index 0000000..a40347c Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-33.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-34.wav b/wechat-campaign-200-r2/audio-original/move-34.wav new file mode 100644 index 0000000..0dcb808 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-34.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-35.wav b/wechat-campaign-200-r2/audio-original/move-35.wav new file mode 100644 index 0000000..dc891f8 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-35.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-36.wav b/wechat-campaign-200-r2/audio-original/move-36.wav new file mode 100644 index 0000000..9ae22cd Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-36.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-4.wav b/wechat-campaign-200-r2/audio-original/move-4.wav new file mode 100644 index 0000000..1c45325 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-4.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-5.wav b/wechat-campaign-200-r2/audio-original/move-5.wav new file mode 100644 index 0000000..38ca4e0 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-5.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-6.wav b/wechat-campaign-200-r2/audio-original/move-6.wav new file mode 100644 index 0000000..d75c39f Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-6.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-7.wav b/wechat-campaign-200-r2/audio-original/move-7.wav new file mode 100644 index 0000000..d2f7bc7 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-7.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-8.wav b/wechat-campaign-200-r2/audio-original/move-8.wav new file mode 100644 index 0000000..75337df Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-8.wav differ diff --git a/wechat-campaign-200-r2/audio-original/move-9.wav b/wechat-campaign-200-r2/audio-original/move-9.wav new file mode 100644 index 0000000..137d2a1 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/move-9.wav differ diff --git a/wechat-campaign-200-r2/audio-original/restart.wav b/wechat-campaign-200-r2/audio-original/restart.wav new file mode 100644 index 0000000..1707720 Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/restart.wav differ diff --git a/wechat-campaign-200-r2/audio-original/undo.wav b/wechat-campaign-200-r2/audio-original/undo.wav new file mode 100644 index 0000000..64cd95e Binary files /dev/null and b/wechat-campaign-200-r2/audio-original/undo.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-1.wav b/wechat-campaign-200-r2/audio/checkpoint-1.wav new file mode 100644 index 0000000..36dd180 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-1.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-10.wav b/wechat-campaign-200-r2/audio/checkpoint-10.wav new file mode 100644 index 0000000..f847525 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-10.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-11.wav b/wechat-campaign-200-r2/audio/checkpoint-11.wav new file mode 100644 index 0000000..077ddaf Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-11.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-12.wav b/wechat-campaign-200-r2/audio/checkpoint-12.wav new file mode 100644 index 0000000..06b561d Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-12.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-13.wav b/wechat-campaign-200-r2/audio/checkpoint-13.wav new file mode 100644 index 0000000..e7217c2 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-13.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-14.wav b/wechat-campaign-200-r2/audio/checkpoint-14.wav new file mode 100644 index 0000000..d5782cb Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-14.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-15.wav b/wechat-campaign-200-r2/audio/checkpoint-15.wav new file mode 100644 index 0000000..02bdfef Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-15.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-16.wav b/wechat-campaign-200-r2/audio/checkpoint-16.wav new file mode 100644 index 0000000..8c5d110 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-16.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-17.wav b/wechat-campaign-200-r2/audio/checkpoint-17.wav new file mode 100644 index 0000000..af0a0c3 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-17.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-18.wav b/wechat-campaign-200-r2/audio/checkpoint-18.wav new file mode 100644 index 0000000..1aa5e84 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-18.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-19.wav b/wechat-campaign-200-r2/audio/checkpoint-19.wav new file mode 100644 index 0000000..e56cd48 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-19.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-2.wav b/wechat-campaign-200-r2/audio/checkpoint-2.wav new file mode 100644 index 0000000..7055982 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-2.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-20.wav b/wechat-campaign-200-r2/audio/checkpoint-20.wav new file mode 100644 index 0000000..6d7fcfa Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-20.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-21.wav b/wechat-campaign-200-r2/audio/checkpoint-21.wav new file mode 100644 index 0000000..e13bc8a Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-21.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-22.wav b/wechat-campaign-200-r2/audio/checkpoint-22.wav new file mode 100644 index 0000000..d04bf03 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-22.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-23.wav b/wechat-campaign-200-r2/audio/checkpoint-23.wav new file mode 100644 index 0000000..6721f33 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-23.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-24.wav b/wechat-campaign-200-r2/audio/checkpoint-24.wav new file mode 100644 index 0000000..c0f2ab9 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-24.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-25.wav b/wechat-campaign-200-r2/audio/checkpoint-25.wav new file mode 100644 index 0000000..277e3b8 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-25.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-26.wav b/wechat-campaign-200-r2/audio/checkpoint-26.wav new file mode 100644 index 0000000..975eb83 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-26.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-27.wav b/wechat-campaign-200-r2/audio/checkpoint-27.wav new file mode 100644 index 0000000..efa6f4d Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-27.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-28.wav b/wechat-campaign-200-r2/audio/checkpoint-28.wav new file mode 100644 index 0000000..113e229 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-28.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-29.wav b/wechat-campaign-200-r2/audio/checkpoint-29.wav new file mode 100644 index 0000000..a04d479 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-29.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-3.wav b/wechat-campaign-200-r2/audio/checkpoint-3.wav new file mode 100644 index 0000000..544627b Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-3.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-30.wav b/wechat-campaign-200-r2/audio/checkpoint-30.wav new file mode 100644 index 0000000..d07aaa2 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-30.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-31.wav b/wechat-campaign-200-r2/audio/checkpoint-31.wav new file mode 100644 index 0000000..97de2a6 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-31.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-32.wav b/wechat-campaign-200-r2/audio/checkpoint-32.wav new file mode 100644 index 0000000..cfd5414 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-32.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-33.wav b/wechat-campaign-200-r2/audio/checkpoint-33.wav new file mode 100644 index 0000000..ce420ff Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-33.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-34.wav b/wechat-campaign-200-r2/audio/checkpoint-34.wav new file mode 100644 index 0000000..abff8d5 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-34.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-35.wav b/wechat-campaign-200-r2/audio/checkpoint-35.wav new file mode 100644 index 0000000..fc46301 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-35.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-36.wav b/wechat-campaign-200-r2/audio/checkpoint-36.wav new file mode 100644 index 0000000..e7d3413 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-36.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-4.wav b/wechat-campaign-200-r2/audio/checkpoint-4.wav new file mode 100644 index 0000000..1214474 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-4.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-5.wav b/wechat-campaign-200-r2/audio/checkpoint-5.wav new file mode 100644 index 0000000..b9eba2c Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-5.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-6.wav b/wechat-campaign-200-r2/audio/checkpoint-6.wav new file mode 100644 index 0000000..bfcc546 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-6.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-7.wav b/wechat-campaign-200-r2/audio/checkpoint-7.wav new file mode 100644 index 0000000..cc72fa0 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-7.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-8.wav b/wechat-campaign-200-r2/audio/checkpoint-8.wav new file mode 100644 index 0000000..036b579 Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-8.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint-9.wav b/wechat-campaign-200-r2/audio/checkpoint-9.wav new file mode 100644 index 0000000..daaf33e Binary files /dev/null and b/wechat-campaign-200-r2/audio/checkpoint-9.wav differ diff --git a/wechat-campaign-200-r2/audio/checkpoint.wav b/wechat-campaign-200-r2/audio/checkpoint.wav index 2b5d64c..36dd180 100644 Binary files a/wechat-campaign-200-r2/audio/checkpoint.wav and b/wechat-campaign-200-r2/audio/checkpoint.wav differ diff --git a/wechat-campaign-200-r2/audio/complete.wav b/wechat-campaign-200-r2/audio/complete.wav index 2c02f0f..94ab58b 100644 Binary files a/wechat-campaign-200-r2/audio/complete.wav and b/wechat-campaign-200-r2/audio/complete.wav differ diff --git a/wechat-campaign-200-r2/audio/correct.wav b/wechat-campaign-200-r2/audio/correct.wav index 500f4c4..db7ecc0 100644 Binary files a/wechat-campaign-200-r2/audio/correct.wav and b/wechat-campaign-200-r2/audio/correct.wav differ diff --git a/wechat-campaign-200-r2/audio/error.wav b/wechat-campaign-200-r2/audio/error.wav index bb47fd2..d83d670 100644 Binary files a/wechat-campaign-200-r2/audio/error.wav and b/wechat-campaign-200-r2/audio/error.wav differ diff --git a/wechat-campaign-200-r2/audio/hint.wav b/wechat-campaign-200-r2/audio/hint.wav new file mode 100644 index 0000000..a4a1c18 Binary files /dev/null and b/wechat-campaign-200-r2/audio/hint.wav differ diff --git a/wechat-campaign-200-r2/audio/move-1.wav b/wechat-campaign-200-r2/audio/move-1.wav index d4d1cd6..3fc242c 100644 Binary files a/wechat-campaign-200-r2/audio/move-1.wav and b/wechat-campaign-200-r2/audio/move-1.wav differ diff --git a/wechat-campaign-200-r2/audio/move-10.wav b/wechat-campaign-200-r2/audio/move-10.wav index a395f63..20a58f1 100644 Binary files a/wechat-campaign-200-r2/audio/move-10.wav and b/wechat-campaign-200-r2/audio/move-10.wav differ diff --git a/wechat-campaign-200-r2/audio/move-11.wav b/wechat-campaign-200-r2/audio/move-11.wav index 4ae9a1d..5ba8238 100644 Binary files a/wechat-campaign-200-r2/audio/move-11.wav and b/wechat-campaign-200-r2/audio/move-11.wav differ diff --git a/wechat-campaign-200-r2/audio/move-12.wav b/wechat-campaign-200-r2/audio/move-12.wav index a445067..01a60bb 100644 Binary files a/wechat-campaign-200-r2/audio/move-12.wav and b/wechat-campaign-200-r2/audio/move-12.wav differ diff --git a/wechat-campaign-200-r2/audio/move-13.wav b/wechat-campaign-200-r2/audio/move-13.wav index 3cffdbc..1229346 100644 Binary files a/wechat-campaign-200-r2/audio/move-13.wav and b/wechat-campaign-200-r2/audio/move-13.wav differ diff --git a/wechat-campaign-200-r2/audio/move-14.wav b/wechat-campaign-200-r2/audio/move-14.wav index 894118c..6422fef 100644 Binary files a/wechat-campaign-200-r2/audio/move-14.wav and b/wechat-campaign-200-r2/audio/move-14.wav differ diff --git a/wechat-campaign-200-r2/audio/move-15.wav b/wechat-campaign-200-r2/audio/move-15.wav index 12ade59..26e3dc4 100644 Binary files a/wechat-campaign-200-r2/audio/move-15.wav and b/wechat-campaign-200-r2/audio/move-15.wav differ diff --git a/wechat-campaign-200-r2/audio/move-16.wav b/wechat-campaign-200-r2/audio/move-16.wav index 3d35aab..d3ce06a 100644 Binary files a/wechat-campaign-200-r2/audio/move-16.wav and b/wechat-campaign-200-r2/audio/move-16.wav differ diff --git a/wechat-campaign-200-r2/audio/move-17.wav b/wechat-campaign-200-r2/audio/move-17.wav index ed4bc6a..ce1193e 100644 Binary files a/wechat-campaign-200-r2/audio/move-17.wav and b/wechat-campaign-200-r2/audio/move-17.wav differ diff --git a/wechat-campaign-200-r2/audio/move-18.wav b/wechat-campaign-200-r2/audio/move-18.wav index 89b2d5d..b9560fb 100644 Binary files a/wechat-campaign-200-r2/audio/move-18.wav and b/wechat-campaign-200-r2/audio/move-18.wav differ diff --git a/wechat-campaign-200-r2/audio/move-19.wav b/wechat-campaign-200-r2/audio/move-19.wav index 64e0ccd..2d5748e 100644 Binary files a/wechat-campaign-200-r2/audio/move-19.wav and b/wechat-campaign-200-r2/audio/move-19.wav differ diff --git a/wechat-campaign-200-r2/audio/move-2.wav b/wechat-campaign-200-r2/audio/move-2.wav index b6f8f1e..9dfeedc 100644 Binary files a/wechat-campaign-200-r2/audio/move-2.wav and b/wechat-campaign-200-r2/audio/move-2.wav differ diff --git a/wechat-campaign-200-r2/audio/move-20.wav b/wechat-campaign-200-r2/audio/move-20.wav index 46c0e14..5222f2e 100644 Binary files a/wechat-campaign-200-r2/audio/move-20.wav and b/wechat-campaign-200-r2/audio/move-20.wav differ diff --git a/wechat-campaign-200-r2/audio/move-21.wav b/wechat-campaign-200-r2/audio/move-21.wav index a54c68c..80be378 100644 Binary files a/wechat-campaign-200-r2/audio/move-21.wav and b/wechat-campaign-200-r2/audio/move-21.wav differ diff --git a/wechat-campaign-200-r2/audio/move-22.wav b/wechat-campaign-200-r2/audio/move-22.wav index 27d0857..d9a2c09 100644 Binary files a/wechat-campaign-200-r2/audio/move-22.wav and b/wechat-campaign-200-r2/audio/move-22.wav differ diff --git a/wechat-campaign-200-r2/audio/move-23.wav b/wechat-campaign-200-r2/audio/move-23.wav index dca7888..06c7947 100644 Binary files a/wechat-campaign-200-r2/audio/move-23.wav and b/wechat-campaign-200-r2/audio/move-23.wav differ diff --git a/wechat-campaign-200-r2/audio/move-24.wav b/wechat-campaign-200-r2/audio/move-24.wav index 2cb9f3b..bf516f6 100644 Binary files a/wechat-campaign-200-r2/audio/move-24.wav and b/wechat-campaign-200-r2/audio/move-24.wav differ diff --git a/wechat-campaign-200-r2/audio/move-25.wav b/wechat-campaign-200-r2/audio/move-25.wav index 198545f..67767c1 100644 Binary files a/wechat-campaign-200-r2/audio/move-25.wav and b/wechat-campaign-200-r2/audio/move-25.wav differ diff --git a/wechat-campaign-200-r2/audio/move-26.wav b/wechat-campaign-200-r2/audio/move-26.wav index 9fc9c79..fbd6501 100644 Binary files a/wechat-campaign-200-r2/audio/move-26.wav and b/wechat-campaign-200-r2/audio/move-26.wav differ diff --git a/wechat-campaign-200-r2/audio/move-27.wav b/wechat-campaign-200-r2/audio/move-27.wav index 72f2d9c..d3f90b5 100644 Binary files a/wechat-campaign-200-r2/audio/move-27.wav and b/wechat-campaign-200-r2/audio/move-27.wav differ diff --git a/wechat-campaign-200-r2/audio/move-28.wav b/wechat-campaign-200-r2/audio/move-28.wav index 385673c..72cb6de 100644 Binary files a/wechat-campaign-200-r2/audio/move-28.wav and b/wechat-campaign-200-r2/audio/move-28.wav differ diff --git a/wechat-campaign-200-r2/audio/move-29.wav b/wechat-campaign-200-r2/audio/move-29.wav index 7e57ffe..85a15c2 100644 Binary files a/wechat-campaign-200-r2/audio/move-29.wav and b/wechat-campaign-200-r2/audio/move-29.wav differ diff --git a/wechat-campaign-200-r2/audio/move-3.wav b/wechat-campaign-200-r2/audio/move-3.wav index 7bc0f41..53492c5 100644 Binary files a/wechat-campaign-200-r2/audio/move-3.wav and b/wechat-campaign-200-r2/audio/move-3.wav differ diff --git a/wechat-campaign-200-r2/audio/move-30.wav b/wechat-campaign-200-r2/audio/move-30.wav index 67176e1..b0bc211 100644 Binary files a/wechat-campaign-200-r2/audio/move-30.wav and b/wechat-campaign-200-r2/audio/move-30.wav differ diff --git a/wechat-campaign-200-r2/audio/move-31.wav b/wechat-campaign-200-r2/audio/move-31.wav index 2266134..a5caf78 100644 Binary files a/wechat-campaign-200-r2/audio/move-31.wav and b/wechat-campaign-200-r2/audio/move-31.wav differ diff --git a/wechat-campaign-200-r2/audio/move-32.wav b/wechat-campaign-200-r2/audio/move-32.wav index 2621abe..1598231 100644 Binary files a/wechat-campaign-200-r2/audio/move-32.wav and b/wechat-campaign-200-r2/audio/move-32.wav differ diff --git a/wechat-campaign-200-r2/audio/move-33.wav b/wechat-campaign-200-r2/audio/move-33.wav index a40347c..e2b7804 100644 Binary files a/wechat-campaign-200-r2/audio/move-33.wav and b/wechat-campaign-200-r2/audio/move-33.wav differ diff --git a/wechat-campaign-200-r2/audio/move-34.wav b/wechat-campaign-200-r2/audio/move-34.wav index 0dcb808..0c01301 100644 Binary files a/wechat-campaign-200-r2/audio/move-34.wav and b/wechat-campaign-200-r2/audio/move-34.wav differ diff --git a/wechat-campaign-200-r2/audio/move-35.wav b/wechat-campaign-200-r2/audio/move-35.wav index dc891f8..47d93a7 100644 Binary files a/wechat-campaign-200-r2/audio/move-35.wav and b/wechat-campaign-200-r2/audio/move-35.wav differ diff --git a/wechat-campaign-200-r2/audio/move-36.wav b/wechat-campaign-200-r2/audio/move-36.wav index 9ae22cd..a33efaa 100644 Binary files a/wechat-campaign-200-r2/audio/move-36.wav and b/wechat-campaign-200-r2/audio/move-36.wav differ diff --git a/wechat-campaign-200-r2/audio/move-4.wav b/wechat-campaign-200-r2/audio/move-4.wav index 1c45325..7bd7de1 100644 Binary files a/wechat-campaign-200-r2/audio/move-4.wav and b/wechat-campaign-200-r2/audio/move-4.wav differ diff --git a/wechat-campaign-200-r2/audio/move-5.wav b/wechat-campaign-200-r2/audio/move-5.wav index 38ca4e0..18cad37 100644 Binary files a/wechat-campaign-200-r2/audio/move-5.wav and b/wechat-campaign-200-r2/audio/move-5.wav differ diff --git a/wechat-campaign-200-r2/audio/move-6.wav b/wechat-campaign-200-r2/audio/move-6.wav index d75c39f..1e5d8fc 100644 Binary files a/wechat-campaign-200-r2/audio/move-6.wav and b/wechat-campaign-200-r2/audio/move-6.wav differ diff --git a/wechat-campaign-200-r2/audio/move-7.wav b/wechat-campaign-200-r2/audio/move-7.wav index d2f7bc7..2e8e8d9 100644 Binary files a/wechat-campaign-200-r2/audio/move-7.wav and b/wechat-campaign-200-r2/audio/move-7.wav differ diff --git a/wechat-campaign-200-r2/audio/move-8.wav b/wechat-campaign-200-r2/audio/move-8.wav index 75337df..3a916fa 100644 Binary files a/wechat-campaign-200-r2/audio/move-8.wav and b/wechat-campaign-200-r2/audio/move-8.wav differ diff --git a/wechat-campaign-200-r2/audio/move-9.wav b/wechat-campaign-200-r2/audio/move-9.wav index 137d2a1..759b5b0 100644 Binary files a/wechat-campaign-200-r2/audio/move-9.wav and b/wechat-campaign-200-r2/audio/move-9.wav differ diff --git a/wechat-campaign-200-r2/audio/restart.wav b/wechat-campaign-200-r2/audio/restart.wav index 1707720..585e010 100644 Binary files a/wechat-campaign-200-r2/audio/restart.wav and b/wechat-campaign-200-r2/audio/restart.wav differ diff --git a/wechat-campaign-200-r2/audio/ui.wav b/wechat-campaign-200-r2/audio/ui.wav new file mode 100644 index 0000000..c502e62 Binary files /dev/null and b/wechat-campaign-200-r2/audio/ui.wav differ diff --git a/wechat-campaign-200-r2/audio/undo.wav b/wechat-campaign-200-r2/audio/undo.wav index 64cd95e..98bc722 100644 Binary files a/wechat-campaign-200-r2/audio/undo.wav and b/wechat-campaign-200-r2/audio/undo.wav differ diff --git a/wechat-campaign-200-r2/bright-classroom.test.mjs b/wechat-campaign-200-r2/bright-classroom.test.mjs index 7c8463f..2ba1016 100644 --- a/wechat-campaign-200-r2/bright-classroom.test.mjs +++ b/wechat-campaign-200-r2/bright-classroom.test.mjs @@ -1,3 +1,4 @@ +import {feedback} from './src/feedback.mjs'; import test from 'node:test'; import assert from 'node:assert/strict'; import fs from 'node:fs'; @@ -121,15 +122,16 @@ test('fixed channels remain anchored at their block centers after number enlarge test('checkpoint ribbons trigger on correct arrival only and never duplicate per frame',()=>{ const level=pack.levels.find(l=>l.cells.some(c=>c.clue>1&&c.cluec.clue>1&&c.clue1100;feedback.emit('checkpoint',level,route[n-1],n);feedback.now=originalNow; let scene=renderBrightBoard(ctx,level,route.slice(0,n),375,400,{now:1100}); assert.equal(scene.bursts.length,1);assert.equal(scene.animating,true); scene=renderBrightBoard(ctx,level,route.slice(0,n),375,400,{now:1200});assert.equal(scene.bursts.length,1); scene=renderBrightBoard(ctx,level,route.slice(0,n),375,400,{now:2800});assert.equal(scene.bursts.length,0); - const wrong=context();renderBrightBoard(wrong,level,[],375,400,{now:1000}); + feedback.reset();const wrong=context();renderBrightBoard(wrong,level,[],375,400,{now:1000}); scene=renderBrightBoard(wrong,level,[route[n-1]],375,400,{now:1100});assert.equal(scene.bursts.length,0); }); test('checkpoint pulse is small, centered in time and settles without looping',async()=>{ const {checkpointScale}=await import('./src/bright-classroom/board-renderer.mjs'); - assert.equal(checkpointScale(0),1);assert.equal(checkpointScale(180),1.035);assert.equal(checkpointScale(360),1);assert.equal(checkpointScale(1000),1);assert.equal(checkpointScale(180,true),1); + assert.equal(checkpointScale(0),1);assert.equal(checkpointScale(130),1.035);assert.equal(checkpointScale(260),1);assert.equal(checkpointScale(1000),1);assert.equal(checkpointScale(130,true),1); }); diff --git a/wechat-campaign-200-r2/build.mjs b/wechat-campaign-200-r2/build.mjs index 56b4245..4042917 100644 --- a/wechat-campaign-200-r2/build.mjs +++ b/wechat-campaign-200-r2/build.mjs @@ -1,11 +1,13 @@ +import {buildMusic} from './music-assets.mjs'; +import {applyLayeredFeedback} from './layered-feedback-build.mjs'; import {buildAudio} from './audio-assets.mjs'; import {applyBrightClassroom} from './bright-classroom-build.mjs'; import fs from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; -import { build } from 'file:///G:/项目/NumberSwipe/modes/01-number-stroke/node_modules/esbuild/lib/main.js'; +import { build } from 'esbuild'; const root = path.dirname(fileURLToPath(import.meta.url)); -buildAudio(root); +buildAudio(root);buildMusic(root); await build({ absWorkingDir: root, entryPoints: ['src/main.mjs'], outfile: 'game.js', bundle: true, format: 'iife', platform: 'neutral', target: 'es2020', minify: true, plugins: [{ name: 'wechat-host', setup(b) { b.onLoad({ filter: /upstream[\\/]ui\.mjs$/ }, args => { let contents = fs.readFileSync(args.path, 'utf8'); @@ -45,6 +47,7 @@ export function renderLesson(target,l,route,w,h){ export function resumeGameplay(){const saved=readResume(localStorage),target=resumeTarget(playLevels,completed,saved,level.id);if(level.id!==playLevels[target.index].id||cleared){start(target.index,false);path=validResumePath(level,target.path,canAppend);draw();}showPlay();} `; contents=applyBrightClassroom(contents); + contents=applyLayeredFeedback(contents); contents=contents.replace(' if(previewOnly)return;updateTutorial(bad);',' if(previewOnly)return;persistResume();updateTutorial(bad);'); return { contents: "import {PACK,document,window,localStorage,exportRecords,performance} from '../platform.mjs';\n" + contents, loader: 'js' }; }); diff --git a/wechat-campaign-200-r2/feedback.test.mjs b/wechat-campaign-200-r2/feedback.test.mjs new file mode 100644 index 0000000..5fd4e1d --- /dev/null +++ b/wechat-campaign-200-r2/feedback.test.mjs @@ -0,0 +1,85 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import fs from 'node:fs'; +import crypto from 'node:crypto'; +import {Feedback,feedback} from './src/feedback.mjs'; +import {Haptics,HAPTIC_KEY} from './src/haptics.mjs'; +import {inBacktrackCore} from './src/backtrack.mjs'; +import {landingScale,checkpointScale,renderBrightBoard} from './src/bright-classroom/board-renderer.mjs'; +import {boot} from './qa/runtime-harness.mjs'; +import {solve} from './src/upstream/rules.mjs'; +import {CasualAudio} from './src/audio.mjs'; +const pack=JSON.parse(fs.readFileSync(new URL('./src/upstream/levels.json',import.meta.url))),levels=pack.playOrder.map(id=>pack.levels.find(l=>l.id===id)); +const storage=()=>{const map=new Map();return {getItem:k=>map.get(k),setItem:(k,v)=>map.set(k,v),map};}; +function clock(){let now=1000,id=0;const jobs=new Map();return {now:()=>now,later:(fn,ms)=>{jobs.set(++id,{fn,at:now+ms});return id;},cancel:i=>jobs.delete(i),advance(ms){now+=ms;for(const [i,j]of [...jobs])if(j.at<=now){jobs.delete(i);j.fn();}},jobs};} +test('event batches preserve every landing and sequence but commit only highest audio and haptic',()=>{ + const f=new Feedback({now:()=>1234}),sounds=[],pulses=[];f.audio={play:(...p)=>sounds.push(p)};f.haptics={play:k=>pulses.push(k),stop(){}}; + f.begin();f.emit('move','l','a',1);f.emit('checkpoint','l','b',2);f.emit('complete','l','c',3);f.end(); + assert.deepEqual(f.events.map(e=>e.sequence),[1,2,3]);assert.deepEqual(f.events.map(e=>e.kind),['move','checkpoint','complete']);assert.equal(f.events[1].time,1234);assert.deepEqual(sounds,[['complete',0,3]]);assert.deepEqual(pulses,['complete']);assert.equal(f.visuals.length,1); +}); +test('completion waits at most 120ms and ignores late audio callbacks',()=>{ + const c=clock(),f=new Feedback({now:c.now});f.emit('complete','l','a',5);assert.equal(f.completionStart(null),null);c.advance(119);assert.equal(f.completionStart(null),null);c.advance(1);assert.equal(f.completionStart(null),1000);assert.equal(f.completionStart(1300),1000); + f.reset();f.emit('complete','l','a',5);assert.equal(f.completionStart(1150),1150);f.reset();assert.equal(f.completionStart(1150),null); +}); +test('light haptics are limited, checkpoint replaces light, and completion adds only one delayed short pulse',()=>{ + const c=clock(),calls=[],s=storage(),h=new Haptics({vibrateShort:o=>calls.push(o.type||'default')},s,{now:c.now,later:c.later,cancel:c.cancel}); + h.play('move');h.play('move');assert.deepEqual(calls,['light']);c.advance(70);h.play('move');h.play('checkpoint');assert.deepEqual(calls,['light','light','medium']);h.play('complete');c.advance(89);assert.equal(calls.at(-1),'medium');c.advance(1);assert.equal(calls.at(-1),'light');h.play('undo');h.play('error');assert.equal(calls.length,5); +}); +test('unsupported graded haptic falls back to one short pulse, never long vibration',()=>{ + const calls=[],h=new Haptics({vibrateShort:o=>{if(o.type)o.fail();else calls.push('short');},vibrateLong:()=>{throw Error('must not call long');}},storage());h.play('checkpoint');assert.deepEqual(calls,['short']); + const absent=new Haptics({},storage());assert.doesNotThrow(()=>absent.play('move')); +}); +test('haptic disable, preview and lifecycle cancellation suppress delayed or expired work',()=>{ + const c=clock(),calls=[],s=storage(),api={vibrateShort:o=>calls.push(o.type)},h=new Haptics(api,s,{now:c.now,later:c.later,cancel:c.cancel});h.play('complete');h.stop();c.advance(100);assert.deepEqual(calls,['medium']);h.setEnabled(false);h.play('checkpoint');assert.equal(s.map.get(HAPTIC_KEY),'off');assert.equal(new Haptics(api,s).enabled,false);new Haptics(api,storage(),{preview:true}).play('complete');assert.equal(calls.length,1); +}); +test('late failed haptic requests cannot revive old pulses and ungraded completion falls back once',()=>{ + const c=clock(),calls=[],failed=[];const h=new Haptics({vibrateShort:o=>{if(o.type)failed.push(o.fail);else calls.push('short');}},storage(),{now:c.now,later:c.later,cancel:c.cancel}); + h.play('move');h.play('checkpoint');failed[0]();assert.equal(calls.length,0);failed[1]();assert.equal(calls.length,1); + h.play('complete');c.advance(100);assert.equal(calls.length,2,'completion on legacy device is exactly one short pulse'); +}); +test('rectangles, concave shapes and hexagons require geometric inward distance without treating internal seams as walls',()=>{ + const square=(x,y)=>[[x,y],[x+100,y],[x+100,y+100],[x,y+100]],polys=[{id:'a',p:square(0,0)},{id:'a',p:square(100,0)},{id:'a',p:square(0,100)}]; + assert.equal(inBacktrackCore(polys,'a',2.9,50,100),false);assert.equal(inBacktrackCore(polys,'a',3,50,100),true);assert.equal(inBacktrackCore(polys,'a',100,50,100),true);assert.equal(inBacktrackCore(polys,'a',99,101,100),false);assert.equal(inBacktrackCore(polys,'a',101,101,100),false); + const hex=Array.from({length:6},(_,i)=>[30*Math.cos(i*Math.PI/3),30*Math.sin(i*Math.PI/3)]);assert.equal(inBacktrackCore([{id:'h',p:hex}],'h',0,0,60),true);assert.equal(inBacktrackCore([{id:'h',p:hex}],'h',29,0,60),false); +}); +test('one high-speed native move records all intermediate cells and completion without duplicate final node',()=>{ + const ui=boot();ui.select(0);const s=ui.api.snapshot(),a=s.centers.t0,b=s.centers.t2,offset=s.boardRect.y; + const touch=(kind,p)=>ui.handlers[kind]({changedTouches:[{identifier:1,clientX:p[0],clientY:p[1]+offset}],touches:[{identifier:1,clientX:p[0],clientY:p[1]+offset}]}); + touch('TouchStart',a);touch('TouchMove',b);touch('TouchEnd',b);ui.tick();const events=ui.api.snapshot().feedback.events.filter(e=>e.level===levels[0].id);assert.deepEqual(Array.from(events,e=>e.kind),['move','move','complete']);assert.deepEqual(Array.from(events,e=>e.step),[1,2,3]);assert.equal(ui.api.snapshot().cleared,true); +}); +test('legal but off-solution moves use public rules, while invalid clues only produce error',()=>{ + const ui=boot();ui.select(1);ui.cell('c3');ui.cell('c2');assert.equal(ui.api.snapshot().feedback.events.at(-1).kind,'move');assert.equal(ui.api.snapshot().violations.length,0);ui.select(3);ui.cell('c7');assert.equal(ui.api.snapshot().feedback.events.at(-1).kind,'error'); +}); +test('drag near a previous-block boundary cannot undo; deeper entry can, and undo button remains immediate',()=>{ + const ui=boot();ui.select(3);ui.cell('c3');ui.cell('c0');const s=ui.api.snapshot(),a=s.centers.c0,b=s.centers.c3,offset=s.boardRect.y; + const send=(kind,x,y)=>ui.handlers[kind]({changedTouches:[{identifier:1,clientX:x,clientY:y+offset}],touches:[{identifier:1,clientX:x,clientY:y+offset}]}); + send('TouchStart',...a);const mid=(a[1]+b[1])/2;send('TouchMove',a[0],mid+.5);assert.equal(ui.api.snapshot().path.length,2);send('TouchMove',...b);assert.equal(ui.api.snapshot().path.length,1);send('TouchEnd',...b);ui.tick();ui.cell('c0');ui.button('撤销');assert.equal(ui.api.snapshot().path.length,1); +}); +test('tutorial, redraw, hint and restored saved routes do not generate player feedback',()=>{ + const ui=boot();ui.select(4);const n=ui.api.snapshot().feedback.sequence;ui.button('规则');ui.advance(1000);ui.advance(1000);ui.button('返回游戏');ui.button('指路');ui.advance(400);assert.equal(ui.api.snapshot().feedback.sequence,n);ui.cell(solve(levels[4])[0][0]);const restored=boot(ui.storage);assert.equal(restored.api.snapshot().feedback.sequence,0); +}); +test('pressure and rebound have bounded amplitude and duration',()=>{assert.equal(landingScale(60),.985);assert.equal(landingScale(120),1);assert.equal(checkpointScale(130),1.035);assert.equal(checkpointScale(260),1);}); +test('interpolation cannot duplicate the same failed-cell event within one native movement',()=>{ + const f=new Feedback();f.begin();for(let i=0;i<40;i++)f.emit('error','l','wall-cell',3);f.end();assert.equal(f.sequence,1);f.begin();f.emit('error','l','wall-cell',3);f.end();assert.equal(f.sequence,2); +}); +test('nodes are driven by explicit events even when multiple arrive before rendering; at most two ribbons survive',()=>{ + const level=levels.find(l=>l.cells.filter(c=>c.clue>1&&c.clue=3);assert.ok(level);const nodes=level.cells.filter(c=>c.clue>1&&c.clue1000; + for(const c of nodes)feedback.emit('checkpoint',level,c.id,c.clue);feedback.now=originalNow; + const ctx=new Proxy({measureText:()=>({width:20})},{get:(o,k)=>o[k]??(()=>{}),set:(o,k,v)=>(o[k]=v,true)}); + const route=solve(level)[0],scene=renderBrightBoard(ctx,level,route,375,400,{now:1100});assert.equal(scene.bursts.length,2);assert.deepEqual(scene.bursts.map(b=>b.cell),nodes.slice(1).map(c=>c.id)); + feedback.now=()=>1100;feedback.emit('complete',level,route.at(-1),route.length);feedback.now=originalNow;assert.equal(renderBrightBoard(ctx,level,route,375,400,{now:1100}).bursts.length,0);feedback.reset(); +}); +test('audio fast moves merge to latest pitch and completion stops the whole four-channel pool',t=>{ + const c=clock(),originalNow=Date.now,originalLater=globalThis.setTimeout,originalCancel=globalThis.clearTimeout;Date.now=c.now;globalThis.setTimeout=c.later;globalThis.clearTimeout=c.cancel;t.after(()=>{Date.now=originalNow;globalThis.setTimeout=originalLater;globalThis.clearTimeout=originalCancel;}); + const channels=[],played=[];globalThis.wx={createInnerAudioContext:()=>{const a={stop(){this.stops=(this.stops||0)+1;},play(){played.push(this.src);},onError(){},onPlay(fn){this.callback=fn;}};channels.push(a);return a;}}; + const audio=new CasualAudio({},storage(),'a');audio.play('move',0,1);audio.play('move',0,2);audio.play('move',0,36);assert.equal(c.jobs.size,1);c.advance(50);assert.deepEqual(played,['audio/move-1.wav','audio/move-36.wav']);audio.play('checkpoint',0,8);assert.equal(channels[3].src,'audio/checkpoint-8.wav');audio.play('complete');assert.ok(channels.every(a=>a.stops>0));const count=played.length;audio.play('move',0,9);c.advance(500);assert.equal(played.length,count);const callback=channels[3].callback;audio.stop();callback(); +}); +test('settings persist haptic preference independently and chapter cards always use three columns',()=>{ + const ui=boot();ui.select(3);ui.button('选关');const cards=ui.api.buttons().filter(b=>/^\d+( ✓)?$/.test(b.label));assert.equal(cards.filter(b=>b.y===cards[0].y).length,3);ui.button('设置');ui.button('振动:开');assert.equal(ui.api.snapshot().feedback.hapticsEnabled,false);assert.equal(boot(ui.storage).api.snapshot().feedback.hapticsEnabled,false); +}); +test('original audio is preserved and high pitches lose energy rather than growing sharper',()=>{ + const hashes=JSON.parse(fs.readFileSync(new URL('./qa/original-audio-sha256.json',import.meta.url))); + for(const [file,hash]of Object.entries(hashes))assert.equal(crypto.createHash('sha256').update(fs.readFileSync(new URL('./audio-original/'+file,import.meta.url))).digest('hex'),hash); + const rms=file=>{const b=fs.readFileSync(new URL('./audio/'+file,import.meta.url));let energy=0;for(let i=44;irms('move-12.wav')); +}); diff --git a/wechat-campaign-200-r2/game.js b/wechat-campaign-200-r2/game.js index 0db9820..8f0310c 100644 --- a/wechat-campaign-200-r2/game.js +++ b/wechat-campaign-200-r2/game.js @@ -1,4 +1,4 @@ -(()=>{var hi={channel:"main",version:"2026-10-22-resume-chapter-lessons",date:"2026-10-22",basePackage:"NumberSwipe-campaign-200-r2-\u660E\u4EAE\u6559\u5177\u5BA4-\u8FC7\u5173\u91CD\u97F3\u4FEE\u590D\u7248-20261022.zip",package:"NumberSwipe-campaign-200-r2-\u660E\u4EAE\u6559\u5177\u5BA4-\u7EED\u73A9\u9009\u5173\u6559\u5B66\u6D41\u7545\u7248-20261022.zip"};var hc={meta:{name:"NumberSwipe \u660E\u4EAE\u6559\u5177\u5BA4",version:"1.0-proposal",date:"2026-10-21",status:"Design specification; not applied to runtime",unit:"logical layout unit, not physical pixel",reference:[375,812]},color:{background:"#FFE69A",backgroundBottom:"#FFDE79",pattern:"#E8BE54",stage:"#FFF6DF",surface:"#FFFBF2",surfaceMuted:"#F1E6D0",cellFace:"#FFF8EA",cellDepth:"#D8C4A0",cellBoundary:"#8A7660",cellBevel:"#FFFFFF",ink:"#43382F",inkSecondary:"#71604F",primary:"#6552D9",primaryPressed:"#5140B7",primaryDepth:"#49379E",primarySoft:"#ECE7FF",primaryEdge:"#ADA0F1",onPrimary:"#FFFFFF",coral:"#F57950",coralInk:"#4F2418",coralSoft:"#FFE0CF",danger:"#B93B46",dangerDepth:"#8D2934",dangerSoft:"#FBE4E5",dangerInk:"#862735",hint:"#8B5E00",hintSoft:"#FFF0B8",hintCore:"#FFFFFF",hintCasing:"#43382F",hintRibbon:"#F49B75",hintRibbonDepth:"#C96E48",hintRibbonLight:"#FFF5DD",hintSpark:"#FFFDF0",success:"#2E6B52",successSoft:"#DEEFDC",categoryBlueFace:"#CEE4FF",categoryBlueInk:"#245A92",categoryOrangeFace:"#FFE0B2",categoryOrangeInk:"#8A470E",wallInk:"#43382F",wallStripe:"#F7C74D",doorClosed:"#8B4B29",doorOpen:"#2E6B52",disabledFace:"#E9E1D3",disabledInk:"#7A7064",focus:"#5140B7",overlay:"#43382F"},referenceMatch:{version:"2-reference-cushion",authority:"User-supplied reference image; overrides earlier flat production proposal",color:{background:"#FFE383",backgroundBottom:"#FFDA68",pattern:"#EFBF4D",stage:"#FAEED6",surface:"#FBEFD9",cellFace:"#F9EDD5",cellDepth:"#CDB590",ink:"#51452E",inkSecondary:"#796644",primary:"#8178F4",primaryPressed:"#7369DF",primaryDepth:"#5750BA",primaryEdge:"#B7AAFF",coral:"#FF7946"},pitchMax:104,bridgeRatio:.25,cellDepthRatio:.085,cellDepthMax:7,bevelRatio:.085,stageMargin:12,buttonRadiusRatio:.32,conditionFrames:!1,endpointCorners:!1,categoryVisitedFrames:!1},font:{numeric:"Nunito",cjk:"Noto Sans SC",fallback:"system-ui, -apple-system, Segoe UI, Microsoft YaHei, sans-serif",numericWeight:800,bodyWeight:500,labelWeight:600,headingWeight:700},type:{display:{size:32,line:40,weight:800},pageTitle:{size:24,line:32,weight:700},section:{size:18,line:26,weight:700},body:{size:16,line:24,weight:500},button:{size:16,line:22,weight:700},label:{size:14,line:20,weight:600},caption:{size:13,line:18,weight:500},micro:{size:12,line:16,weight:500}},spacing:[4,8,12,16,20,24,32,40,48],layout:{referenceWidth:375,referenceHeight:812,margin:20,compactMargin:16,topbarHeight:48,headerHeight:40,statusHeight:28,playfieldHeight:464,feedbackHeight:40,actionHeight:64,actionGap:10,tapTarget:48,pitchPreferred:56,pitchTargetMin:44,pitchReviewBelow:44,tileInsetRatio:.045,bridgeThicknessRatio:.42,stagePadding:16},radius:{small:8,label:12,button:18,stage:28,card:24,sheet:28,dialog:24,cellRatio:.18,cellMin:6,cellMax:12,concaveMaxRatio:.06,hexMaxRatio:.11},material:{light:"upper-left",cellDepthRatio:.055,cellDepthMin:2,cellDepthMax:4,pressedDepth:1,cellBoundary:1.25,bevelWidth:1,gradientChannelDeltaMax:6,cellShadow:{x:0,y:3,blur:5,alpha:.1},stageShadow:{x:0,y:4,blur:10,alpha:.08},buttonShadow:{x:0,y:3,blur:5,alpha:.12},dialogShadow:{x:0,y:12,blur:28,alpha:.16}},motionMs:{fast:120,base:200,slow:320,hold:500,buttonPress:80,buttonRelease:120,step:140,bridge:120,undo:100,conflict:200,hintAttention:2400,hintSegmentCycleMin:1200,door:160,spinner:160,clearSweep:320,clearHold:500,entryStagger:12,entryStaggerCap:120},motion:{easeOut:[.22,1,.36,1],stepPeak:1.015,stepPressed:.985,buttonPressed:.98,conflictTravelMax:1.5,spinnerDegrees:120,ambientAnimation:!1,reducedMotionHint:"static dashed path; keep all hint information"},contrastPairs:[{name:"\u6807\u9898/\u9EC4\u5E95",fg:"ink",bg:"background",minimum:4.5},{name:"\u8F85\u52A9\u6587\u5B57/\u9EC4\u5E95",fg:"inkSecondary",bg:"background",minimum:4.5},{name:"\u6B63\u6587/\u821E\u53F0",fg:"ink",bg:"stage",minimum:4.5},{name:"\u8F85\u52A9\u6587\u5B57/\u821E\u53F0",fg:"inkSecondary",bg:"stage",minimum:4.5},{name:"\u6570\u5B57/\u672A\u8D70\u5757",fg:"ink",bg:"cellFace",minimum:4.5},{name:"\u767D\u6570\u5B57/\u8DEF\u5F84",fg:"onPrimary",bg:"primary",minimum:4.5},{name:"\u767D\u5B57/\u6309\u538B\u7D2B",fg:"onPrimary",bg:"primaryPressed",minimum:4.5},{name:"\u767D\u6570\u5B57/\u9519\u8BEF",fg:"onPrimary",bg:"danger",minimum:4.5},{name:"\u9519\u8BEF\u8BF4\u660E/\u6DE1\u7EA2",fg:"dangerInk",bg:"dangerSoft",minimum:4.5},{name:"\u73CA\u745A\u6807\u7B7E\u6587\u5B57",fg:"coralInk",bg:"coral",minimum:4.5},{name:"\u6DE1\u7D2B\u9009\u4E2D\u6587\u5B57",fg:"primaryPressed",bg:"primarySoft",minimum:4.5},{name:"\u63D0\u793A\u6587\u5B57/\u6DE1\u9EC4",fg:"hint",bg:"hintSoft",minimum:4.5},{name:"\u6210\u529F\u6587\u5B57/\u6DE1\u7EFF",fg:"success",bg:"successSoft",minimum:4.5},{name:"\u84DD\u7C7B\u522B\u6807\u8BB0",fg:"categoryBlueInk",bg:"categoryBlueFace",minimum:4.5},{name:"\u6A59\u7C7B\u522B\u6807\u8BB0",fg:"categoryOrangeInk",bg:"categoryOrangeFace",minimum:4.5},{name:"\u6570\u5B57/\u84DD\u7C7B\u522B\u9762",fg:"ink",bg:"categoryBlueFace",minimum:4.5},{name:"\u6570\u5B57/\u6A59\u7C7B\u522B\u9762",fg:"ink",bg:"categoryOrangeFace",minimum:4.5},{name:"\u683C\u8FB9/\u683C\u9762",fg:"cellBoundary",bg:"cellFace",minimum:3},{name:"\u683C\u8FB9/\u821E\u53F0",fg:"cellBoundary",bg:"stage",minimum:3},{name:"\u8DEF\u5F84/\u672A\u8D70\u683C",fg:"primary",bg:"cellFace",minimum:3},{name:"\u63D0\u793A\u63CF\u8FB9/\u821E\u53F0",fg:"hintCasing",bg:"stage",minimum:3},{name:"\u63D0\u793A\u767D\u82AF/\u63CF\u8FB9",fg:"hintCore",bg:"hintCasing",minimum:3},{name:"\u5899/\u9EC4\u8272\u6761\u7EB9",fg:"wallInk",bg:"wallStripe",minimum:3},{name:"\u5899/\u821E\u53F0",fg:"wallInk",bg:"stage",minimum:3},{name:"\u5F00\u95E8\u6807\u8BB0/\u821E\u53F0",fg:"doorOpen",bg:"stage",minimum:3},{name:"\u5173\u95E8\u6807\u8BB0/\u821E\u53F0",fg:"doorClosed",bg:"stage",minimum:3},{name:"\u7126\u70B9/\u9EC4\u5E95",fg:"focus",bg:"background",minimum:3},{name:"\u767D\u5B57/\u73CA\u745A\uFF08\u4EC5\u8BCA\u65AD\uFF0C\u4E0D\u91C7\u7528\uFF09",fg:"onPrimary",bg:"coral",minimum:null},{name:"\u683C\u9762/\u821E\u53F0\uFF08\u4EC5\u8BCA\u65AD\uFF0C\u683C\u8FB9\u627F\u62C5\u8BC6\u522B\uFF09",fg:"cellFace",bg:"stage",minimum:null},{name:"\u84DD\u7C7B\u522B\u9762/\u6A59\u7C7B\u522B\u9762\uFF08\u4EC5\u8BCA\u65AD\uFF0C\u53E6\u914D\u5F62\u72B6\uFF09",fg:"categoryBlueFace",bg:"categoryOrangeFace",minimum:null}]};function je(e){return e.shape?e.shape.map(([c,i])=>[e.x+c,e.y+i]):Array.from({length:(e.w||1)*(e.h||1)},(c,i)=>[e.x+i%(e.w||1),e.y+Math.floor(i/(e.w||1))])}function He(e){let c=e.cells,i=new Map(c.map((t,a)=>[t.id,a]));if(i.size!==c.length)throw Error("\u91CD\u590D\u683C id");let d=c.map(()=>[]),o=new Map;if(e.geometry!=="hex")for(let t=0;tg===n&&y===h)}else l=je(c[t]).some(([n,h])=>[[1,0],[-1,0],[0,1],[0,-1]].some(([g,y])=>o.get(n+g+","+(h+y))===a));l&&(d[t].push(a),d[a].push(t))}let r=new Map;for(let t of c)if(t.clue!==void 0){if(!Number.isInteger(t.clue)||t.clue<1||t.clue>c.length||r.has(t.clue))throw Error("\u6570\u5B57\u8303\u56F4\u6216\u91CD\u590D");r.set(t.clue,i.get(t.id))}return{cells:c,ids:i,adj:d,clues:r}}function gi(e){let c=[];for(let i=0;i<(e.relations||[]).length;i++)c.push({key:"relation:"+i,kind:"relation",...e.relations[i]});for(let i=0;i<(e.orderChains||[]).length;i++)for(let d=0;da.id===c),o=e.cells.find(a=>a.id===i),r=new Set(je(o).map(a=>a.join(","))),t=new Set;for(let[a,l]of je(d))for(let[n,h,g]of[[-1,0,"l"],[1,0,"r"],[0,-1,"u"],[0,1,"d"]])r.has(a+n+","+(l+h))&&t.add(g);return t.size===1?[...t][0]:null}function I1(e,c,i){if(i===0||i===c.length-1)return null;let d=Le(e,c[i],c[i-1]),o=Le(e,c[i],c[i+1]);return d&&o?[d,o].sort().join(""):null}function Te(e,c){for(let i=1;i[a,l+1])),t=[];if(!o){for(let a of e.cells)if(a.clue!==void 0){let l=r.get(a.id);(l!==void 0&&l!==a.clue||c.length>=a.clue&&c[a.clue-1]!==a.id)&&t.push({key:"clue:"+a.id,cells:[a.id,c[a.clue-1]].filter(Boolean),message:"\u56FA\u5B9A\u6570\u5B57\u6B65\u53F7\u4E0D\u7B26"})}}for(let a of gi(e)){if(a.key===i)continue;let l=!1,n=[];if(a.kind==="relation"){let h=r.get(a.from),g=r.get(a.to);n=[a.from,a.to],l=g!==void 0&&(h===void 0||g-h!==a.delta)||h!==void 0&&g===void 0&&c.length>=h+a.delta}else if(a.kind==="order")n=[a.from,a.to],l=r.has(a.to)&&(!r.has(a.from)||r.get(a.from)>r.get(a.to));else if(a.kind==="window"){n=[a.cell];let h=r.get(a.cell);l=h!==void 0?ha.max:c.length>=a.max}else if(a.kind==="parity"){n=[a.cell];let h=r.get(a.cell);l=h!==void 0&&h%2===1!=(a.value==="odd")}else if(a.kind==="direction"){n=[a.cell];let h=r.get(a.cell);l=h===1||h!==void 0&&hs.id===c[h-1]),y=e.cells.find(s=>s.id===c[h]);g.category===y.category&&(l=!0,n.push(g.id,y.id))}else if(a.kind==="wall"||a.kind==="door")for(let h=1;hh)&&(l=!0,n=a.edge)}}l&&t.push({key:a.key,cells:n,message:a.kind==="relation"?"\u76F8\u5BF9\u6B65\u5DEE\u4E0D\u7B26":a.kind==="order"?"\u6807\u8BB0\u6B21\u5E8F\u4E0D\u7B26":a.kind==="window"?"\u5230\u8FBE\u7A97\u53E3\u4E0D\u7B26":a.kind==="parity"?"\u8BE5\u683C\u6B65\u53F7\u5947\u5076\u4E0D\u7B26":a.kind==="direction"?"\u8FDB\u51FA\u65B9\u5411\u4E0D\u7B26":a.kind==="wall"?"\u6C38\u4E45\u5899\u4E0D\u80FD\u7A7F\u8FC7":a.kind==="door"?"\u8FD9\u4E00\u6B65\u95E8\u662F\u5173\u95ED\u7684":a.kind==="gate"?"\u5F00\u5173\u5C1A\u672A\u6253\u5F00\u6B64\u95E8":"\u84DD\u6A59\u989C\u8272\u5FC5\u987B\u4EA4\u66FF"})}return t}function gc(e,c,i){let d=He(e);if(c.includes(i)||!d.ids.has(i))return!1;if(!c.length)return!d.clues.has(1)||d.cells[d.clues.get(1)].id===i;let o=c.at(-1);if(si(e,c,o,i)||!d.adj[d.ids.get(o)].includes(d.ids.get(i))||(e.features||[]).includes("alternation")&&d.cells[d.ids.get(o)].category===d.cells[d.ids.get(i)].category)return!1;for(let r of e.gates||[])if(r.edge.includes(o)&&r.edge.includes(i)&&!c.includes(r.switchCell))return!1;return!0}function sc(e,{limit:c=2,omit:i=null,ignoreClues:d=!1,prune:o=!0,nodeLimit:r=1/0}={}){let t=He(e),a=t.cells.length,l=[],n=[],h=new Set,g=0,y=gi(e).filter(b=>b.key!==i),s=y.some(b=>b.kind==="alternation"),x=t.adj.map((b,S)=>b.filter(m=>(!s||t.cells[S].category!==t.cells[m].category)&&!y.some(C=>C.kind==="wall"&&C.edge.includes(t.cells[S].id)&&C.edge.includes(t.cells[m].id)))),u=d?new Map:t.clues;function w(b){let S=new Set([b]),m=[b];for(let C=0;Cr)throw Error("\u6C42\u89E3\u8282\u70B9\u9884\u7B97\u8017\u5C3D\uFF0C\u4E0D\u80FD\u89C6\u4E3A\u552F\u4E00");h.add(b),n.push(t.cells[b].id);let S=n.length;if(!ne(e,n,{omit:i,ignoreClues:d}).length){if(S===a)l.push([...n]);else if(!o||w(b)){let m=u.get(S+1),C=x[b].filter(M=>!h.has(M)&&(m===void 0||M===m));C.sort((M,q)=>x[M].filter(k=>!h.has(k)).length-x[q].filter(k=>!h.has(k)).length);for(let M of C){if(!d&&t.cells[M].clue!==void 0&&t.cells[M].clue!==S+1)continue;let q=si(e,n,t.cells[b].id,t.cells[M].id,{omit:i});for(let k of y)k.kind==="gate"&&k.edge.includes(t.cells[b].id)&&k.edge.includes(t.cells[M].id)&&!n.includes(k.switchCell)&&(q=!0);if(q||f(M),l.length>=c)break}}}n.pop(),h.delete(b)}let B=u.has(1)?[u.get(1)]:t.cells.map((b,S)=>S);for(let b of B)if(!(!d&&t.cells[b].clue!==void 0&&t.cells[b].clue!==1)&&(f(b),l.length>=c))break;return l}var wc=e=>e.map(c=>Math.round(c*1e4)).join(","),_e=(e,c,i)=>(c[0]-e[0])*(i[1]-c[1])-(c[1]-e[1])*(i[0]-c[0]),N=(e,c)=>Math.hypot(e[0]-c[0],e[1]-c[1]),Ec=(e,c)=>[(e[0]+c[0])/2,(e[1]+c[1])/2];function D1(e){let c=new Set(e.map(r=>r.join(","))),i=[];for(let[r,t]of e)for(let[a,l,n,h]of[[0,-1,[r,t],[r+1,t]],[1,0,[r+1,t],[r+1,t+1]],[0,1,[r+1,t+1],[r,t+1]],[-1,0,[r,t+1],[r,t]]])c.has([r+a,t+l].join(","))||i.push({a:n,b:h,used:!1});let d=new Map;for(let r of i){let t=wc(r.a);d.has(t)||d.set(t,[]),d.get(t).push(r)}let o=[];for(let r of i){if(r.used)continue;let t=[],a=r;do{if(a.used=!0,t.push(a.a),wc(a.b)===wc(r.a))break;let l=(d.get(wc(a.b))||[]).filter(n=>!n.used);if(l.sort((n,h)=>_e(a.a,a.b,h.b)-_e(a.a,a.b,n.b)),a=l[0],!a)throw Error("Open block boundary");if(t.length>i.length)throw Error("Invalid block boundary")}while(!0);o.push(t.filter((l,n)=>Math.abs(_e(t[(n+t.length-1)%t.length],l,t[(n+1)%t.length]))>1e-8))}return o}function R1(e,c){return e.map((i,d)=>{let o=e[(d+e.length-1)%e.length],r=e[(d+1)%e.length],t=N(o,i),a=N(i,r),l=[-(i[1]-o[1])/t,(i[0]-o[0])/t],n=[-(r[1]-i[1])/a,(r[0]-i[0])/a],h=1+l[0]*n[0]+l[1]*n[1];return[i[0]+c*(l[0]+n[0])/h,i[1]+c*(l[1]+n[1])/h]})}function ve(e,c,i,d=0){e.beginPath();for(let o of c){for(let r=0;r0?i:i/3,N(t,a)*.35,N(a,l)*.35),h=s=>{let x=N(s,a);return[a[0]+(s[0]-a[0])*n/x,a[1]+(s[1]-a[1])*n/x+d]},g=h(t),y=h(l);r===0?e.moveTo(...g):e.lineTo(...g),e.quadraticCurveTo(a[0],a[1]+d,...y)}e.closePath()}}function j1(e,c){let i=[];for(let o of e.parts)for(let r of c.parts)for(let t=0;t.01||Math.abs(_e(t,a,n))>.01)){if(N(a,l)<.01){i[o]=[t,n],i.splice(r,1),d=!0;break e}if(N(n,t)<.01){i[o]=[l,a],i.splice(r,1),d=!0;break e}}}}return i.sort((o,r)=>N(...r)-N(...o)||o[0][0]-r[0][0]||o[0][1]-r[0][1])}function wi(e,c,i){let d=e.geometry==="hex",o=[],r=[];for(let q of e.cells){let k,A,F,O;d?(A=[1.5*q.r,Math.sqrt(3)*(q.q+q.r/2)],F=[Array.from({length:6},(E,T)=>[A[0]+Math.cos(T*Math.PI/3),A[1]+Math.sin(T*Math.PI/3)])],k=F):(O=je(q),k=O.map(([E,T])=>[[E,T],[E+1,T],[E+1,T+1],[E,T+1]]),F=D1(O),A=[O.reduce((E,T)=>E+T[0]+.5,0)/O.length,O.reduce((E,T)=>E+T[1]+.5,0)/O.length],q.shape&&(A=O.map(([E,T])=>[E+.5,T+.5]).sort((E,T)=>N(E,A)-N(T,A)||E[1]-T[1]||E[0]-T[0])[0])),o.push({cell:q,parts:k,rings:F,center:A,occupied:O}),r.push(...k.flat())}let t=Math.min(...r.map(q=>q[0])),a=Math.max(...r.map(q=>q[0])),l=Math.min(...r.map(q=>q[1])),n=Math.max(...r.map(q=>q[1])),h=!d&&a-t>=7||(e.features||[]).length>=3,g=J.referenceMatch.stageMargin,y=h?8:16,s=J.referenceMatch.pitchMax*Math.min(1,c/375),x=Math.min(s/(d?Math.sqrt(3):1),(c-2*(g+y))/(a-t),(i-2*(y+8))/(n-l)),u=(c-(a-t)*x)/2-t*x,w=(i-(n-l)*x)/2-l*x-2,f=([q,k])=>[u+q*x,w+k*x],B=x*(d?Math.sqrt(3):1),b=B*J.layout.tileInsetRatio,S=d?B*J.radius.hexMaxRatio:V(J.radius.cellMin,B*J.radius.cellRatio,J.radius.cellMax),m=o.map(q=>{let A=!d&&!q.cell.direction&&q.occupied.length>1?[...q.occupied].sort((O,E)=>O[1]-E[1]||O[0]-E[0])[0]:null,F=f(A?[A[0]+.5,A[1]+.5]:q.center);return{...q,parts:q.parts.map(O=>O.map(f)),rings:q.rings.map(O=>R1(O.map(f),b)),center:f(q.center),labelAnchor:F,radius:S}}),C=new Map(m.map(q=>[q.cell.id,q])),M=new Map;for(let q=0;q[q.cell.id,q.center])),polygons:m.flatMap(q=>q.parts.map(k=>({id:q.cell.id,p:k}))),transform:f}}function xc(e,c,i){return e.edges.get([c,i].sort().join("|"))}function Pc(e,c,i,d){if(!e.cell.shape)return[c,i];let o=e.occupied.map(([g,y])=>d.transform([g+.5,y+.5])),r=g=>o.reduce((y,s,x)=>N(s,g)Math.max(c,Math.min(i,e)),pi=e=>[1,3,5].map(c=>parseInt(e.slice(c,c+2),16));function fi(e,c,i,d,o){for(e.set(c,{value:i,bytes:d}),o==="field"?Ac+=d:Nc+=d;(o==="field"?Ac:Nc)>(o==="field"?C1:F1)&&e.size>1;){let r=e.keys().next().value,t=e.get(r);e.delete(r),o==="field"?Ac-=t.bytes:Nc-=t.bytes}return i}function mi(e,c){let i=e.get(c);return i?(e.delete(c),e.set(c,i),i.value):null}function O1(e,c){return e.map(i=>{let d=[];for(let o=0;o0?c:c/3,l*.35,n*.35),y=[t[0]+(r[0]-t[0])*g/l,t[1]+(r[1]-t[1])*g/l],s=[t[0]+(a[0]-t[0])*g/n,t[1]+(a[1]-t[1])*g/n];for(let x=0;x<=6;x++){let u=x/6,w=1-u;d.push([w*w*y[0]+2*w*u*t[0]+u*u*s[0],w*w*y[1]+2*w*u*t[1]+u*u*s[1]])}}return d})}function E1(e,c,i,d,o,r,t){let a=mi(xi,t);if(a)return a;let l=Math.ceil(i*o)+2,n=Math.ceil(d*o)+2,h=new Float32Array(l*n*3),g=e.length===1&&e[0].length===4&&e[0].every((s,x)=>{let u=e[0][(x+1)%4];return Math.abs(s[0]-u[0])<.001||Math.abs(s[1]-u[1])<.001}),y=g?[]:O1(e,c).flatMap(s=>s.map((x,u)=>{let w=s[(u+1)%s.length],f=w[0]-x[0],B=w[1]-x[1];return{a:x,b:w,dx:f,dy:B,len:f*f+B*B}}));for(let s=0;s0&&O>0?(B=-Math.sign(k)*E/L,b=-Math.sign(A)*T/L):F>O?(B=-Math.sign(k),b=0):(B=0,b=-Math.sign(A))}else{let k=1/0,A=0,F=0,O=!1;for(let T of y){T.a[1]>w!=T.b[1]>w&&uq[0])),f=Math.min(...u.map(q=>q[1])),B=Math.max(...u.map(q=>q[0]))-w,b=Math.max(...u.map(q=>q[1]))-f,S=c.map(q=>q.map(([k,A])=>[k-w,A-f])),m=JSON.stringify([S.map(q=>q.map(k=>k.map(A=>Math.round(A*100)/100))),Math.round(i*100),l,t]),C=m+"|"+[d,o,r,a,n,h,g,y,s,x].join("|"),M=mi(ui,C);if(!M){if(typeof wx>"u"||!wx.createCanvas)return!1;let q=wx.createCanvas(),k=q.getContext("2d");if(!k.createImageData?.(1,1)?.data)return!1;let F=l,O=Math.ceil(Math.max(a,n)*2+Math.max(r,y)+2);q.width=Math.ceil((B+O*2)*F),q.height=Math.ceil((b+O*2+r)*F),k.setTransform(F,0,0,F,O*F,O*F);let E=E1(S,i,B,b,F,t,m),T=k.createImageData(E.iw,E.ih),L=pi(d),le=s?pi(s):[0,0,0];for(let $e=0,yc=0;$e>>8)%17-8)*.055;for(let Re=0;Re<3;Re++)T.data[yc+Re]=Je((L[Re]+(le[Re]-L[Re])*S1+(255-L[Re])*B1+k1)/255)*255;T.data[yc+3]=yi*255}let te=wx.createCanvas();te.width=E.iw,te.height=E.ih,te.getContext("2d").putImageData(T,0,0);let Ve=()=>k.drawImage(te,-1/F,-1/F,E.iw/F,E.ih/F);n>0&&(k.shadowColor=h,k.shadowBlur=n*F,k.shadowOffsetY=0,Ve()),k.shadowColor=g,k.shadowBlur=a*F,k.shadowOffsetY=y*F,Ve(),k.shadowBlur=0,k.shadowOffsetY=0,k.shadowColor="rgba(0,0,0,0)",r>0&&(ve(k,S,i,r),k.fillStyle=o,k.fill()),k.drawImage(te,-1/F,-1/F,E.iw/F,E.ih/F),M={canvas:q,pad:O,res:F},fi(ui,C,M,q.width*q.height*4,"texture")}return e.drawImage(M.canvas,w-M.pad,f-M.pad,M.canvas.width/M.res,M.canvas.height/M.res),!0}function qi(e,c,i,d,o,r,t){return Wc(e,[[[c,i],[c+d,i],[c+d,i+o],[c,i+o]]],r,t)}var J=hc,p={...hc.color,...hc.referenceMatch.color},bi='"Microsoft YaHei", sans-serif',uc={};function Xe(e){try{let c=typeof wx<"u"&&wx.loadFont?.("fonts/"+e+".ttf");return uc[e]=c?"loaded":"fallback",c?'"'+c.replace(/"/g,"")+'", '+bi:null}catch{return uc[e]="fallback",null}}var pc={500:Xe("NumberSwipeSans500"),600:Xe("NumberSwipeSans600"),700:Xe("NumberSwipeSans700")},Lc=pc[600]||bi,P1=Xe("NumberSwipeDigits800")||Lc,A1=Xe("NumberSwipePlayful")||pc[700]||Lc,V=(e,c,i)=>Math.max(e,Math.min(c,i)),Ge=new Map;function Hc(e,c,i){let d=e.font+"|"+c;if(Ge.has(d))return Ge.get(d);let o=e.measureText(c);if(!Number.isFinite(o.actualBoundingBoxAscent)||!Number.isFinite(o.actualBoundingBoxLeft))try{if(typeof wx<"u"&&wx.createCanvas){let r=wx.createCanvas(),t=2,a=Math.ceil(i),l=a+i;r.width=Math.ceil((o.width+2*a)*t),r.height=Math.ceil(i*3*t);let n=r.getContext("2d");n.setTransform(t,0,0,t,0,0),n.font=e.font,n.textAlign="left",n.textBaseline="alphabetic",n.fillStyle="#000",n.fillText(c,a,l);let h=n.getImageData(0,0,r.width,r.height);if(h?.data){let g=r.width,y=-1,s=r.height,x=-1;for(let u=0;u8&&(g=Math.min(g,w),y=Math.max(y,w),s=Math.min(s,u),x=Math.max(x,u));y>=g&&(o={width:o.width,actualBoundingBoxLeft:a-g/t,actualBoundingBoxRight:(y+1)/t-a,actualBoundingBoxAscent:l-s/t,actualBoundingBoxDescent:(x+1)/t-l})}}}catch{}return Ge.set(d,o),Ge.size>512&&Ge.delete(Ge.keys().next().value),o}function se(e,c,i,d,o,r){r=Math.max(0,Math.min(r,d/2,o/2)),e.beginPath(),e.moveTo(c+r,i),e.lineTo(c+d-r,i),e.quadraticCurveTo(c+d,i,c+d,i+r),e.lineTo(c+d,i+o-r),e.quadraticCurveTo(c+d,i+o,c+d-r,i+o),e.lineTo(c+r,i+o),e.quadraticCurveTo(c,i+o,c,i+o-r),e.lineTo(c,i+r),e.quadraticCurveTo(c,i,c+r,i),e.closePath()}function Me(e,c=16,i=600,d=!1){let o=d?P1:pc[i>=700?700:i<=500?500:600]||Lc;e.font=`${d||pc[i>=700?700:i<=500?500:600]?"normal":i} ${c}px ${o}`}function X(e,c,i,d,o=16,r=p.ink,t=600,a=!1){Me(e,o,t,a),vi(e,c,i,d,r)}function vi(e,c,i,d,o){e.fillStyle=o,e.textAlign="left",e.textBaseline="alphabetic";let r=String(c),t=Hc(e,r,Number(/([\d.]+)px/.exec(e.font)?.[1])||16);Number.isFinite(t.actualBoundingBoxAscent)&&Number.isFinite(t.actualBoundingBoxDescent)&&Number.isFinite(t.actualBoundingBoxLeft)&&Number.isFinite(t.actualBoundingBoxRight)?e.fillText(r,i+(t.actualBoundingBoxLeft-t.actualBoundingBoxRight)/2,d+(t.actualBoundingBoxAscent-t.actualBoundingBoxDescent)/2):(e.textAlign="center",e.textBaseline="middle",e.fillText(r,i,d))}function Bi(e,c,i,d,o,r=p.ink){e.font=`normal ${o}px ${A1}`,vi(e,c,i,d,r)}function ye(e,c,i,d,o,r=24,t=p.surface,a=3){let l=t===p.primary||t===p.primaryPressed,n=t===p.stage;qi(e,c,i,d,o,r,{face:t,depthColor:l?p.primaryDepth:t===p.coral?"#DF6634":p.cellDepth,depth:n?0:a,bevel:Math.min(8,o*.15),shadow:n?12:Math.min(7,o*.1),shadowY:n?4:2,shadowColor:n?"rgba(116,77,28,.20)":"rgba(116,77,28,.18)",shadeColor:l?"#4F4AEC":n?"#B79B6C":t===p.coral?"#D54C24":"#89602A",shadeStrength:n?.35:1})||(e.save(),n||(se(e,c,i+a,d,o,r),e.fillStyle=p.cellDepth,e.fill()),se(e,c,i,d,o,r),e.fillStyle=t,e.fill(),e.restore())}function Si(e,c,i,d,o=10){let r=e>=360&&c>=700?2:3,t=Math.ceil(o/r),a=14,l=i+108,n=c-d-114-l,h=Math.min(76,(n-a*(t-1))/t),g=Math.min(130,(e-48-a*(r-1))/r);return{columns:r,rows:t,gap:a,y:l,w:g,h,x:(e-(g*r+a*(r-1)))/2}}function ki(e,c,i,d,o,r,{completed:t,current:a}){let l=t?"#D6EAD6":a?p.primary:p.surface;ye(e,i,d,o,r-3,Math.min(18,r*.28),l,3),a&&(e.save(),e.strokeStyle=t?p.primary:"#FFFFFF",e.lineWidth=2,se(e,i+4,d+4,o-8,r-11,Math.min(14,r*.22)),e.stroke(),e.restore()),X(e,c,i+o/2,d+(r-3)/2,Math.min(24,r*.4),a&&!t?p.onPrimary:t?"#326443":p.ink,700),t&&X(e,"\u2713",i+o-13,d+12,12,"#326443",700)}var fc=2600;function N1(e){return Math.max(0,Math.min(1,e/fc))}function Ti(e,c,i,d,o){let r=N1(o);if(r>=1)return;let t=Math.min(1,o/80,(fc-o)/350),a=c/2,l=i+d*.45;e.save(),e.globalAlpha=t,e.translate(a,l);let n=.94+.06*(1-(1-Math.min(1,r/.25))**3);e.scale(n,n);let h=[p.coral,p.primary,"#F3C346","#B3DDAA","#FFF8E3"],g=[[0,-12,0],[c*.2,-d*.13,220],[-c*.2,-d*.09,430]];for(let y=0;y=1)continue;let f=1-(1-w)**3;e.globalAlpha=t*Math.min(1,w/.07,(1-w)/.3);for(let B=0;B<20;B++){let b=B/20*Math.PI*2+y*.45,S=c*(.19+B%4*.035)*f,m=s+Math.cos(b)*S,C=x+Math.sin(b)*S+d*.24*w*w,M=8+B%4*3,q=Math.sin(B*1.7+w*9)*5;e.strokeStyle=h[(B+y)%h.length],e.lineWidth=3.5+B%3,e.beginPath(),e.moveTo(m-Math.cos(b)*M,C-Math.sin(b)*M),e.quadraticCurveTo(m+q,C-q,m,C),e.stroke()}}e.globalAlpha=t,ye(e,-74,-40,148,80,25,p.surface,2),e.beginPath(),e.moveTo(-37,-2),e.lineTo(-30,5),e.lineTo(-17,-10),e.strokeStyle=p.success,e.lineWidth=5,e.lineCap="round",e.lineJoin="round",e.stroke(),X(e,"\u5B8C\u6210\uFF01",25,0,24,p.ink,700),e.restore()}var Ii=new Set,Mi=new WeakMap,ue={backend:"InnerAudioContext",lastError:null,plays:0,completeRequestedAt:null,completeStartedAt:null};function _c(){for(let e of Ii)e.stop()}var mc=class{constructor(c,i,d){this.storage=i,this.key=d,this.channels=[],this.cursor=0,this.timers=new Set,this.lastEvent=null,this.lastAt={},this.warned=!1;try{this.enabled=i.getItem(d)!=="off"}catch{this.enabled=!0}Ii.add(this)}unlock(){if(!this.enabled||!wx.createInnerAudioContext)return!1;try{if(wx.setInnerAudioOption?.({obeyMuteSwitch:!1,mixWithOther:!0}),!this.channels.length)for(let c=0;c<4;c++){let i=wx.createInnerAudioContext();i.obeyMuteSwitch=!1,i.volume=.85,i.onError?.(o=>this.error(o));let d={kind:null};Mi.set(i,d),i.onPlay?.(()=>{d.kind==="complete"&&(ue.completeStartedAt=Date.now())}),this.channels.push(i)}return!0}catch(c){return this.error(c),!1}}error(c){ue.lastError={errCode:c?.errCode||0,errMsg:c?.errMsg||String(c)},this.warned||(this.warned=!0,wx.showToast?.({title:"\u97F3\u6548\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u8FDB\u5165\u6E38\u620F",icon:"none"}))}stop(){for(let c of this.timers)clearTimeout(c);this.timers.clear();for(let c of this.channels)try{c.stop()}catch{}}toggle(){this.enabled=!this.enabled;try{this.storage.setItem(this.key,this.enabled?"on":"off")}catch{}return this.enabled?this.play("correct"):this.stop(),this.enabled}play(c,i=0,d=1){if(!this.unlock())return;let o=Date.now();if(c==="error"&&o-(this.lastAt.error||0)<180)return;this.lastAt[c]=o,c==="restart"&&this.stop();let r=c==="move"?"move-"+Math.max(1,Math.min(36,Math.floor(d))):c,t=()=>{if(!this.enabled)return;let a=this.channels[this.cursor++%this.channels.length];try{a.stop(),a.src="audio/"+r+".wav",Mi.get(a).kind=c,c==="complete"&&(ue.completeRequestedAt=Date.now(),ue.completeStartedAt=typeof a.onPlay=="function"?null:Date.now()),a.play(),this.lastEvent=c,ue.plays++}catch(l){this.error(l)}};if(i>0){let a=setTimeout(()=>{this.timers.delete(a),t()},i*1e3);this.timers.add(a)}else t()}};var we={mode:"campaign-200-r2",version:"scored-2026-10-15-r2",title:"\u6570\u5B57\u4E00\u7B14 \xB7 200\u5173\u8BC4\u5206\u4FEE\u8BA2\u7248",chapters:[{id:1,title:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528"},{id:2,title:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528"},{id:3,title:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528"},{id:4,title:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528"},{id:5,title:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:6,title:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:7,title:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:8,title:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:9,title:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:10,title:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:11,title:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212"},{id:12,title:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212"},{id:13,title:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212"},{id:14,title:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212"},{id:15,title:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:16,title:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:17,title:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:18,title:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:19,title:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:20,title:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"}],levels:[{geometry:"square",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:2,y:0,w:1,h:1}],features:[],mode:"campaign-200-r2",tutorial:"basic",caption:"\u4ECE1\u5F00\u59CB\uFF0C\u6BCF\u683C\u4E00\u6B21\uFF0C\u5171\u8FB9\u624D\u80FD\u8D70\u3002",previousId:null,id:"r2-001",order:1,chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:20,objectiveScore:0,title:"\u5F15\u5BFC \xB7 \u7B2C\u4E00\u7B14"},{id:"r2-002",contentRevision:2,order:2,mode:"campaign-200-r2",geometry:"blocks",features:["big"],title:"\u67A2\u7EBD\u7559\u540E",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,clue:5},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,clue:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:2,h:2},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1}],previousId:"campaign200-014",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:18},{id:"r2-003",contentRevision:2,order:3,mode:"campaign-200-r2",geometry:"square",features:[],title:"\u5148\u6536\u77ED\u652F\u8DEF",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1,clue:6},{id:"c7",x:1,y:2,w:1,h:1}],previousId:"campaign200-002",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:18},{id:"r2-004",contentRevision:2,order:4,mode:"campaign-200-r2",geometry:"blocks",features:["big"],title:"\u5927\u5757\u4E00\u6B65",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1,clue:1},{id:"c4",x:1,y:1,w:2,h:2},{id:"c5",x:0,y:2,w:1,h:1},{id:"c6",x:0,y:3,w:1,h:1},{id:"c7",x:1,y:3,w:1,h:1,clue:6}],previousId:"campaign200-004",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:17},{geometry:"square",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:0,y:1,w:1,h:1},{id:"t3",x:1,y:1,w:1,h:1}],features:["walls"],mode:"campaign-200-r2",walls:[["t0","t1"]],tutorial:"walls",caption:"\u9ED1\u9EC4\u5899\u4E0D\u80FD\u7A7F\u8FC7\uFF0C\u8BF7\u4ECE\u53E6\u4E00\u4FA7\u7ED5\u884C\u3002",previousId:null,id:"r2-005",order:5,chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:20,objectiveScore:0,title:"\u5F15\u5BFC \xB7 \u5899\u4E0D\u80FD\u7A7F\u8FC7"},{id:"r2-006",contentRevision:2,order:6,mode:"campaign-200-r2",geometry:"square",features:["walls"],title:"\u8FB9\u4E0A\u7684\u5899",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:8},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1,clue:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1}],walls:[["c3","c6"]],previousId:"campaign200-019",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:16},{id:"r2-007",contentRevision:2,order:7,mode:"campaign-200-r2",geometry:"square",features:["walls"],title:"\u8FD1\u8DEF\u8981\u7ED5",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,clue:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,clue:6},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1}],walls:[["c7","c10"]],previousId:"campaign200-029",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:16},{id:"r2-008",contentRevision:2,order:8,mode:"campaign-200-r2",geometry:"blocks",features:["big"],title:"\u8BA4\u6E05\u5F02\u5F62\u5171\u8FB9",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u5CF0\u503C",targetDifficulty:28,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1,clue:7},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1,clue:1}],previousId:"campaign200-020",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:29},{mode:"campaign-200-r2",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,role:"\u5F15\u5BFC",targetDifficulty:10,id:"r2-009",order:9,geometry:"square",features:["direction"],title:"\u5F15\u5BFC \xB7 \u5DE6\u53F3\u76F4\u884C",caption:"\u6A2A\u901A\u9053\u5FC5\u987B\u4ECE\u5DE6\u3001\u53F3\u4E24\u4FA7\u8FDB\u51FA\uFF0C\u4E0D\u80FD\u62D0\u5F2F\u3002",tutorial:"straight",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1,direction:"lr"},{id:"t2",x:2,y:0,w:1,h:1},{id:"t3",x:0,y:1,w:1,h:1},{id:"t4",x:1,y:1,w:1,h:1},{id:"t5",x:2,y:1,w:1,h:1}],previousId:"tutorial-straight",playerBand:null,estimatedBand:"\u6559\u5B66",objectiveScore:17},{id:"r2-010",contentRevision:2,order:10,mode:"campaign-200-r2",geometry:"square",features:["walls"],title:"\u7ED5\u8FC7\u53BB\u5C31\u597D",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u6536\u675F",targetDifficulty:15,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,clue:8},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1,clue:1}],walls:[["c1","c4"]],previousId:"campaign200-008",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:12},{mode:"campaign-200-r2",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,role:"\u5F15\u5BFC",targetDifficulty:20,id:"r2-011",order:11,geometry:"square",features:["direction"],title:"\u5F15\u5BFC \xB7 \u4E0A\u4E0B\u76F4\u884C",caption:"\u7AD6\u901A\u9053\u5FC5\u987B\u4ECE\u4E0A\u3001\u4E0B\u4E24\u4FA7\u8FDB\u51FA\u3002",tutorial:"vertical",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:0,y:1,w:1,h:1,direction:"du"},{id:"t2",x:0,y:2,w:1,h:1},{id:"t3",x:1,y:0,w:1,h:1},{id:"t4",x:1,y:1,w:1,h:1},{id:"t5",x:1,y:2,w:1,h:1}],previousId:"tutorial-straight",playerBand:null,estimatedBand:"\u6559\u5B66",objectiveScore:17},{id:"r2-012",contentRevision:2,order:12,mode:"campaign-200-r2",geometry:"square",features:["direction"],title:"\u901A\u9053\u7684\u9009\u62E9",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,direction:"lr"},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,clue:1},{id:"c6",x:0,y:2,w:1,h:1,clue:6},{id:"c7",x:1,y:2,w:1,h:1}],previousId:"campaign200-012",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:12},{mode:"campaign-200-r2",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,role:"\u5F15\u5BFC",targetDifficulty:20,id:"r2-013",order:13,geometry:"square",features:["direction"],title:"\u5F15\u5BFC \xB7 \u6309\u62D0\u89D2\u8FDB\u51FA",caption:"\u62D0\u89D2\u8FDE\u63A5\u54EA\u4E24\u8FB9\uFF0C\u5C31\u4ECE\u54EA\u4E24\u8FB9\u8FDB\u51FA\uFF0C\u53EF\u53CD\u5411\u3002",tutorial:"corner",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:2,y:0,w:1,h:1},{id:"t3",x:0,y:1,w:1,h:1},{id:"t4",x:1,y:1,w:1,h:1,direction:"lu"},{id:"t5",x:2,y:1,w:1,h:1}],previousId:"tutorial-corner",playerBand:null,estimatedBand:"\u6559\u5B66",objectiveScore:17},{id:"r2-014",contentRevision:2,order:14,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053\u518D\u63A5\u529B",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:13},{id:"c2",x:2,y:0,w:1,h:1,direction:"lr"},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1,direction:"lu"},{id:"c10",x:2,y:2,w:1,h:1},{id:"c11",x:3,y:2,w:1,h:1,clue:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1},{id:"c14",x:2,y:3,w:1,h:1}],walls:[["c10","c11"]],previousId:"campaign200-067",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:20},{id:"r2-015",contentRevision:2,order:15,mode:"campaign-200-r2",geometry:"square",features:["direction"],title:"\u8BA4\u6E05\u62D0\u89D2",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,direction:"dl"},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,clue:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1,clue:5},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1}],previousId:"campaign200-025",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:13},{id:"r2-016",contentRevision:2,order:16,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053 \xB7 \u5899\u7684\u9009\u62E9",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,clue:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1,clue:10},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,direction:"ru"},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1}],walls:[["c2","c6"]],previousId:"campaign200-097",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:27},{mode:"campaign-200-r2",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,role:"\u5F15\u5BFC",targetDifficulty:32,id:"r2-017",order:17,geometry:"blocks",features:["big","alternation"],title:"\u5F15\u5BFC \xB7 \u84DD\u6A59\u4EA4\u66FF",caption:"\u84DD\u8272\u3001\u6A59\u8272\u4EA4\u66FF\u8D70\uFF0C\u76F8\u90BB\u540C\u8272\u4E5F\u4E0D\u80FD\u8FDE\u7EED\u7ECF\u8FC7\u3002",tutorial:"colour",cells:[{id:"t0",x:0,y:1,w:1,h:1,clue:1,category:"circle"},{id:"t1",x:0,y:0,w:2,h:1,category:"triangle"},{id:"t2",x:1,y:1,w:1,h:1,category:"circle"}],previousId:"tutorial-colour",playerBand:null,estimatedBand:"\u6559\u5B66",objectiveScore:0},{id:"r2-018",contentRevision:2,order:18,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053 \xB7 \u5899\u7684\u82B1\u56ED",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u5CF0\u503C",targetDifficulty:40,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,direction:"dl"},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1,clue:12},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1,clue:1}],walls:[["c5","c6"]],previousId:"campaign200-130",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:40},{id:"r2-019",contentRevision:2,order:19,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","walls"],title:"\u53CC\u8272 \xB7 \u5899\u7684\u9009\u62E9",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u56DE\u843D",targetDifficulty:22,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle",clue:12},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:3,y:0,w:1,h:1,category:"circle"},{id:"c4",x:0,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:2,y:1,w:1,h:1,category:"circle"},{id:"c7",x:3,y:1,w:1,h:2,category:"triangle"},{id:"c8",x:0,y:2,w:1,h:1,category:"circle"},{id:"c9",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c10",x:2,y:2,w:1,h:1,category:"circle"},{id:"c11",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c12",x:1,y:3,w:1,h:1,category:"circle"},{id:"c13",x:2,y:3,w:1,h:1,category:"triangle"},{id:"c14",x:3,y:3,w:1,h:1,clue:1,category:"circle"}],walls:[["c6","c7"]],previousId:"campaign200-185",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:20},{id:"r2-020",contentRevision:2,order:20,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u9009\u62E9",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u6536\u675F",targetDifficulty:27,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle",direction:"dr"},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:3,y:0,w:1,h:1,category:"circle"},{id:"c4",x:0,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:2,y:1,w:1,h:1,clue:1,category:"circle"},{id:"c7",x:3,y:1,w:1,h:1,category:"triangle",clue:2},{id:"c8",x:0,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:2,w:1,h:1,category:"circle"},{id:"c10",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c11",x:3,y:2,w:1,h:2,category:"circle"},{id:"c12",x:0,y:3,w:1,h:1,category:"circle",clue:11},{id:"c13",x:1,y:3,w:2,h:1,category:"triangle"}],previousId:"campaign200-134",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:27},{id:"r2-021",contentRevision:2,order:21,mode:"campaign-200-r2",geometry:"blocks",features:["big","walls"],title:"\u5BF9\u79F0\u5C0F\u82B1\u56ED",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:2,h:2},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,clue:7},{id:"c5",x:0,y:2,w:1,h:1},{id:"c6",x:1,y:2,w:1,h:1},{id:"c7",x:2,y:2,w:1,h:1},{id:"c8",x:3,y:2,w:1,h:1,clue:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1}],walls:[["c1","c2"]],previousId:"campaign200-023",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:31},{id:"r2-022",contentRevision:2,order:22,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u9009\u62E9",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"circle"},{id:"c1",x:1,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:2,y:0,w:1,h:1,category:"circle",clue:7},{id:"c3",x:3,y:0,w:1,h:1,category:"triangle"},{id:"c4",x:0,y:1,w:1,h:2,category:"triangle"},{id:"c5",x:1,y:1,w:1,h:1,category:"circle"},{id:"c6",x:2,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:3,y:1,w:1,h:1,category:"circle"},{id:"c8",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:2,y:2,w:1,h:1,category:"circle"},{id:"c10",x:3,y:2,w:1,h:1,category:"triangle"},{id:"c11",x:0,y:3,w:1,h:1,clue:1,category:"circle"},{id:"c12",x:1,y:3,w:1,h:1,category:"circle"},{id:"c13",x:2,y:3,w:1,h:1,category:"triangle",direction:"ru"},{id:"c14",x:3,y:3,w:1,h:1,category:"circle"}],previousId:"campaign200-145",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:32},{geometry:"blocks",cells:[{id:"t0",x:0,y:1,w:1,h:1,clue:1},{id:"t1",x:0,y:0,w:2,h:1,parity:"even"},{id:"t2",x:1,y:1,w:1,h:1}],features:["big","parity"],mode:"campaign-200-r2",tutorial:"parity",caption:"\u5947/\u5076\u8981\u6C42\u8FD9\u4E00\u683C\u7684\u8BBF\u95EE\u6B65\u53F7\u4E3A\u5947\u6570/\u5076\u6570\u3002",previousId:null,id:"r2-023",order:23,chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:32,objectiveScore:4,title:"\u5F15\u5BFC \xB7 \u5947\u5076\u6B65\u53F7"},{id:"r2-024",contentRevision:2,order:24,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","direction"],title:"\u5947\u5076 \xB7 \u901A\u9053\u7684\u9009\u62E9",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,parity:"odd"},{id:"c1",x:1,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],clue:2},{id:"c2",x:0,y:1,w:1,h:1},{id:"c3",x:2,y:1,w:1,h:1,clue:1},{id:"c4",x:0,y:2,w:1,h:1},{id:"c5",x:1,y:2,w:1,h:1},{id:"c6",x:2,y:2,w:1,h:1},{id:"c7",x:0,y:3,w:1,h:1,direction:"ru"},{id:"c8",x:1,y:3,w:1,h:1,direction:"lr"},{id:"c9",x:2,y:3,w:1,h:1}],previousId:"campaign200-036",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:33},{id:"r2-025",contentRevision:2,order:25,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u4E24\u89D2\u76F8\u63A5",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1,direction:"dl"},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,direction:"ru"},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1,clue:1}],walls:[["c4","c8"]],previousId:"campaign200-040",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:33},{id:"r2-026",contentRevision:2,order:26,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","direction"],title:"\u53CC\u8272 \xB7 \u901A\u9053\u7684\u82B1\u56ED",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:3,y:0,w:1,h:1,category:"circle"},{id:"c1",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:1,y:0,w:1,h:1,category:"circle",direction:"lr"},{id:"c3",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c4",x:2,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]],category:"triangle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:0,y:1,w:1,h:1,category:"circle"},{id:"c7",x:3,y:2,w:1,h:1,clue:1,category:"circle"},{id:"c8",x:1,y:2,w:1,h:1,category:"circle"},{id:"c9",x:0,y:2,w:1,h:1,category:"triangle",direction:"ru"}],previousId:"campaign200-030",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:29},{id:"r2-027",contentRevision:2,order:27,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","walls"],title:"\u53CC\u8272 \xB7 \u5899\u7684\u9009\u62E9",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle",clue:6},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:3,y:0,w:1,h:1,category:"circle"},{id:"c4",x:0,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:2,y:1,w:1,h:1,category:"circle"},{id:"c7",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c8",x:0,y:2,w:1,h:2,category:"triangle"},{id:"c9",x:1,y:2,w:2,h:1,category:"triangle"},{id:"c10",x:3,y:2,w:1,h:1,clue:1,category:"circle"},{id:"c11",x:1,y:3,w:1,h:1,category:"circle"}],walls:[["c1","c5"],["c6","c9"]],previousId:"campaign200-196",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:29},{id:"r2-028",contentRevision:2,order:28,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u82B1\u56ED",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u5CF0\u503C",targetDifficulty:40,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c2",x:3,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:2,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:2},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1,clue:1},{id:"c11",x:1,y:3,w:1,h:1},{id:"c12",x:3,y:3,w:1,h:1,parity:"even"}],walls:[["c5","c9"]],previousId:"campaign200-090",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:40},{geometry:"square",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:0,y:1,w:1,h:1},{id:"t3",x:1,y:1,w:1,h:1}],features:["rhythm-door"],mode:"campaign-200-r2",doors:[{edge:["t2","t3"],initialOpen:!1}],tutorial:"rhythm-door",caption:"\u95E8\u968F\u843D\u683C\u5207\u6362\uFF1B\u5F00\u65F6\u901A\u8FC7\u540E\u4FDD\u6301\u5F00\u542F\uFF0C\u64A4\u9500\u7A7F\u95E8\u624D\u6062\u590D\u5207\u6362\u3002",previousId:null,id:"r2-029",order:29,chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:22,objectiveScore:4,title:"\u5F15\u5BFC \xB7 \u95E8\u968F\u811A\u6B65\u5207\u6362"},{id:"r2-030",contentRevision:2,order:30,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u6536\u675F",targetDifficulty:27,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:2,h:1},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1,parity:"odd"},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1,direction:"lu"},{id:"c11",x:0,y:3,w:1,h:1,clue:1},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:2,y:3,w:1,h:1}],doors:[{edge:["c0","c1"],initialOpen:!1}],walls:[["c5","c6"]],previousId:"campaign200-095",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:28},{id:"r2-031",contentRevision:2,order:31,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door","walls"],title:"\u5899\u548C\u95E8\u5206\u5F00\u770B",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,clue:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:2,h:2},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:0,y:2,w:1,h:1},{id:"c6",x:1,y:2,w:1,h:1},{id:"c7",x:2,y:2,w:1,h:1},{id:"c8",x:3,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1,clue:10},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1}],doors:[{edge:["c5","c9"],initialOpen:!1}],walls:[["c0","c1"]],previousId:"campaign200-055",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:32},{id:"r2-032",contentRevision:2,order:32,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:3,y:0,w:1,h:1,clue:1,category:"circle"},{id:"c1",x:2,y:0,w:1,h:1,category:"triangle",direction:"dl"},{id:"c2",x:0,y:0,w:2,h:1,category:"circle",clue:5},{id:"c3",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c4",x:2,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:0,y:1,w:1,h:2,category:"triangle"},{id:"c7",x:3,y:2,w:1,h:1,category:"circle"},{id:"c8",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:2,w:1,h:1,category:"circle"},{id:"c10",x:3,y:3,w:1,h:1,category:"triangle"},{id:"c11",x:2,y:3,w:1,h:1,category:"circle"},{id:"c12",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c13",x:0,y:3,w:1,h:1,category:"circle"}],doors:[{edge:["c11","c10"],initialOpen:!1}],walls:[["c6","c9"]],previousId:"campaign200-105",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:31},{id:"r2-033",contentRevision:2,order:33,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,clue:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1,clue:3},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1,direction:"lu"}],doors:[{edge:["c4","c1"],initialOpen:!1}],walls:[["c6","c7"]],previousId:"campaign200-115",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{id:"r2-034",contentRevision:2,order:34,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:1,category:"triangle"},{id:"c1",x:0,y:1,w:1,h:1,category:"circle"},{id:"c2",x:0,y:2,w:1,h:1,category:"triangle"},{id:"c3",x:0,y:3,w:1,h:1,category:"circle"},{id:"c4",x:1,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c6",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c7",x:2,y:0,w:1,h:1,clue:1,category:"circle"},{id:"c8",x:2,y:1,w:1,h:1,category:"triangle"},{id:"c9",x:2,y:2,w:2,h:1,category:"circle"},{id:"c10",x:2,y:3,w:1,h:1,category:"circle"},{id:"c11",x:3,y:0,w:1,h:1,category:"triangle",direction:"dl"},{id:"c12",x:3,y:1,w:1,h:1,category:"circle"},{id:"c13",x:3,y:3,w:1,h:1,category:"triangle"}],doors:[{edge:["c3","c6"],initialOpen:!1}],walls:[["c8","c9"]],previousId:"campaign200-127",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{geometry:"hex",features:[],cells:[{id:"t0",q:0,r:0,clue:1},{id:"t1",q:1,r:0},{id:"t2",q:2,r:0,clue:4},{id:"t3",q:0,r:1},{id:"t4",q:1,r:1},{id:"t5",q:2,r:1,clue:6}],tutorial:"hex",caption:"\u516D\u8FB9\u5F62\u6709\u516D\u4E2A\u5171\u8FB9\u65B9\u5411\uFF0C\u6BCF\u683C\u4E00\u6B65\u3002",previousId:null,id:"r2-035",order:35,chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",mode:"campaign-200-r2",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:42,objectiveScore:19,title:"\u5F15\u5BFC \xB7 \u516D\u5411\u5171\u8FB9"},{id:"r2-036",contentRevision:2,order:36,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door","parity"],title:"\u95E8 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,parity:"odd"},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c5",x:2,y:1,w:1,h:1,clue:1},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1},{id:"c11",x:1,y:3,w:1,h:1,clue:11}],doors:[{edge:["c11","c10"],initialOpen:!1}],previousId:"campaign200-042",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:42},{id:"r2-037",contentRevision:2,order:37,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"circle",direction:"dr"},{id:"c1",x:1,y:0,w:1,h:1,category:"triangle",direction:"lr"},{id:"c2",x:2,y:0,w:1,h:1,category:"circle"},{id:"c3",x:3,y:0,w:1,h:1,category:"triangle"},{id:"c4",x:0,y:1,w:1,h:1,category:"triangle"},{id:"c5",x:1,y:1,w:1,h:1,category:"circle"},{id:"c6",x:2,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:3,y:1,w:1,h:1,category:"circle"},{id:"c8",x:0,y:2,w:1,h:1,category:"circle"},{id:"c9",x:1,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],category:"circle"},{id:"c10",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c11",x:2,y:3,w:1,h:1,category:"triangle"},{id:"c12",x:3,y:3,w:1,h:1,clue:1,category:"circle"}],previousId:"campaign200-123",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:42},{id:"r2-038",contentRevision:2,order:38,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","walls"],title:"\u4E24\u4E2A\u53CC\u8272\u67A2\u7EBD",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u5CF0\u503C",targetDifficulty:50,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:2,category:"triangle"},{id:"c1",x:1,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:2,y:0,w:1,h:1,category:"circle"},{id:"c3",x:3,y:0,w:1,h:1,category:"triangle"},{id:"c4",x:1,y:1,w:1,h:1,category:"circle",clue:11},{id:"c5",x:2,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:3,y:1,w:1,h:1,category:"circle"},{id:"c7",x:0,y:2,w:1,h:1,category:"circle"},{id:"c8",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:2,y:2,w:1,h:1,category:"circle"},{id:"c10",x:3,y:2,w:1,h:1,category:"triangle"},{id:"c11",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c12",x:1,y:3,w:1,h:1,category:"circle"},{id:"c13",x:2,y:3,w:2,h:2,shape:[[0,0],[0,1],[1,0]],category:"circle"},{id:"c14",x:0,y:4,w:1,h:1,clue:1,category:"circle"},{id:"c15",x:1,y:4,w:1,h:1,category:"triangle"}],walls:[["c9","c10"],["c4","c5"]],previousId:"campaign200-073",playerBand:"\u9700\u8981\u63D0\u793A",estimatedBand:"\u9700\u8981\u63D0\u793A",objectiveScore:46},{id:"r2-039",contentRevision:2,order:39,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u56DE\u843D",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,clue:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1,direction:"dr"},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,clue:7},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1}],doors:[{edge:["c5","c4"],initialOpen:!1}],walls:[["c8","c9"]],previousId:"campaign200-137",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{id:"r2-040",contentRevision:2,order:40,mode:"campaign-200-r2",geometry:"square",features:["direction"],title:"\u4E0A\u4E0B\u901A\u9053",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u6536\u675F",targetDifficulty:37,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,direction:"du"},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1,clue:1}],previousId:"campaign200-017",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:37},{id:"r2-041",contentRevision:2,order:41,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls","rhythm-door"],title:"\u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,parity:"odd"},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,clue:3},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:2,h:1},{id:"c14",x:3,y:3,w:1,h:1,clue:1}],doors:[{edge:["c3","c7"],initialOpen:!1}],walls:[["c4","c8"]],previousId:"campaign200-107",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:42},{id:"r2-042",contentRevision:2,order:42,mode:"campaign-200-r2",geometry:"blocks",features:["big","walls"],title:"\u7B2C\u4E00\u5EA7\u6865",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,clue:11},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:2,h:2},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:3,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1},{id:"c12",x:3,y:3,w:1,h:1,clue:1}],walls:[["c1","c5"],["c5","c10"]],previousId:"campaign200-050",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:41},{id:"r2-043",contentRevision:2,order:43,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u9009\u62E9",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:2,h:1},{id:"c2",x:3,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,parity:"odd"},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1,clue:4},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1,clue:1},{id:"c12",x:1,y:3,w:1,h:1}],walls:[["c1","c4"]],previousId:"campaign200-121",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:41},{id:"r2-044",contentRevision:2,order:44,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1,direction:"ru"},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,direction:"lr"},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1,clue:1}],doors:[{edge:["c4","c0"],initialOpen:!1}],walls:[["c6","c7"]],previousId:"campaign200-126",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:43},{geometry:"square",features:[],cells:[{id:"t0",x:0,y:0,w:1,h:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:2,y:0,w:1,h:1},{id:"t3",x:0,y:1,w:1,h:1},{id:"t4",x:1,y:1,w:1,h:1},{id:"t5",x:2,y:1,w:1,h:1,clue:4},{id:"t6",x:0,y:2,w:1,h:1},{id:"t7",x:1,y:2,w:1,h:1,clue:8}],tutorial:"unknown-start",caption:"\u6CA1\u6709\u6570\u5B571\u65F6\u8981\u627E\u8D77\u70B9\uFF1B\u5148\u770B\u6570\u5B57\u7EBF\u7D22\uFF0C\u627E\u51FA\u7B2C\u4E00\u6B65\u3002",previousId:null,id:"r2-045",order:45,chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",mode:"campaign-200-r2",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:42,objectiveScore:25,title:"\u5F15\u5BFC \xB7 \u4ECE\u54EA\u91CC\u51FA\u53D1"},{id:"r2-046",contentRevision:2,order:46,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u9009\u62E9",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:1},{id:"c1",x:2,y:0,w:1,h:1},{id:"c2",x:3,y:0,w:1,h:1,parity:"odd"},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:2,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1},{id:"c11",x:1,y:3,w:1,h:1,clue:1}],walls:[["c0","c1"]],previousId:"campaign200-154",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:41},{id:"r2-047",contentRevision:2,order:47,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u82B1\u56ED",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:1,w:1,h:2},{id:"c1",x:0,y:0,w:1,h:1,direction:"dr"},{id:"c2",x:1,y:3,w:1,h:1},{id:"c3",x:1,y:2,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:1,y:0,w:1,h:1,clue:5},{id:"c6",x:2,y:3,w:1,h:1},{id:"c7",x:2,y:2,w:1,h:1},{id:"c8",x:2,y:1,w:1,h:1},{id:"c9",x:2,y:0,w:1,h:1},{id:"c10",x:3,y:3,w:1,h:1},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:3,y:0,w:1,h:1},{id:"c13",x:4,y:2,w:1,h:2,parity:"even"},{id:"c14",x:4,y:1,w:1,h:1,clue:1},{id:"c15",x:4,y:0,w:1,h:1}],doors:[{edge:["c2","c3"],initialOpen:!1}],walls:[["c3","c7"]],previousId:"campaign200-150",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:42},{id:"r2-048",contentRevision:2,order:48,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door"],title:"\u5927\u5757\u6539\u53D8\u8282\u62CD",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u5CF0\u503C",targetDifficulty:50,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:2,clue:13},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1,clue:1},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:2,h:2},{id:"c13",x:3,y:3,w:1,h:1},{id:"c14",x:0,y:4,w:1,h:1}],doors:[{edge:["c14","c11"],initialOpen:!1}],previousId:"campaign200-076",playerBand:"\u9700\u8981\u63D0\u793A",estimatedBand:"\u9700\u8981\u63D0\u793A",objectiveScore:69},{id:"r2-049",contentRevision:2,order:49,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u5C0F\u5F84",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u56DE\u843D",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:0,y:1,w:1,h:1},{id:"c2",x:0,y:2,w:1,h:1,clue:8},{id:"c3",x:0,y:3,w:2,h:1},{id:"c4",x:1,y:0,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:1,y:2,w:1,h:1},{id:"c7",x:2,y:0,w:1,h:1},{id:"c8",x:2,y:1,w:1,h:1,direction:"lu"},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:2,y:3,w:2,h:1,parity:"even"},{id:"c11",x:3,y:0,w:1,h:1,clue:1},{id:"c12",x:3,y:1,w:1,h:1},{id:"c13",x:3,y:2,w:1,h:1}],doors:[{edge:["c4","c7"],initialOpen:!1}],walls:[["c4","c5"]],previousId:"campaign200-139",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{id:"r2-050",contentRevision:2,order:50,mode:"campaign-200-r2",geometry:"square",features:["rhythm-door"],title:"\u95E8\u968F\u811A\u6B65\u5F00\u5173",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u6536\u675F",targetDifficulty:37,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:8},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,clue:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1}],doors:[{edge:["c2","c1"],initialOpen:!1}],previousId:"campaign200-043",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:37},{id:"r2-051",contentRevision:2,order:51,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,direction:"dr"},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1,clue:13},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:2,h:1},{id:"c9",x:2,y:2,w:1,h:1,clue:1},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:2,y:3,w:1,h:1,parity:"odd"},{id:"c14",x:3,y:3,w:1,h:1}],previousId:"campaign200-103",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:43},{id:"r2-052",contentRevision:2,order:52,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053 \xB7 \u5899\u7684\u9009\u62E9",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,clue:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,direction:"lu"},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1}],walls:[["c1","c4"]],previousId:"campaign200-194",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:44},{id:"r2-053",contentRevision:2,order:53,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","walls"],title:"\u53CC\u8272\u8DE8\u533A",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:2,category:"triangle"},{id:"c1",x:2,y:0,w:1,h:1,category:"circle"},{id:"c2",x:3,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:2,y:1,w:1,h:2,category:"circle",clue:9},{id:"c4",x:3,y:1,w:1,h:1,category:"circle"},{id:"c5",x:0,y:2,w:1,h:1,category:"circle"},{id:"c6",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c7",x:3,y:2,w:1,h:1,category:"triangle"},{id:"c8",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:3,w:1,h:1,category:"circle"},{id:"c10",x:2,y:3,w:1,h:1,category:"triangle"},{id:"c11",x:3,y:3,w:1,h:1,category:"circle"},{id:"c12",x:0,y:4,w:1,h:1,category:"circle"},{id:"c13",x:1,y:4,w:1,h:1,category:"triangle"},{id:"c14",x:2,y:4,w:1,h:1,clue:1,category:"circle"}],walls:[["c9","c10"],["c3","c6"]],previousId:"campaign200-068",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:44},{id:"r2-054",contentRevision:2,order:54,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls","rhythm-door"],title:"\u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:1},{id:"c1",x:2,y:0,w:1,h:1,clue:11},{id:"c2",x:3,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,parity:"odd"},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:2},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:3,y:3,w:1,h:1},{id:"c14",x:0,y:4,w:1,h:1,clue:1}],doors:[{edge:["c1","c5"],initialOpen:!1}],walls:[["c3","c4"]],previousId:"campaign200-182",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:44},{id:"r2-055",contentRevision:2,order:55,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u4EA4\u9519",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:3,y:0,w:1,h:1,clue:1,category:"circle"},{id:"c1",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:1,y:0,w:1,h:1,category:"circle"},{id:"c3",x:0,y:0,w:1,h:1,category:"triangle",direction:"dr"},{id:"c4",x:3,y:1,w:1,h:2,category:"circle"},{id:"c5",x:2,y:1,w:1,h:1,category:"circle"},{id:"c6",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:0,y:1,w:1,h:1,category:"circle"},{id:"c8",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:2,w:1,h:2,category:"triangle"},{id:"c10",x:0,y:2,w:1,h:1,category:"triangle"},{id:"c11",x:3,y:3,w:1,h:1,category:"triangle"},{id:"c12",x:2,y:3,w:1,h:1,category:"circle"},{id:"c13",x:0,y:3,w:1,h:1,category:"circle"}],doors:[{edge:["c13","c10"],initialOpen:!1}],walls:[["c6","c7"]],previousId:"campaign200-138",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:39},{id:"r2-056",contentRevision:2,order:56,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls","rhythm-door"],title:"\u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1,clue:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1,parity:"odd"},{id:"c11",x:1,y:3,w:1,h:1}],doors:[{edge:["c7","c11"],initialOpen:!1}],walls:[["c3","c4"]],previousId:"campaign200-063",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:39},{id:"r2-057",contentRevision:2,order:57,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door"],title:"\u987A\u7740\u8282\u62CD\u6536\u5C3E",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:2,h:2},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1,clue:11},{id:"c13",x:0,y:4,w:1,h:1,clue:1}],doors:[{edge:["c7","c3"],initialOpen:!1}],previousId:"campaign200-058",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:38},{id:"r2-058",contentRevision:2,order:58,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076\u5206\u914D\u533A\u57DF",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u5CF0\u503C",targetDifficulty:50,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1,parity:"even"},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1,parity:"odd"},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:2,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:2,y:3,w:2,h:2,shape:[[0,0],[1,0],[0,1]]},{id:"c14",x:0,y:4,w:1,h:1},{id:"c15",x:1,y:4,w:1,h:1},{id:"c16",x:3,y:4,w:1,h:1,clue:1}],walls:[["c8","c9"],["c12","c15"]],previousId:"campaign200-077",playerBand:"\u9700\u8981\u63D0\u793A",estimatedBand:"\u9700\u8981\u63D0\u793A",objectiveScore:60},{id:"r2-059",contentRevision:2,order:59,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u5C0F\u5F84",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u56DE\u843D",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,direction:"lr"},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1,direction:"lu"},{id:"c9",x:0,y:3,w:1,h:1,clue:1}],doors:[{edge:["c1","c2"],initialOpen:!1}],walls:[["c6","c7"]],previousId:"campaign200-159",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{id:"r2-060",contentRevision:2,order:60,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u5C0F\u5F84",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u6536\u675F",targetDifficulty:37,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,direction:"dr"},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1,parity:"even"},{id:"c4",x:1,y:1,w:1,h:1,clue:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:2,clue:3},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:1,y:3,w:1,h:1},{id:"c10",x:2,y:3,w:1,h:1}],previousId:"campaign200-169",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:36},{id:"r2-061",contentRevision:2,order:61,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door","direction"],title:"\u95E8 \xB7 \u901A\u9053\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c1",x:2,y:0,w:1,h:1},{id:"c2",x:3,y:0,w:1,h:1,clue:1},{id:"c3",x:1,y:1,w:1,h:1},{id:"c4",x:2,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1,clue:7},{id:"c8",x:2,y:2,w:1,h:1,direction:"lr"},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1},{id:"c11",x:1,y:3,w:1,h:1,direction:"lu"}],doors:[{edge:["c9","c8"],initialOpen:!1}],previousId:"campaign200-045",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:57},{id:"r2-062",contentRevision:2,order:62,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u4EA4\u9519",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:2,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:0,y:0,w:1,h:1},{id:"c3",x:3,y:1,w:1,h:1,clue:1},{id:"c4",x:2,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:0,y:1,w:1,h:1},{id:"c7",x:3,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:0,y:2,w:1,h:1},{id:"c11",x:3,y:3,w:1,h:1,direction:"lu"},{id:"c12",x:2,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1},{id:"c14",x:0,y:3,w:1,h:1},{id:"c15",x:2,y:4,w:1,h:1},{id:"c16",x:1,y:4,w:1,h:1}],doors:[{edge:["c15","c12"],initialOpen:!1}],walls:[["c8","c12"],["c5","c6"]],previousId:"campaign200-148",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:57},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:2,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:3,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c12",category:"circle"},{x:4,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c15",category:"circle"},{x:2,y:3,w:1,h:1,id:"c16",category:"circle"},{x:3,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c18",category:"circle"},{x:0,y:4,w:1,h:1,id:"c19",category:"circle"},{x:1,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c22",category:"circle",direction:"lu"},{x:4,y:4,w:1,h:1,id:"c23",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c17","c18"]],previousId:null,id:"r2-063",order:63,chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:57,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 63",caption:""},{id:"r2-064",contentRevision:2,order:64,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,parity:"odd"},{id:"c3",x:3,y:0,w:1,h:2},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1,parity:"odd"},{id:"c11",x:0,y:3,w:2,h:1},{id:"c12",x:2,y:3,w:1,h:1},{id:"c13",x:3,y:3,w:1,h:1,clue:1}],walls:[["c6","c9"],["c2","c6"]],previousId:"campaign200-176",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:56},{id:"r2-065",contentRevision:2,order:65,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","parity"],title:"\u53CC\u8272 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:0,y:1,w:1,h:2,category:"circle"},{id:"c4",x:1,y:1,w:1,h:1,category:"circle",parity:"odd"},{id:"c5",x:2,y:1,w:1,h:1,category:"circle"},{id:"c6",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c7",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c8",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:3,w:1,h:1,category:"circle"}],previousId:"campaign200-111",playerBand:"\u559C\u6B22\u7684\u672A\u77E5\u8D77\u70B9",estimatedBand:"\u559C\u6B22\u7684\u672A\u77E5\u8D77\u70B9",objectiveScore:60},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:1,r:0,clue:1,category:"circle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"triangle"},{id:"c10",q:2,r:0,category:"triangle"},{id:"c11",q:2,r:1,category:"circle"},{id:"c12",q:2,r:2,category:"triangle"},{id:"c13",q:2,r:3,category:"circle"},{id:"c14",q:2,r:4,category:"triangle"},{id:"c15",q:3,r:0,category:"circle"},{id:"c16",q:3,r:1,category:"triangle",clue:18},{id:"c17",q:3,r:2,category:"circle"},{id:"c18",q:3,r:3,category:"triangle"},{id:"c19",q:3,r:4,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c11","c12"]],previousId:null,id:"r2-066",order:66,chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:58,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 66",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14",direction:"lu"},{x:0,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17",clue:1},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21",direction:"ru"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"}],features:["direction","rhythm-door"],contentRevision:2,doors:[{edge:["c8","c7"],initialOpen:!1}],previousId:null,id:"r2-067",order:67,chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:58,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 67",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",clue:1},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",direction:"dr"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12",direction:"lu"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14",direction:"du"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"}],features:["direction","walls"],contentRevision:2,walls:[["c13","c18"],["c6","c11"]],previousId:null,id:"r2-068",order:68,chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u5CF0\u503C",targetDifficulty:65,objectiveScore:65,title:"\u65B9\u683C \xB7 \u4EA4\u9519\u6311\u6218 68",caption:""},{id:"r2-069",contentRevision:2,order:69,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u56DE\u843D",targetDifficulty:47,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,parity:"odd"},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,clue:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1,clue:5},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]]},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1}],walls:[["c1","c5"]],previousId:"campaign200-165",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:47},{id:"r2-070",contentRevision:2,order:70,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u6536\u675F",targetDifficulty:52,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:2},{id:"c2",x:2,y:0,w:2,h:1,parity:"odd"},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:2,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1,clue:1},{id:"c11",x:1,y:3,w:1,h:1,parity:"odd"},{id:"c12",x:2,y:3,w:1,h:1},{id:"c13",x:3,y:3,w:1,h:1,direction:"lu"}],previousId:"campaign200-092",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:52},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:2,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",clue:1,category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:2,y:1,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c7",category:"circle"},{x:5,y:1,w:1,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c12",category:"circle"},{x:5,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c15",category:"circle",clue:17},{x:2,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c17",category:"circle"},{x:4,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c19",category:"circle"},{x:0,y:4,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c22",category:"circle"},{x:3,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c24",category:"circle"},{x:5,y:4,w:1,h:1,id:"c25",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c18","c24"],["c16","c22"],["c12","c18"]],previousId:null,id:"r2-071",order:71,chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:57,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 71",caption:""},{id:"r2-072",contentRevision:2,order:72,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c1",x:0,y:1,w:1,h:1,category:"circle"},{id:"c2",x:0,y:2,w:1,h:1,category:"triangle",direction:"dr"},{id:"c3",x:0,y:3,w:1,h:1,clue:1,category:"circle"},{id:"c4",x:1,y:0,w:1,h:1,category:"circle",direction:"lr"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:1,y:2,w:1,h:1,category:"circle"},{id:"c7",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c8",x:2,y:0,w:2,h:1,category:"triangle"},{id:"c9",x:2,y:1,w:1,h:1,category:"circle"},{id:"c10",x:2,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]],category:"circle"},{id:"c11",x:3,y:1,w:1,h:1,category:"triangle"}],doors:[{edge:["c1","c0"],initialOpen:!1}],walls:[["c5","c9"]],previousId:"campaign200-072",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:55},{id:"r2-073",contentRevision:2,order:73,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u9009\u62E9",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c1",x:1,y:0,w:2,h:1,category:"circle"},{id:"c2",x:3,y:0,w:1,h:1,category:"circle"},{id:"c3",x:0,y:1,w:1,h:1,category:"circle"},{id:"c4",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c5",x:2,y:1,w:1,h:1,category:"circle"},{id:"c6",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:0,y:2,w:1,h:1,category:"triangle"},{id:"c8",x:1,y:2,w:1,h:1,category:"circle"},{id:"c9",x:2,y:2,w:1,h:1,category:"triangle",direction:"lu"},{id:"c10",x:3,y:2,w:1,h:1,category:"circle"},{id:"c11",x:0,y:3,w:1,h:1,clue:1,category:"circle"},{id:"c12",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c13",x:2,y:3,w:1,h:1,category:"circle"},{id:"c14",x:3,y:3,w:1,h:1,category:"triangle"}],previousId:"campaign200-101",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:55},{id:"r2-074",contentRevision:2,order:74,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls","rhythm-door"],title:"\u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u4EA4\u9519",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:2,h:1},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:2},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:2,y:3,w:1,h:1,parity:"odd"},{id:"c13",x:3,y:3,w:1,h:1}],doors:[{edge:["c10","c6"],initialOpen:!1}],walls:[["c8","c12"]],previousId:"campaign200-118",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:55},{mode:"campaign-200-r2",geometry:"square",cells:[{x:1,y:0,w:1,h:1,id:"c0",clue:1},{x:2,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:1,id:"c9",direction:"ru"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12",clue:17},{x:4,y:2,w:1,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17"},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19",clue:8},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"}],features:["direction","walls"],contentRevision:2,walls:[["c1","c2"]],previousId:null,id:"r2-075",order:75,chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:59,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 75",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:12},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9",parity:"even"},{x:5,y:1,w:1,h:2,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12",clue:1},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:2,h:1,id:"c25"}],features:["big","parity","walls"],contentRevision:2,walls:[["c6","c12"],["c5","c6"]],previousId:null,id:"r2-076",order:76,chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:58,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 76",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:2,h:1,id:"c6",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c10",category:"circle"},{x:0,y:2,w:1,h:1,id:"c11",category:"circle"},{x:1,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c13",category:"circle"},{x:4,y:2,w:1,h:1,id:"c14",clue:1,category:"circle"},{x:5,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:0,y:3,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c16",category:"circle"},{x:2,y:3,w:1,h:1,id:"c17",category:"triangle",direction:"ru"},{x:3,y:3,w:1,h:1,id:"c18",category:"circle",clue:9},{x:4,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c22",category:"circle"},{x:3,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c24",category:"circle"},{x:5,y:4,w:1,h:1,id:"c25",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c22","c21"],initialOpen:!1}],previousId:null,id:"r2-077",order:77,chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:56,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 77",caption:""},{id:"r2-078",contentRevision:2,order:78,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","rhythm-door"],title:"\u5148\u5B9A\u5947\u5076\uFF0C\u518D\u5B9A\u8282\u62CD",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u5CF0\u503C",targetDifficulty:65,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1,parity:"odd"},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1,clue:8},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1,clue:1},{id:"c10",x:2,y:2,w:1,h:1,parity:"even"},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:2,h:2,shape:[[0,0],[1,0],[0,1]]},{id:"c13",x:2,y:3,w:1,h:1},{id:"c14",x:3,y:3,w:1,h:1},{id:"c15",x:1,y:4,w:1,h:1},{id:"c16",x:2,y:4,w:2,h:1}],doors:[{edge:["c3","c7"],initialOpen:!1}],previousId:"campaign200-085",playerBand:"\u9700\u8981\u63D0\u793A",estimatedBand:"\u9700\u8981\u63D0\u793A",objectiveScore:59},{id:"r2-079",contentRevision:2,order:79,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u4EA4\u9519",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u56DE\u843D",targetDifficulty:47,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle",direction:"dr"},{id:"c3",x:3,y:0,w:1,h:1,category:"circle"},{id:"c4",x:0,y:1,w:2,h:1,category:"triangle"},{id:"c5",x:2,y:1,w:1,h:1,clue:1,category:"circle"},{id:"c6",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:0,y:2,w:1,h:1,category:"circle"},{id:"c8",x:1,y:2,w:2,h:1,category:"triangle"},{id:"c9",x:3,y:2,w:1,h:1,category:"circle"},{id:"c10",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c11",x:1,y:3,w:1,h:1,category:"circle"},{id:"c12",x:2,y:3,w:1,h:1,category:"circle"},{id:"c13",x:3,y:3,w:1,h:1,category:"triangle"},{id:"c14",x:0,y:4,w:1,h:1,category:"circle"},{id:"c15",x:1,y:4,w:1,h:1,category:"triangle"}],previousId:"campaign200-178",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:47},{id:"r2-080",contentRevision:2,order:80,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053 \xB7 \u5899\u7684\u4EA4\u9519",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u6536\u675F",targetDifficulty:52,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,clue:10},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1},{id:"c14",x:2,y:3,w:1,h:1,direction:"lr"},{id:"c15",x:3,y:3,w:1,h:1,direction:"lu"},{id:"c16",x:0,y:4,w:1,h:1,clue:1}],walls:[["c4","c5"],["c6","c7"]],previousId:"campaign200-108",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:52},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:1,y:2,w:1,h:1,id:"c9"},{x:2,y:2,w:1,h:1,id:"c10"},{x:3,y:2,w:1,h:1,id:"c11"},{x:4,y:2,w:1,h:1,id:"c12"},{x:0,y:3,w:1,h:1,id:"c13"},{x:1,y:3,w:1,h:1,id:"c14",direction:"dr"},{x:2,y:3,w:1,h:1,id:"c15"},{x:3,y:3,w:1,h:1,id:"c16"},{x:4,y:3,w:1,h:1,id:"c17"},{x:0,y:4,w:1,h:1,id:"c18"},{x:1,y:4,w:1,h:1,id:"c19"},{x:3,y:4,w:1,h:1,id:"c20"},{x:4,y:4,w:1,h:1,id:"c21"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c7","c11"],initialOpen:!1}],walls:[["c1","c2"]],previousId:null,id:"r2-081",order:81,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:54,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 81",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:1,y:0,w:1,h:1,id:"c0"},{x:2,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3",clue:1},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12",direction:"dl"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:1,h:1,id:"c25"}],features:["direction","walls"],contentRevision:2,walls:[["c4","c5"]],previousId:null,id:"r2-082",order:82,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:56,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 82",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:0,y:1,w:1,h:1,id:"c3"},{x:1,y:1,w:1,h:1,id:"c4"},{x:2,y:1,w:1,h:1,id:"c5"},{x:3,y:1,w:1,h:1,id:"c6"},{x:0,y:2,w:1,h:1,id:"c7",parity:"even"},{x:1,y:2,w:1,h:1,id:"c8"},{x:2,y:2,w:1,h:1,id:"c9"},{x:3,y:2,w:1,h:2,id:"c10"},{x:0,y:3,w:1,h:1,id:"c11"},{x:1,y:3,w:1,h:1,id:"c12",direction:"ru"},{x:2,y:3,w:1,h:1,id:"c13"},{x:4,y:3,w:1,h:1,id:"c14"},{x:0,y:4,w:1,h:1,id:"c15"},{x:1,y:4,w:1,h:1,id:"c16"},{x:2,y:4,w:1,h:1,id:"c17"},{x:3,y:4,w:1,h:1,id:"c18"},{x:4,y:4,w:1,h:1,id:"c19"}],features:["big","direction","parity","walls"],contentRevision:2,walls:[["c3","c7"]],previousId:null,id:"r2-083",order:83,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:54,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 83",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:2,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c2",category:"circle"},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c4",category:"circle"},{x:1,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c6",category:"circle",direction:"du"},{x:4,y:1,w:1,h:1,id:"c7",category:"circle"},{x:0,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c8",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c10",category:"circle"},{x:4,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c12",category:"circle"},{x:2,y:3,w:1,h:1,id:"c13",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c15",category:"circle"},{x:0,y:4,w:1,h:1,id:"c16",category:"circle"},{x:1,y:4,w:1,h:1,id:"c17",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c18",category:"circle"},{x:3,y:4,w:2,h:1,id:"c19",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c6","c1"],initialOpen:!1}],previousId:null,id:"r2-084",order:84,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:54,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 84",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:2,h:1,id:"c2",category:"circle"},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"circle"},{x:2,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"triangle",direction:"lu"},{x:2,y:2,w:1,h:1,id:"c11",clue:1,category:"circle"},{x:3,y:2,w:1,h:1,id:"c12",category:"circle"},{x:4,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c14",category:"circle",clue:21},{x:1,y:3,w:1,h:1,id:"c15",category:"triangle",clue:22},{x:2,y:3,w:1,h:1,id:"c16",category:"circle"},{x:3,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c18",category:"circle"},{x:0,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c20",category:"circle"},{x:2,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c22",category:"circle"},{x:4,y:4,w:1,h:1,id:"c23",category:"triangle"}],features:["big","direction","alternation"],contentRevision:2,previousId:null,id:"r2-085",order:85,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:54,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 85",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",clue:1,category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c5",category:"circle"},{x:1,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c7",category:"circle"},{x:3,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c9",category:"circle"},{x:0,y:2,w:1,h:1,id:"c10",category:"triangle",direction:"du"},{x:1,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c11",category:"circle"},{x:3,y:2,w:2,h:1,id:"c12",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c13",category:"circle"},{x:2,y:3,w:1,h:1,id:"c14",category:"circle"},{x:3,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c16",category:"circle"},{x:0,y:4,w:1,h:1,id:"c17",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c18",category:"circle"},{x:2,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c20",category:"circle"},{x:4,y:4,w:1,h:1,id:"c21",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c13","c10"],initialOpen:!1}],previousId:null,id:"r2-086",order:86,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 86",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7",parity:"even"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17",clue:3},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:2,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20",clue:1},{x:3,y:4,w:1,h:1,id:"c21"},{x:4,y:4,w:1,h:1,id:"c22"},{x:5,y:4,w:1,h:1,id:"c23"}],features:["big","parity","walls"],contentRevision:2,walls:[["c9","c10"]],previousId:null,id:"r2-087",order:87,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 87",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4,clue:20},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0,clue:1},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4,parity:"odd"},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1,clue:8},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3,clue:12},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5,clue:16}],features:["parity","walls"],contentRevision:2,walls:[["c3","c9"],["c19","c20"]],previousId:null,id:"r2-088",order:88,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u5CF0\u503C",targetDifficulty:65,objectiveScore:65,title:"\u516D\u8FB9 \xB7 \u4EA4\u9519\u6311\u6218 88",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c1",clue:1,category:"circle"},{x:4,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:5,y:0,w:1,h:2,id:"c3",category:"circle"},{x:0,y:1,w:2,h:1,id:"c4",category:"circle"},{x:2,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c8",category:"circle"},{x:1,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c10",category:"circle"},{x:3,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c12",category:"circle"},{x:5,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c15",category:"circle"},{x:2,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c17",category:"circle"},{x:4,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c19",category:"circle",clue:19},{x:0,y:4,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c23",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c4","c5"]],previousId:null,id:"r2-089",order:89,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u56DE\u843D",targetDifficulty:47,objectiveScore:47,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 89",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c3",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"circle"},{x:2,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c7",category:"circle"},{x:0,y:2,w:1,h:1,id:"c8",category:"circle"},{x:1,y:2,w:2,h:1,id:"c9",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c10",category:"circle"},{x:4,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c13",category:"circle"},{x:2,y:3,w:1,h:1,id:"c14",clue:1,category:"circle"},{x:3,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c16",category:"circle",direction:"du"},{x:0,y:4,w:1,h:1,id:"c17",category:"circle"},{x:1,y:4,w:1,h:1,id:"c18",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c20",category:"circle"},{x:4,y:4,w:1,h:1,id:"c21",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c8","c12"],initialOpen:!1}],previousId:null,id:"r2-090",order:90,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u6536\u675F",targetDifficulty:52,objectiveScore:53,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 90",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6",parity:"odd"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11",clue:1},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13",direction:"dr"},{x:3,y:2,w:1,h:1,id:"c14",direction:"lu"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:1,h:1,id:"c20"},{x:4,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:0,y:4,w:1,h:1,id:"c23"},{x:1,y:4,w:2,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-091",order:91,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:57,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 91",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1,category:"circle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"triangle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:1,category:"triangle"},{id:"c12",q:2,r:2,category:"circle"},{id:"c13",q:2,r:3,category:"triangle"},{id:"c14",q:2,r:4,category:"circle"},{id:"c15",q:2,r:5,category:"triangle"},{id:"c16",q:3,r:1,category:"circle"},{id:"c17",q:3,r:2,category:"triangle"},{id:"c18",q:3,r:3,category:"circle"},{id:"c19",q:3,r:4,category:"circle"},{id:"c20",q:3,r:5,category:"circle"},{id:"c21",q:4,r:0,category:"triangle"},{id:"c22",q:4,r:1,category:"circle"},{id:"c23",q:4,r:3,category:"triangle"},{id:"c24",q:4,r:4,category:"triangle"},{id:"c25",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c2","c6"]],previousId:null,id:"r2-092",order:92,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:55,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 92",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:2,category:"circle"},{id:"c2",q:0,r:3,category:"triangle"},{id:"c3",q:0,r:5,category:"triangle"},{id:"c4",q:1,r:0,category:"circle"},{id:"c5",q:1,r:1,category:"triangle"},{id:"c6",q:1,r:2,category:"circle"},{id:"c7",q:1,r:3,category:"triangle"},{id:"c8",q:1,r:4,category:"circle"},{id:"c9",q:1,r:5,category:"circle"},{id:"c10",q:2,r:1,category:"triangle"},{id:"c11",q:2,r:2,clue:1,category:"circle"},{id:"c12",q:2,r:3,category:"triangle"},{id:"c13",q:2,r:4,category:"circle"},{id:"c14",q:2,r:5,category:"triangle"},{id:"c15",q:3,r:0,category:"circle"},{id:"c16",q:3,r:1,category:"triangle"},{id:"c17",q:3,r:2,category:"circle"},{id:"c18",q:3,r:3,category:"triangle"},{id:"c19",q:3,r:4,category:"circle"},{id:"c20",q:3,r:5,category:"triangle"},{id:"c21",q:4,r:0,category:"circle"},{id:"c22",q:4,r:1,category:"triangle"},{id:"c23",q:4,r:2,category:"circle"},{id:"c24",q:4,r:3,category:"triangle"},{id:"c25",q:4,r:4,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c13","c12"],initialOpen:!1}],walls:[["c18","c23"]],previousId:null,id:"r2-093",order:93,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:59,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 93",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17",clue:13},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"},{x:0,y:4,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21",clue:1},{x:2,y:4,w:1,h:1,id:"c22",direction:"ru"},{x:3,y:4,w:1,h:1,id:"c23"}],features:["direction","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-094",order:94,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:61,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 94",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",direction:"lr"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",parity:"even"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12",clue:1},{x:3,y:2,w:2,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15",clue:7},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17"},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c1","c2"],initialOpen:!1}],previousId:null,id:"r2-095",order:95,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 95",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c1",category:"circle"},{x:3,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c3",category:"circle"},{x:0,y:1,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"circle"},{x:3,y:1,w:1,h:2,id:"c6",category:"triangle"},{x:4,y:1,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c7",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c8",category:"circle"},{x:1,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c10",category:"circle"},{x:5,y:2,w:1,h:1,id:"c11",clue:1,category:"circle"},{x:0,y:3,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c13",category:"circle"},{x:2,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c15",category:"circle"},{x:4,y:3,w:1,h:1,id:"c16",category:"triangle",clue:22},{x:5,y:3,w:1,h:1,id:"c17",category:"circle"},{x:0,y:4,w:1,h:1,id:"c18",category:"circle"},{x:1,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c20",category:"circle"},{x:3,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c22",category:"circle"},{x:5,y:4,w:1,h:1,id:"c23",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c16","c22"],["c13","c14"]],previousId:null,id:"r2-096",order:96,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 96",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:1,clue:26},{id:"c7",q:1,r:2,clue:24},{id:"c8",q:1,r:3},{id:"c9",q:1,r:4},{id:"c10",q:1,r:5},{id:"c11",q:2,r:0,clue:7},{id:"c12",q:2,r:1},{id:"c13",q:2,r:2},{id:"c14",q:2,r:3,clue:1},{id:"c15",q:2,r:4},{id:"c16",q:2,r:5},{id:"c17",q:3,r:0},{id:"c18",q:3,r:1},{id:"c19",q:3,r:2},{id:"c20",q:3,r:3},{id:"c21",q:3,r:4,clue:15},{id:"c22",q:3,r:5},{id:"c23",q:4,r:0,parity:"even"},{id:"c24",q:4,r:1},{id:"c25",q:4,r:3},{id:"c26",q:4,r:4},{id:"c27",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c14","c15"]],previousId:null,id:"r2-097",order:97,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:56,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 97",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"circle"},{id:"c5",q:0,r:5,category:"triangle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"circle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"circle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"triangle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"triangle",clue:22},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,clue:1,category:"circle"},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"circle"},{id:"c21",q:3,r:3,category:"triangle"},{id:"c22",q:3,r:4,category:"circle"},{id:"c23",q:3,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c20","c21"],["c4","c10"]],previousId:null,id:"r2-098",order:98,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u5CF0\u503C",targetDifficulty:65,objectiveScore:64,title:"\u516D\u8FB9 \xB7 \u4EA4\u9519\u6311\u6218 98",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"circle"},{x:1,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c7",category:"circle"},{x:3,y:1,w:1,h:1,id:"c8",category:"triangle",clue:22},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c11",category:"circle"},{x:2,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c13",category:"circle"},{x:4,y:2,w:1,h:1,id:"c14",category:"circle"},{x:0,y:3,w:1,h:1,id:"c15",category:"circle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:3,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c21",category:"circle"},{x:2,y:4,w:2,h:1,id:"c22",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c23",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c16","c21"],["c12","c17"]],previousId:null,id:"r2-099",order:99,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u56DE\u843D",targetDifficulty:47,objectiveScore:50,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 99",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",direction:"lr"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6",clue:9},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16",clue:1},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"}],features:["direction","walls"],contentRevision:2,walls:[["c9","c14"]],previousId:null,id:"r2-100",order:100,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u6536\u675F",targetDifficulty:52,objectiveScore:51,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 100",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0"},{x:2,y:0,w:1,h:1,id:"c1"},{x:4,y:0,w:2,h:1,id:"c2"},{x:0,y:1,w:1,h:1,id:"c3"},{x:1,y:1,w:1,h:1,id:"c4"},{x:2,y:1,w:1,h:1,id:"c5"},{x:3,y:1,w:1,h:1,id:"c6"},{x:4,y:1,w:1,h:1,id:"c7",clue:1},{x:5,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:2,id:"c9"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13",direction:"dr"},{x:5,y:2,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17",parity:"even"},{x:4,y:3,w:1,h:1,id:"c18"},{x:5,y:3,w:1,h:1,id:"c19"},{x:0,y:4,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21"},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c3","c9"],initialOpen:!1}],previousId:null,id:"r2-101",order:101,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 101",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:3,category:"circle"},{id:"c3",q:0,r:4,category:"circle"},{id:"c4",q:0,r:5,category:"triangle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"triangle"},{id:"c11",q:2,r:0,clue:1,category:"circle"},{id:"c12",q:2,r:1,category:"triangle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"circle"},{id:"c15",q:2,r:4,category:"triangle",clue:24},{id:"c16",q:2,r:5,category:"circle"},{id:"c17",q:3,r:0,category:"circle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"triangle",clue:26},{id:"c20",q:3,r:3,category:"triangle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"triangle"},{id:"c23",q:4,r:0,category:"triangle"},{id:"c24",q:4,r:1,category:"circle"},{id:"c25",q:4,r:2,category:"circle"},{id:"c26",q:4,r:3,category:"triangle"},{id:"c27",q:4,r:4,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c20","c21"]],previousId:null,id:"r2-102",order:102,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 102",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3,clue:1},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:1},{id:"c7",q:1,r:2},{id:"c8",q:1,r:3},{id:"c9",q:1,r:4,parity:"odd"},{id:"c10",q:1,r:5},{id:"c11",q:2,r:0},{id:"c12",q:2,r:2,clue:9},{id:"c13",q:2,r:3,clue:7},{id:"c14",q:2,r:4},{id:"c15",q:2,r:5},{id:"c16",q:3,r:0},{id:"c17",q:3,r:1},{id:"c18",q:3,r:2},{id:"c19",q:3,r:3},{id:"c20",q:3,r:4},{id:"c21",q:3,r:5},{id:"c22",q:4,r:0},{id:"c23",q:4,r:1},{id:"c24",q:4,r:2},{id:"c25",q:4,r:3},{id:"c26",q:4,r:4},{id:"c27",q:4,r:5}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c20","c15"],initialOpen:!1}],walls:[["c5","c9"]],previousId:null,id:"r2-103",order:103,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 103",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle",clue:26},{id:"c2",q:0,r:3,category:"circle"},{id:"c3",q:0,r:4,category:"circle"},{id:"c4",q:0,r:5,category:"triangle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"triangle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:1,category:"circle"},{id:"c12",q:2,r:2,category:"triangle"},{id:"c13",q:2,r:3,category:"circle"},{id:"c14",q:2,r:4,category:"triangle"},{id:"c15",q:2,r:5,category:"circle"},{id:"c16",q:3,r:0,category:"circle"},{id:"c17",q:3,r:1,category:"triangle"},{id:"c18",q:3,r:2,category:"circle"},{id:"c19",q:3,r:3,category:"triangle"},{id:"c20",q:3,r:4,category:"circle"},{id:"c21",q:3,r:5,category:"triangle"},{id:"c22",q:4,r:0,category:"triangle"},{id:"c23",q:4,r:1,category:"circle"},{id:"c24",q:4,r:2,category:"triangle"},{id:"c25",q:4,r:3,clue:1,category:"circle"},{id:"c26",q:4,r:4,category:"triangle"},{id:"c27",q:4,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c3","c8"]],previousId:null,id:"r2-104",order:104,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 104",caption:""},{id:"r2-105",contentRevision:2,order:105,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",role:"\u7EC3\u4E60",targetDifficulty:62,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,parity:"even"},{id:"c1",x:1,y:0,w:1,h:2},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:3,y:1,w:1,h:1,clue:12},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1,direction:"dl"},{id:"c11",x:0,y:3,w:1,h:1,parity:"odd"},{id:"c12",x:1,y:3,w:2,h:1},{id:"c13",x:3,y:3,w:1,h:1}],previousId:"campaign200-136",playerBand:"\u559C\u6B22\u7684\u672A\u77E5\u8D77\u70B9",estimatedBand:"\u559C\u6B22\u7684\u672A\u77E5\u8D77\u70B9",objectiveScore:88},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle",clue:23},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c6",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c7",clue:1,category:"circle"},{x:4,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:2,y:2,w:1,h:1,id:"c11",category:"triangle",direction:"lr"},{x:3,y:2,w:1,h:2,id:"c12",category:"circle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:5,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c15",category:"circle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:4,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c19",category:"circle",clue:19},{x:0,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c21",category:"circle"},{x:2,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c24",category:"circle"},{x:5,y:4,w:1,h:1,id:"c25",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c4","c5"],initialOpen:!1}],previousId:null,id:"r2-106",order:106,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 106",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle",clue:24},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"circle",clue:3},{id:"c5",q:0,r:5,category:"triangle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,clue:1,category:"circle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"circle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"triangle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"triangle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"triangle"},{id:"c19",q:3,r:1,category:"circle"},{id:"c20",q:3,r:2,category:"circle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"triangle"},{id:"c24",q:4,r:0,category:"circle"},{id:"c25",q:4,r:1,category:"triangle"},{id:"c26",q:4,r:2,category:"triangle"},{id:"c27",q:4,r:4,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c19","c25"]],previousId:null,id:"r2-107",order:107,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 107",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:2,id:"c1",parity:"even"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",parity:"even"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",clue:15},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:2,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25",clue:1},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","parity","walls"],contentRevision:2,walls:[["c14","c20"]],previousId:null,id:"r2-108",order:108,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:82,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 108",caption:""},{id:"r2-109",contentRevision:2,order:109,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u5C0F\u5F84",chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",role:"\u56DE\u843D",targetDifficulty:56,caption:"",cells:[{id:"c0",x:3,y:0,w:1,h:1,category:"circle"},{id:"c1",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:1,y:0,w:1,h:1,category:"circle"},{id:"c3",x:0,y:0,w:1,h:2,category:"triangle"},{id:"c4",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c5",x:2,y:1,w:1,h:1,clue:1,category:"circle"},{id:"c6",x:1,y:1,w:1,h:1,category:"circle"},{id:"c7",x:3,y:2,w:1,h:1,category:"circle"},{id:"c8",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:0,y:2,w:2,h:1,category:"triangle"},{id:"c10",x:3,y:3,w:1,h:1,category:"triangle",direction:"lu"},{id:"c11",x:2,y:3,w:1,h:1,category:"circle"},{id:"c12",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c13",x:0,y:3,w:1,h:1,category:"circle"}],doors:[{edge:["c2","c3"],initialOpen:!1}],walls:[["c4","c5"]],previousId:"campaign200-149",playerBand:"\u7565\u96BE",estimatedBand:"\u7565\u96BE",objectiveScore:65},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1",clue:9},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",direction:"du"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:1,h:1,id:"c20"},{x:4,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:0,y:4,w:1,h:1,id:"c23"},{x:1,y:4,w:1,h:1,id:"c24",clue:1},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c1","c7"],["c9","c10"]],previousId:null,id:"r2-110",order:110,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:60,objectiveScore:60,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 110",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:1,r:0,clue:1,category:"circle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"triangle"},{id:"c11",q:2,r:0,category:"triangle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"triangle",clue:16},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"circle"},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"circle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle"},{id:"c20",q:3,r:3,category:"circle"},{id:"c21",q:3,r:4,category:"triangle"},{id:"c22",q:3,r:5,category:"circle"},{id:"c23",q:4,r:0,category:"triangle"},{id:"c24",q:4,r:1,category:"circle"},{id:"c25",q:4,r:3,category:"triangle",clue:26},{id:"c26",q:4,r:4,category:"circle",clue:25},{id:"c27",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-111",order:111,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 111",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:2,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5",clue:23},{x:1,y:1,w:1,h:1,id:"c6",direction:"ru"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",parity:"odd"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:2,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24",direction:"lr"},{x:5,y:4,w:1,h:1,id:"c25",clue:1}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-112",order:112,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 112",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5",clue:1},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7",direction:"du"},{x:4,y:1,w:1,h:1,id:"c8"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:2,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21"},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24",direction:"lr"},{x:5,y:4,w:1,h:1,id:"c25",parity:"odd"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c8","c14"],initialOpen:!1}],previousId:null,id:"r2-113",order:113,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:83,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 113",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1,clue:3},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3,clue:1},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1,clue:7},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5,clue:24},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3,parity:"odd"},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1,clue:11},{id:"c20",q:3,r:2,clue:16},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,clue:27},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0,clue:12},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c5","c10"]],previousId:null,id:"r2-114",order:114,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 114",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",parity:"odd"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:2,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17"},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21",clue:22},{x:3,y:4,w:1,h:1,id:"c22",clue:21},{x:4,y:4,w:1,h:1,id:"c23"}],features:["big","parity","walls"],contentRevision:2,walls:[["c7","c11"],["c20","c21"]],previousId:null,id:"r2-115",order:115,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 115",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",direction:"du"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9",clue:6},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13",clue:1},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:2,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:2,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:0,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26",parity:"odd"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-116",order:116,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 116",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,clue:1,category:"circle"},{id:"c5",q:0,r:5,category:"triangle"},{id:"c6",q:1,r:0,category:"circle",clue:9},{id:"c7",q:1,r:1,category:"circle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"circle"},{id:"c11",q:2,r:0,category:"triangle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"circle"},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"triangle"},{id:"c20",q:3,r:3,category:"circle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"triangle",clue:26},{id:"c23",q:4,r:0,category:"circle"},{id:"c24",q:4,r:1,category:"circle"},{id:"c25",q:4,r:2,category:"triangle"},{id:"c26",q:4,r:4,category:"triangle"},{id:"c27",q:4,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c19","c24"]],previousId:null,id:"r2-117",order:117,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:60,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 117",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1,clue:7},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0,parity:"even"},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3,clue:22},{id:"c16",q:2,r:4,clue:19},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c4","c10"],["c2","c8"]],previousId:null,id:"r2-118",order:118,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:83,title:"\u516D\u8FB9 \xB7 \u4EA4\u9519\u6311\u6218 118",caption:""},{id:"r2-119",contentRevision:2,order:119,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u4EA4\u9519",chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",role:"\u56DE\u843D",targetDifficulty:56,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:2},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1,clue:10},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1,clue:1},{id:"c10",x:3,y:2,w:1,h:2,parity:"odd"},{id:"c11",x:0,y:3,w:1,h:1,direction:"ru"},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:2,y:3,w:1,h:1}],previousId:"campaign200-158",playerBand:"\u7565\u96BE",estimatedBand:"\u7565\u96BE",objectiveScore:49},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:1,r:0,clue:19},{id:"c6",q:1,r:1},{id:"c7",q:1,r:2},{id:"c8",q:1,r:3,parity:"even"},{id:"c9",q:1,r:4},{id:"c10",q:2,r:0},{id:"c11",q:2,r:1},{id:"c12",q:2,r:2,clue:11},{id:"c13",q:2,r:3},{id:"c14",q:2,r:4},{id:"c15",q:2,r:5},{id:"c16",q:3,r:0},{id:"c17",q:3,r:1},{id:"c18",q:3,r:2,clue:9},{id:"c19",q:3,r:3},{id:"c20",q:3,r:4,clue:1},{id:"c21",q:3,r:5},{id:"c22",q:4,r:0},{id:"c23",q:4,r:1},{id:"c24",q:4,r:2},{id:"c25",q:4,r:3},{id:"c26",q:4,r:4,clue:4},{id:"c27",q:4,r:5}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c22","c16"],initialOpen:!1}],walls:[["c6","c10"]],previousId:null,id:"r2-120",order:120,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:60,objectiveScore:59,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 120",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,category:"triangle"},{id:"c7",q:1,r:1,category:"circle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,clue:1,category:"circle"},{id:"c13",q:2,r:1,category:"triangle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"triangle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"triangle"},{id:"c19",q:3,r:1,category:"circle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"circle"},{id:"c23",q:3,r:5,category:"triangle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c22","c16"],initialOpen:!1}],walls:[["c3","c9"]],previousId:null,id:"r2-121",order:121,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:64,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 121",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:2,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:0,y:1,w:1,h:1,id:"c4",direction:"ru"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:4,y:1,w:1,h:1,id:"c7"},{x:5,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:1,id:"c9"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12",direction:"lr"},{x:4,y:2,w:1,h:1,id:"c13"},{x:5,y:2,w:1,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25",clue:24}],features:["direction","rhythm-door"],contentRevision:2,doors:[{edge:["c24","c25"],initialOpen:!1}],previousId:null,id:"r2-122",order:122,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:64,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 122",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",direction:"ru"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9",clue:1},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20",clue:26},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c24","c18"],initialOpen:!1}],walls:[["c8","c9"]],previousId:null,id:"r2-123",order:123,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:82,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 123",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:2,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7",parity:"even"},{x:4,y:1,w:1,h:1,id:"c8",direction:"lu"},{x:0,y:2,w:1,h:1,id:"c9",clue:1},{x:1,y:2,w:1,h:1,id:"c10",clue:19},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17"},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-124",order:124,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 124",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle",clue:28},{x:2,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c2",category:"circle"},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"circle"},{x:3,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c7",category:"circle"},{x:5,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c10",category:"circle"},{x:3,y:2,w:1,h:1,id:"c11",clue:1,category:"circle"},{x:5,y:2,w:1,h:1,id:"c12",category:"circle"},{x:0,y:3,w:1,h:1,id:"c13",category:"circle"},{x:1,y:3,w:1,h:2,id:"c14",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c17",category:"circle"},{x:5,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c20",category:"circle"},{x:3,y:4,w:1,h:1,id:"c21",category:"circle"},{x:4,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c23",category:"circle"},{x:0,y:5,w:1,h:1,id:"c24",category:"circle"},{x:1,y:5,w:1,h:1,id:"c25",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c26",category:"circle"},{x:3,y:5,w:1,h:1,id:"c27",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c28",category:"circle"},{x:5,y:5,w:1,h:1,id:"c29",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c1","c5"],["c22","c28"]],previousId:null,id:"r2-125",order:125,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 125",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,clue:1,category:"circle"},{id:"c7",q:1,r:1,category:"circle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"circle"},{id:"c11",q:1,r:5,category:"triangle",clue:8},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"triangle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"triangle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"circle",clue:21},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"circle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"triangle"},{id:"c24",q:4,r:0,category:"triangle"},{id:"c25",q:4,r:1,category:"circle"},{id:"c26",q:4,r:2,category:"triangle"},{id:"c27",q:4,r:3,category:"circle"},{id:"c28",q:4,r:4,category:"triangle"},{id:"c29",q:4,r:5,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c7","c8"],initialOpen:!1}],walls:[["c17","c22"],["c20","c26"]],previousId:null,id:"r2-126",order:126,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:63,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 126",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,clue:1,category:"circle"},{id:"c7",q:1,r:1,category:"circle",clue:27},{id:"c8",q:1,r:2,category:"triangle",clue:28},{id:"c9",q:1,r:3,category:"circle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"triangle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"triangle"},{id:"c16",q:2,r:4,category:"circle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"circle"},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"triangle"},{id:"c24",q:4,r:0,category:"circle"},{id:"c25",q:4,r:1,category:"triangle"},{id:"c26",q:4,r:2,category:"circle"},{id:"c27",q:4,r:3,category:"circle"},{id:"c28",q:4,r:4,category:"triangle",clue:12},{id:"c29",q:4,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c14","c19"]],previousId:null,id:"r2-127",order:127,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:63,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 127",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1,clue:22},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2,clue:16},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5,parity:"odd"},{id:"c18",q:3,r:0,clue:19},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3,clue:9},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5,clue:1}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c20","c14"],initialOpen:!1}],walls:[["c1","c6"],["c14","c15"]],previousId:null,id:"r2-128",order:128,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:80,title:"\u516D\u8FB9 \xB7 \u4EA4\u9519\u6311\u6218 128",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",clue:1,category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"circle",clue:13},{x:5,y:1,w:1,h:1,id:"c11",category:"triangle"},{x:0,y:2,w:1,h:2,id:"c12",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c13",category:"circle"},{x:2,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c15",category:"circle"},{x:4,y:2,w:1,h:1,id:"c16",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c17",category:"circle"},{x:1,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:2,y:3,w:1,h:2,id:"c19",category:"circle"},{x:3,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle"},{x:5,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c23",category:"circle"},{x:1,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c25",category:"circle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c0","c1"]],previousId:null,id:"r2-129",order:129,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:56,objectiveScore:58,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 129",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7",clue:1},{x:3,y:1,w:1,h:1,id:"c8",direction:"du"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17",direction:"dr"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c0","c1"]],previousId:null,id:"r2-130",order:130,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:60,objectiveScore:59,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 130",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6",clue:1},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:1,id:"c9"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13"},{x:5,y:2,w:1,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17",clue:23},{x:3,y:3,w:1,h:1,id:"c18",direction:"du"},{x:4,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:1,h:1,id:"c25"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c24","c25"],initialOpen:!1}],walls:[["c4","c5"],["c5","c6"]],previousId:null,id:"r2-131",order:131,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 131",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2,clue:1},{id:"c3",q:0,r:3,clue:7},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4,parity:"even"},{id:"c11",q:1,r:5,clue:11},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1,clue:24},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4},{id:"c17",q:3,r:0,clue:26},{id:"c18",q:3,r:1},{id:"c19",q:3,r:2},{id:"c20",q:3,r:3,clue:19},{id:"c21",q:3,r:4},{id:"c22",q:3,r:5},{id:"c23",q:4,r:0},{id:"c24",q:4,r:2},{id:"c25",q:4,r:3},{id:"c26",q:4,r:4},{id:"c27",q:4,r:5}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c11","c10"],initialOpen:!1}],walls:[["c17","c18"]],previousId:null,id:"r2-132",order:132,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 132",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2,clue:25},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5,clue:13},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3,clue:17},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0,clue:28},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4,clue:11},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2,clue:1},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,clue:9},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2,parity:"odd"},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c3","c8"],["c21","c22"]],previousId:null,id:"r2-133",order:133,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:81,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 133",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:23},{x:1,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15",clue:1},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23",direction:"lr"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c6","c7"]],previousId:null,id:"r2-134",order:134,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 134",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0"},{x:3,y:0,w:1,h:1,id:"c1"},{x:4,y:0,w:1,h:1,id:"c2"},{x:5,y:0,w:1,h:1,id:"c3"},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8",parity:"even"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13",clue:1},{x:4,y:2,w:2,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"}],features:["big","parity","walls"],contentRevision:2,walls:[["c16","c17"]],previousId:null,id:"r2-135",order:135,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 135",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c1",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c2",category:"circle"},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"circle"},{x:2,y:1,w:1,h:1,id:"c6",category:"circle",direction:"dr"},{x:3,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c8",category:"circle"},{x:5,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c11",category:"circle"},{x:2,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c13",category:"circle"},{x:4,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c15",clue:1,category:"circle"},{x:0,y:3,w:1,h:1,id:"c16",category:"circle"},{x:1,y:3,w:1,h:2,id:"c17",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c18",category:"circle"},{x:3,y:3,w:1,h:1,id:"c19",category:"triangle",direction:"du"},{x:4,y:3,w:1,h:1,id:"c20",category:"circle"},{x:5,y:3,w:1,h:1,id:"c21",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c22",category:"triangle",clue:18},{x:3,y:4,w:1,h:1,id:"c23",category:"circle"},{x:4,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c25",category:"circle"}],features:["big","direction","alternation"],contentRevision:2,previousId:null,id:"r2-136",order:136,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 136",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",clue:1},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13",parity:"even"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:2,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:4,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:0,y:4,w:1,h:1,id:"c23"},{x:1,y:4,w:1,h:1,id:"c24"},{x:2,y:4,w:1,h:1,id:"c25"},{x:3,y:4,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"},{x:0,y:5,w:1,h:1,id:"c28"},{x:2,y:5,w:1,h:1,id:"c29"},{x:4,y:5,w:1,h:1,id:"c30"},{x:5,y:5,w:1,h:1,id:"c31"}],features:["big","parity","walls"],contentRevision:2,walls:[["c16","c17"],["c9","c15"],["c18","c23"]],previousId:null,id:"r2-137",order:137,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 137",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",clue:21},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9",direction:"lu"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c13",parity:"odd"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:2,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:1,h:1,id:"c25"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c23","c24"],initialOpen:!1}],previousId:null,id:"r2-138",order:138,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:79,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 138",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:2,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",parity:"even"},{x:2,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:2,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21",clue:1},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"}],features:["big","parity","walls"],contentRevision:2,walls:[["c8","c13"]],previousId:null,id:"r2-139",order:139,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:56,objectiveScore:53,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 139",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16",clue:1},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18",clue:26},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20",direction:"lu"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29",clue:4}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c12","c18"],initialOpen:!1}],walls:[["c9","c15"]],previousId:null,id:"r2-140",order:140,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:60,objectiveScore:60,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 140",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,clue:1,category:"circle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"triangle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"circle"},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"circle"},{id:"c19",q:3,r:2,category:"triangle"},{id:"c20",q:3,r:3,category:"triangle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:4,r:0,category:"circle"},{id:"c23",q:4,r:1,category:"triangle"},{id:"c24",q:4,r:2,category:"triangle"},{id:"c25",q:4,r:3,category:"circle"},{id:"c26",q:4,r:4,category:"circle"},{id:"c27",q:4,r:5,category:"triangle",clue:30},{id:"c28",q:5,r:1,category:"circle"},{id:"c29",q:5,r:3,category:"triangle"},{id:"c30",q:5,r:4,category:"triangle"},{id:"c31",q:5,r:5,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c6","c7"],initialOpen:!1}],walls:[["c6","c12"]],previousId:null,id:"r2-141",order:141,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:67,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 141",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1,category:"circle"},{id:"c1",q:0,r:2,category:"circle"},{id:"c2",q:0,r:3,category:"circle"},{id:"c3",q:0,r:4,category:"triangle"},{id:"c4",q:0,r:5,category:"circle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"triangle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"circle"},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle"},{id:"c20",q:3,r:3,category:"triangle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"circle"},{id:"c23",q:4,r:0,category:"circle"},{id:"c24",q:4,r:1,category:"triangle"},{id:"c25",q:4,r:2,category:"circle"},{id:"c26",q:4,r:3,category:"triangle"},{id:"c27",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c6","c11"]],previousId:null,id:"r2-142",order:142,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:67,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 142",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2",clue:1},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",direction:"lr"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22",clue:26},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:3,y:4,w:1,h:1,id:"c26"},{x:4,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c15","c16"]],previousId:null,id:"r2-143",order:143,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:67,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 143",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"circle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"triangle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"circle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"circle"},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"circle"},{id:"c21",q:3,r:3,category:"triangle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,clue:1,category:"circle"},{id:"c24",q:4,r:0,category:"circle"},{id:"c25",q:4,r:1,category:"triangle"},{id:"c26",q:4,r:4,category:"circle"},{id:"c27",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-144",order:144,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 144",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:2,y:0,w:2,h:1,id:"c0"},{x:4,y:0,w:1,h:1,id:"c1"},{x:0,y:1,w:1,h:1,id:"c2"},{x:1,y:1,w:1,h:1,id:"c3"},{x:2,y:1,w:1,h:1,id:"c4"},{x:3,y:1,w:1,h:1,id:"c5",direction:"lr"},{x:4,y:1,w:1,h:1,id:"c6"},{x:0,y:2,w:2,h:1,id:"c7"},{x:2,y:2,w:1,h:1,id:"c8"},{x:3,y:2,w:1,h:1,id:"c9"},{x:4,y:2,w:1,h:1,id:"c10"},{x:0,y:3,w:1,h:1,id:"c11"},{x:1,y:3,w:1,h:1,id:"c12"},{x:2,y:3,w:1,h:1,id:"c13"},{x:3,y:3,w:1,h:1,id:"c14"},{x:4,y:3,w:1,h:1,id:"c15"},{x:0,y:4,w:1,h:1,id:"c16"},{x:1,y:4,w:1,h:1,id:"c17",parity:"odd"},{x:2,y:4,w:1,h:1,id:"c18"},{x:3,y:4,w:1,h:1,id:"c19"}],features:["big","direction","parity","walls"],contentRevision:2,walls:[["c2","c7"]],previousId:null,id:"r2-145",order:145,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:"\u672A\u77E5\u8D77\u70B9\u5019\u9009",estimatedBand:"\u672A\u77E5\u8D77\u70B9\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:84,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 145",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c12"},{x:5,y:2,w:1,h:1,id:"c13",clue:1},{x:0,y:3,w:1,h:1,id:"c14",parity:"odd"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:4,y:3,w:1,h:2,id:"c17"},{x:5,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:5,y:4,w:1,h:1,id:"c23"},{x:0,y:5,w:1,h:1,id:"c24"},{x:1,y:5,w:1,h:1,id:"c25"},{x:2,y:5,w:1,h:1,id:"c26"},{x:3,y:5,w:1,h:1,id:"c27"}],features:["big","parity","walls"],contentRevision:2,walls:[["c20","c25"]],previousId:null,id:"r2-146",order:146,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 146",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:1,category:"triangle"},{id:"c1",q:0,r:2,clue:1,category:"circle"},{id:"c2",q:0,r:3,category:"circle"},{id:"c3",q:0,r:4,category:"triangle"},{id:"c4",q:0,r:5,category:"triangle"},{id:"c5",q:1,r:0,category:"circle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:0,category:"triangle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"triangle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"triangle",clue:18},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"circle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle"},{id:"c20",q:3,r:3,category:"circle"},{id:"c21",q:3,r:4,category:"triangle"},{id:"c22",q:3,r:5,category:"circle"},{id:"c23",q:4,r:1,category:"circle"},{id:"c24",q:4,r:2,category:"triangle"},{id:"c25",q:4,r:3,category:"circle"},{id:"c26",q:4,r:4,category:"circle"},{id:"c27",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c7","c13"]],previousId:null,id:"r2-147",order:147,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 147",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle",direction:"dl"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c9",category:"circle"},{x:0,y:2,w:1,h:1,id:"c10",category:"circle"},{x:1,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:2,y:2,w:2,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:5,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c15",category:"circle"},{x:2,y:3,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c16",category:"circle"},{x:4,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c18",category:"circle"},{x:0,y:4,w:1,h:1,id:"c19",category:"circle"},{x:1,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c22",category:"circle"},{x:5,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c24",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c25",category:"circle"},{x:2,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle",direction:"ru"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c29","c28"],initialOpen:!1}],previousId:null,id:"r2-148",order:148,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:80,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 148",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:2,h:1,id:"c0"},{x:3,y:0,w:1,h:1,id:"c1"},{x:4,y:0,w:1,h:1,id:"c2"},{x:5,y:0,w:1,h:1,id:"c3",clue:1},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15",clue:9},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17",clue:24},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:2,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25",parity:"even"},{x:5,y:4,w:1,h:1,id:"c26"},{x:1,y:5,w:1,h:1,id:"c27"},{x:2,y:5,w:1,h:1,id:"c28"},{x:3,y:5,w:1,h:1,id:"c29"},{x:4,y:5,w:1,h:1,id:"c30"},{x:5,y:5,w:1,h:1,id:"c31"}],features:["big","parity","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-149",order:149,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 149",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:2,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c3",category:"circle"},{x:5,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:2,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:4,y:2,w:1,h:1,id:"c11",category:"circle"},{x:5,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c13",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c15",category:"circle"},{x:3,y:3,w:1,h:1,id:"c16",clue:1,category:"circle"},{x:4,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c18",category:"circle"},{x:0,y:4,w:1,h:1,id:"c19",category:"circle"},{x:2,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c22",category:"circle"},{x:5,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c24",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c25",category:"circle"},{x:2,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c27","c28"]],previousId:null,id:"r2-150",order:150,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 150",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",clue:1},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8",direction:"du"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11",clue:8},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20",clue:17},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c25","c19"],initialOpen:!1}],walls:[["c6","c7"]],previousId:null,id:"r2-151",order:151,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 151",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle",clue:3},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",clue:1,category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"circle"},{x:5,y:1,w:1,h:1,id:"c11",category:"triangle",direction:"lu"},{x:0,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c13",category:"circle"},{x:2,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c15",category:"circle"},{x:4,y:2,w:1,h:1,id:"c16",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c17",category:"circle"},{x:1,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c19",category:"circle"},{x:3,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle",direction:"du"},{x:0,y:4,w:2,h:1,id:"c22",category:"circle"},{x:2,y:4,w:1,h:1,id:"c23",category:"circle"},{x:3,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c26",category:"circle"},{x:0,y:5,w:1,h:1,id:"c27",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c28",category:"circle"},{x:2,y:5,w:1,h:1,id:"c29",category:"triangle"},{x:3,y:5,w:2,h:1,id:"c30",category:"circle"},{x:5,y:5,w:1,h:1,id:"c31",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c9","c10"]],previousId:null,id:"r2-152",order:152,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 152",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,clue:1,category:"circle"},{id:"c3",q:0,r:4,category:"triangle"},{id:"c4",q:0,r:5,category:"circle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"triangle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"triangle"},{id:"c16",q:2,r:5,category:"circle",clue:27},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle",clue:19},{id:"c20",q:3,r:3,category:"circle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"triangle"},{id:"c23",q:4,r:0,category:"circle"},{id:"c24",q:4,r:1,category:"triangle"},{id:"c25",q:4,r:2,category:"triangle"},{id:"c26",q:4,r:3,category:"triangle"},{id:"c27",q:4,r:4,category:"circle"},{id:"c28",q:5,r:1,category:"circle"},{id:"c29",q:5,r:2,category:"triangle"},{id:"c30",q:5,r:3,category:"circle"},{id:"c31",q:5,r:4,category:"triangle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c30","c31"],initialOpen:!1}],walls:[["c19","c25"]],previousId:null,id:"r2-153",order:153,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:80,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 153",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:2,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12",parity:"even"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:2,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18",clue:8},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:1,h:1,id:"c25",clue:1},{x:5,y:4,w:1,h:1,id:"c26"},{x:0,y:5,w:1,h:1,id:"c27"},{x:1,y:5,w:1,h:1,id:"c28"},{x:3,y:5,w:1,h:1,id:"c29"},{x:4,y:5,w:1,h:1,id:"c30"},{x:5,y:5,w:1,h:1,id:"c31"}],features:["big","parity","walls"],contentRevision:2,walls:[["c9","c15"]],previousId:null,id:"r2-154",order:154,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:68,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 154",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:3,category:"triangle"},{id:"c3",q:0,r:4,category:"circle"},{id:"c4",q:0,r:5,category:"triangle",clue:24},{id:"c5",q:1,r:0,category:"circle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"triangle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"triangle"},{id:"c16",q:3,r:0,category:"triangle"},{id:"c17",q:3,r:1,category:"circle"},{id:"c18",q:3,r:2,category:"triangle",clue:10},{id:"c19",q:3,r:3,category:"circle"},{id:"c20",q:3,r:4,category:"circle"},{id:"c21",q:3,r:5,category:"triangle"},{id:"c22",q:4,r:0,category:"circle"},{id:"c23",q:4,r:1,category:"triangle"},{id:"c24",q:4,r:2,category:"circle"},{id:"c25",q:4,r:3,category:"triangle"},{id:"c26",q:4,r:4,category:"triangle",clue:30},{id:"c27",q:4,r:5,category:"circle"},{id:"c28",q:5,r:2,category:"triangle"},{id:"c29",q:5,r:3,category:"circle"},{id:"c30",q:5,r:4,category:"circle"},{id:"c31",q:5,r:5,category:"triangle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c9","c8"],initialOpen:!1}],walls:[["c12","c17"]],previousId:null,id:"r2-155",order:155,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:68,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 155",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"circle"},{id:"c5",q:0,r:5,category:"triangle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"circle"},{id:"c10",q:1,r:4,category:"triangle",clue:16},{id:"c11",q:1,r:5,category:"circle"},{id:"c12",q:2,r:0,category:"circle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"triangle"},{id:"c16",q:2,r:4,category:"triangle",clue:26},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"triangle"},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"triangle"},{id:"c24",q:4,r:0,category:"circle"},{id:"c25",q:4,r:2,category:"circle"},{id:"c26",q:4,r:3,category:"triangle"},{id:"c27",q:4,r:4,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c22","c27"]],previousId:null,id:"r2-156",order:156,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:68,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 156",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2",clue:14},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17",clue:1},{x:0,y:3,w:1,h:2,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19",parity:"odd"},{x:2,y:3,w:2,h:1,id:"c20"},{x:4,y:3,w:1,h:1,id:"c21",clue:26},{x:5,y:3,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","parity","walls"],contentRevision:2,walls:[["c2","c8"],["c11","c17"]],previousId:null,id:"r2-157",order:157,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:68,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 157",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",parity:"even"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:2,h:1,id:"c13"},{x:3,y:2,w:2,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17",clue:1},{x:2,y:3,w:1,h:1,id:"c18",direction:"dl"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25",clue:26},{x:4,y:4,w:1,h:1,id:"c26",clue:25},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c5","c11"],initialOpen:!1}],previousId:null,id:"r2-158",order:158,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:85,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 158",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle",clue:21},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"circle"},{x:5,y:1,w:1,h:1,id:"c11",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:2,w:2,h:1,id:"c13",category:"circle"},{x:3,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c15",category:"triangle",direction:"du"},{x:5,y:2,w:1,h:1,id:"c16",category:"circle"},{x:0,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c18",category:"circle"},{x:2,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c20",category:"circle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle"},{x:5,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c23",category:"circle"},{x:1,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:2,y:4,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c25",category:"circle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"},{x:0,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c29",category:"circle"},{x:3,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c31",clue:1,category:"circle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c5","c11"],initialOpen:!1}],previousId:null,id:"r2-159",order:159,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:62,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 159",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",clue:28},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10",parity:"odd"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c13"},{x:3,y:2,w:1,h:1,id:"c14",clue:11},{x:4,y:2,w:1,h:2,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:5,y:3,w:1,h:1,id:"c19"},{x:0,y:4,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21",clue:1},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"},{x:0,y:5,w:1,h:1,id:"c26"},{x:1,y:5,w:1,h:1,id:"c27"},{x:2,y:5,w:1,h:1,id:"c28"},{x:3,y:5,w:1,h:1,id:"c29"},{x:4,y:5,w:1,h:1,id:"c30"},{x:5,y:5,w:1,h:1,id:"c31"}],features:["big","parity","walls"],contentRevision:2,walls:[["c8","c13"]],previousId:null,id:"r2-160",order:160,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 160",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",direction:"dl"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13",clue:1},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15",clue:9},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","rhythm-door"],contentRevision:2,doors:[{edge:["c10","c16"],initialOpen:!1}],previousId:null,id:"r2-161",order:161,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 161",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1,clue:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3,clue:19},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1,clue:10},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3,clue:23},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0,parity:"odd"},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3,clue:27},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c10","c15"],["c28","c29"]],previousId:null,id:"r2-162",order:162,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:69,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 162",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:0,y:1,w:1,h:1,id:"c3",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c4",category:"circle"},{x:2,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:5,y:1,w:2,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c11",category:"circle"},{x:3,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:5,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:6,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c17",category:"circle",clue:19},{x:2,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c19",category:"circle"},{x:4,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c21",clue:1,category:"circle"},{x:6,y:3,w:1,h:1,id:"c22",category:"circle"},{x:0,y:4,w:1,h:1,id:"c23",category:"circle"},{x:1,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c25",category:"circle"},{x:3,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c27",category:"circle"},{x:5,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:6,y:4,w:1,h:1,id:"c29",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c31",category:"circle"},{x:2,y:5,w:1,h:1,id:"c32",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c33",category:"circle"},{x:4,y:5,w:1,h:1,id:"c34",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c35",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c3","c4"],["c27","c28"]],previousId:null,id:"r2-163",order:163,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:82,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 163",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",clue:1,category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c10",category:"circle"},{x:0,y:2,w:1,h:1,id:"c11",category:"circle"},{x:1,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c13",category:"circle"},{x:3,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c15",category:"circle",direction:"lr"},{x:5,y:2,w:1,h:1,id:"c16",category:"triangle"},{x:0,y:3,w:1,h:2,id:"c17",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c18",category:"circle"},{x:2,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c20",category:"circle"},{x:4,y:3,w:1,h:1,id:"c21",category:"triangle",clue:16},{x:5,y:3,w:1,h:1,id:"c22",category:"circle"},{x:1,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:2,y:4,w:2,h:1,id:"c24",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c25",category:"circle"},{x:5,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c27",category:"circle"},{x:1,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c29",category:"circle"},{x:4,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c31",category:"circle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c18","c19"]],previousId:null,id:"r2-164",order:164,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 164",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",clue:24},{x:2,y:0,w:1,h:1,id:"c1"},{x:5,y:0,w:1,h:1,id:"c2"},{x:0,y:1,w:1,h:1,id:"c3",clue:1},{x:1,y:1,w:1,h:1,id:"c4"},{x:2,y:1,w:1,h:1,id:"c5"},{x:3,y:1,w:1,h:1,id:"c6"},{x:4,y:1,w:1,h:1,id:"c7"},{x:5,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:1,id:"c9"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17",parity:"even"},{x:4,y:3,w:1,h:1,id:"c18"},{x:5,y:3,w:1,h:1,id:"c19"},{x:0,y:4,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21"},{x:2,y:4,w:1,h:1,id:"c22",direction:"dr"},{x:3,y:4,w:2,h:1,id:"c23"},{x:5,y:4,w:1,h:2,id:"c24"},{x:0,y:5,w:1,h:1,id:"c25"},{x:1,y:5,w:1,h:1,id:"c26"},{x:2,y:5,w:1,h:1,id:"c27"},{x:3,y:5,w:1,h:1,id:"c28"},{x:4,y:5,w:1,h:1,id:"c29"}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-165",order:165,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:69,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 165",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9",direction:"du"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18",clue:1},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22",clue:26},{x:1,y:4,w:1,h:1,id:"c23",clue:25},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25",direction:"lr"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","rhythm-door"],contentRevision:2,doors:[{edge:["c27","c21"],initialOpen:!1}],previousId:null,id:"r2-166",order:166,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:69,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 166",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8",clue:15},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17",clue:1},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:1,h:1,id:"c20",clue:24},{x:4,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24",direction:"lu"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c12","c13"]],previousId:null,id:"r2-167",order:167,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:70,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 167",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",clue:1},{x:2,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4",parity:"odd"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:2,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",clue:23},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13",clue:26},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","parity","walls"],contentRevision:2,walls:[["c18","c24"]],previousId:null,id:"r2-168",order:168,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:86,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 168",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:1,category:"triangle"},{id:"c1",q:0,r:2,category:"circle"},{id:"c2",q:0,r:3,category:"triangle"},{id:"c3",q:0,r:4,category:"circle"},{id:"c4",q:0,r:5,category:"triangle"},{id:"c5",q:1,r:0,clue:1,category:"circle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:4,category:"circle"},{id:"c9",q:1,r:5,category:"triangle"},{id:"c10",q:2,r:0,category:"triangle"},{id:"c11",q:2,r:1,category:"circle"},{id:"c12",q:2,r:2,category:"triangle"},{id:"c13",q:2,r:3,category:"circle"},{id:"c14",q:2,r:4,category:"circle"},{id:"c15",q:2,r:5,category:"triangle"},{id:"c16",q:3,r:0,category:"circle"},{id:"c17",q:3,r:1,category:"triangle"},{id:"c18",q:3,r:2,category:"triangle"},{id:"c19",q:3,r:4,category:"triangle"},{id:"c20",q:3,r:5,category:"circle"},{id:"c21",q:4,r:0,category:"circle"},{id:"c22",q:4,r:1,category:"triangle"},{id:"c23",q:4,r:2,category:"circle"},{id:"c24",q:4,r:3,category:"triangle"},{id:"c25",q:4,r:4,category:"circle"},{id:"c26",q:4,r:5,category:"triangle"},{id:"c27",q:5,r:0,category:"circle"},{id:"c28",q:5,r:1,category:"triangle"},{id:"c29",q:5,r:3,category:"circle"},{id:"c30",q:5,r:4,category:"triangle"},{id:"c31",q:5,r:5,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c21","c22"],initialOpen:!1}],walls:[["c1","c6"]],previousId:null,id:"r2-169",order:169,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:60,title:"\u516D\u8FB9 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 169",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",clue:15},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8",direction:"lu"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c11","c17"],initialOpen:!1}],walls:[["c10","c11"]],previousId:null,id:"r2-170",order:170,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:66,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 170",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c6",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:2,y:2,w:1,h:1,id:"c11",category:"circle"},{x:3,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:0,y:3,w:1,h:1,id:"c14",category:"circle"},{x:1,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c17",category:"circle"},{x:4,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c19",category:"circle"},{x:0,y:4,w:2,h:1,id:"c20",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c21",category:"circle"},{x:3,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c23",category:"circle"},{x:5,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c25",clue:1,category:"circle"},{x:2,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c17","c18"],["c8","c9"],["c18","c23"]],previousId:null,id:"r2-171",order:171,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 171",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:2,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:3,y:0,w:1,h:2,id:"c1",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c3",category:"circle"},{x:0,y:1,w:1,h:1,id:"c4",category:"circle"},{x:1,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"circle"},{x:5,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:2,y:2,w:1,h:1,id:"c11",category:"triangle",direction:"lu"},{x:3,y:2,w:1,h:1,id:"c12",category:"circle"},{x:4,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c14",category:"circle"},{x:0,y:3,w:1,h:1,id:"c15",category:"circle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:3,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c19",category:"circle"},{x:5,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c21",category:"triangle",clue:30},{x:1,y:4,w:1,h:1,id:"c22",category:"circle"},{x:2,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c24",category:"circle"},{x:4,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c26",category:"circle"},{x:0,y:5,w:1,h:1,id:"c27",category:"circle"},{x:1,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c29",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c30",category:"circle"},{x:5,y:5,w:1,h:1,id:"c31",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c17","c23"]],previousId:null,id:"r2-172",order:172,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 172",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:2,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:2,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6",clue:26},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12",parity:"odd"},{x:3,y:2,w:1,h:1,id:"c13",direction:"dr"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15",clue:1},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23",clue:20},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c14","c13"],initialOpen:!1}],previousId:null,id:"r2-173",order:173,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:78,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 173",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1",direction:"lr"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5",clue:1},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11",clue:26},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22",clue:24},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c15","c20"],["c9","c10"]],previousId:null,id:"r2-174",order:174,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:70,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 174",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle",clue:6},{x:2,y:0,w:1,h:1,id:"c2",category:"circle",direction:"dl"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c7",clue:1,category:"circle"},{x:2,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c9",category:"circle"},{x:4,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c11",category:"circle"},{x:0,y:2,w:1,h:1,id:"c12",category:"circle"},{x:1,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c14",category:"circle"},{x:3,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c16",category:"circle"},{x:5,y:2,w:1,h:1,id:"c17",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c18",category:"circle"},{x:1,y:3,w:1,h:1,id:"c19",category:"triangle",clue:24},{x:2,y:3,w:2,h:1,id:"c20",category:"circle"},{x:4,y:3,w:1,h:1,id:"c21",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c22",category:"circle"},{x:0,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c24",category:"circle"},{x:2,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c26",category:"circle"},{x:4,y:4,w:2,h:1,id:"c27",category:"triangle"}],features:["big","direction","alternation"],contentRevision:2,previousId:null,id:"r2-175",order:175,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:70,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 175",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c7",category:"circle"},{x:2,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:3,y:1,w:1,h:2,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"triangle",clue:26},{x:5,y:1,w:1,h:1,id:"c11",category:"circle"},{x:0,y:2,w:1,h:1,id:"c12",category:"circle"},{x:1,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c14",category:"circle"},{x:4,y:2,w:1,h:1,id:"c15",category:"circle"},{x:5,y:2,w:1,h:1,id:"c16",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c18",category:"circle"},{x:2,y:3,w:1,h:1,id:"c19",category:"triangle",clue:6},{x:3,y:3,w:1,h:1,id:"c20",category:"circle"},{x:4,y:3,w:2,h:1,id:"c21",clue:1,category:"circle"},{x:0,y:4,w:1,h:1,id:"c22",category:"circle"},{x:1,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c24",category:"circle"},{x:3,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c26",category:"circle"},{x:5,y:4,w:1,h:1,id:"c27",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c1","c7"]],previousId:null,id:"r2-176",order:176,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:71,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 176",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c10",category:"circle"},{x:0,y:2,w:1,h:1,id:"c11",category:"circle"},{x:1,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c13",category:"circle"},{x:3,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c15",clue:1,category:"circle"},{x:5,y:2,w:1,h:2,id:"c16",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c18",category:"circle",direction:"lr"},{x:2,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle"},{x:0,y:4,w:1,h:1,id:"c22",category:"circle"},{x:1,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c24",category:"circle"},{x:3,y:4,w:1,h:2,id:"c25",category:"circle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"},{x:0,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c29",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c30",category:"circle"},{x:5,y:5,w:1,h:1,id:"c31",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-177",order:177,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:71,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 177",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",parity:"even"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",clue:1},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:2,id:"c13"},{x:2,y:2,w:1,h:2,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15",direction:"lu"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19",clue:18},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c20","c19"],initialOpen:!1}],previousId:null,id:"r2-178",order:178,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:86,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 178",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c3"},{x:1,y:1,w:1,h:1,id:"c4"},{x:2,y:1,w:1,h:1,id:"c5"},{x:5,y:1,w:1,h:1,id:"c6",clue:1},{x:0,y:2,w:1,h:1,id:"c7"},{x:1,y:2,w:1,h:1,id:"c8"},{x:2,y:2,w:1,h:1,id:"c9"},{x:3,y:2,w:1,h:1,id:"c10"},{x:4,y:2,w:1,h:1,id:"c11"},{x:5,y:2,w:1,h:1,id:"c12"},{x:0,y:3,w:1,h:1,id:"c13"},{x:1,y:3,w:1,h:1,id:"c14"},{x:2,y:3,w:1,h:1,id:"c15"},{x:3,y:3,w:1,h:1,id:"c16"},{x:4,y:3,w:1,h:1,id:"c17"},{x:5,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"},{x:5,y:4,w:1,h:2,id:"c24",parity:"odd"},{x:0,y:5,w:1,h:1,id:"c25"},{x:1,y:5,w:1,h:1,id:"c26"},{x:2,y:5,w:1,h:1,id:"c27"},{x:3,y:5,w:1,h:1,id:"c28"},{x:4,y:5,w:1,h:1,id:"c29"}],features:["big","parity","walls"],contentRevision:2,walls:[["c27","c28"]],previousId:null,id:"r2-179",order:179,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 179",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:4,category:"triangle"},{id:"c4",q:0,r:5,category:"circle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"triangle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"triangle"},{id:"c14",q:2,r:3,category:"circle"},{id:"c15",q:2,r:4,category:"triangle"},{id:"c16",q:2,r:5,category:"circle"},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle"},{id:"c20",q:3,r:3,category:"triangle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"triangle"},{id:"c23",q:4,r:0,clue:1,category:"circle"},{id:"c24",q:4,r:4,category:"triangle",clue:14},{id:"c25",q:4,r:5,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c7","c8"],initialOpen:!1}],walls:[["c9","c10"],["c9","c15"]],previousId:null,id:"r2-180",order:180,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:66,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 180",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",clue:1,category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"circle"},{x:5,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:6,y:1,w:1,h:1,id:"c11",category:"circle"},{x:0,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c13",category:"circle"},{x:2,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c14",category:"circle"},{x:4,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c16",category:"circle"},{x:6,y:2,w:1,h:1,id:"c17",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c18",category:"circle"},{x:1,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle"},{x:5,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:6,y:3,w:1,h:1,id:"c23",category:"circle"},{x:0,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:1,y:4,w:2,h:1,id:"c25",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"},{x:6,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c29",category:"circle"},{x:1,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c31",category:"circle"},{x:3,y:5,w:1,h:1,id:"c32",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c33",category:"circle"},{x:5,y:5,w:1,h:1,id:"c34",category:"triangle",clue:22},{x:6,y:5,w:1,h:1,id:"c35",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c22","c23"]],previousId:null,id:"r2-181",order:181,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 181",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",clue:23},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16",clue:1},{x:5,y:2,w:1,h:1,id:"c17",direction:"dl"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c12","c18"],initialOpen:!1}],walls:[["c1","c7"]],previousId:null,id:"r2-182",order:182,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:72,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 182",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4,clue:12},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2,clue:17},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1,clue:18},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4,parity:"odd"},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2,clue:1},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,clue:7},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c15","c16"]],previousId:null,id:"r2-183",order:183,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:72,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 183",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c5",category:"triangle",clue:32},{x:2,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c7",clue:1,category:"circle"},{x:4,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c9",category:"circle"},{x:6,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c11",category:"circle"},{x:2,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:2,h:1,id:"c13",category:"triangle"},{x:6,y:2,w:1,h:1,id:"c14",category:"circle"},{x:0,y:3,w:1,h:1,id:"c15",category:"circle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:3,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c19",category:"circle"},{x:5,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:6,y:3,w:1,h:1,id:"c21",category:"circle"},{x:0,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c23",category:"circle"},{x:2,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c25",category:"circle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"},{x:6,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c29",category:"circle"},{x:1,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c31",category:"circle"},{x:3,y:5,w:1,h:1,id:"c32",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c33",category:"circle"},{x:5,y:5,w:1,h:1,id:"c34",category:"triangle"},{x:6,y:5,w:1,h:1,id:"c35",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c15","c16"],["c24","c31"]],previousId:null,id:"r2-184",order:184,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:69,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 184",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0,clue:18},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2,parity:"even"},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0,clue:20},{id:"c13",q:2,r:1,clue:22},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3,clue:11},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5,clue:4}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c5","c4"],initialOpen:!1}],walls:[["c13","c14"]],previousId:null,id:"r2-185",order:185,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:"\u672A\u77E5\u8D77\u70B9\u5019\u9009",estimatedBand:"\u672A\u77E5\u8D77\u70B9\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:81,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 185",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2,clue:13},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3,clue:17},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3,parity:"odd"},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1,clue:5},{id:"c20",q:3,r:2,clue:1},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,clue:28},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c19","c24"],["c1","c2"]],previousId:null,id:"r2-186",order:186,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:72,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 186",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",clue:1,category:"circle"},{x:3,y:0,w:1,h:1,id:"c2",category:"circle",clue:11},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c4",category:"circle"},{x:6,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"circle"},{x:5,y:1,w:1,h:1,id:"c11",category:"triangle"},{x:6,y:1,w:1,h:1,id:"c12",category:"circle",direction:"lu"},{x:0,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c14",category:"circle"},{x:2,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c16",category:"circle"},{x:4,y:2,w:1,h:1,id:"c17",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c18",category:"circle"},{x:6,y:2,w:1,h:1,id:"c19",category:"triangle"},{x:0,y:3,w:1,h:2,id:"c20",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c21",category:"circle"},{x:4,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:5,y:3,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c23",category:"circle"},{x:1,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c25",category:"circle"},{x:3,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c27",category:"circle"},{x:6,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c29",category:"circle"},{x:1,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c31",category:"circle"},{x:3,y:5,w:1,h:1,id:"c32",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c33",category:"circle"},{x:5,y:5,w:1,h:1,id:"c34",category:"triangle"},{x:6,y:5,w:1,h:1,id:"c35",category:"circle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c31","c30"],initialOpen:!1}],previousId:null,id:"r2-187",order:187,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 187",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:2,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12",clue:20},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14",direction:"du"},{x:4,y:2,w:1,h:1,id:"c15",clue:1},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:1,h:1,id:"c20",parity:"odd"},{x:4,y:3,w:2,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24",direction:"lr"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c24","c23"],initialOpen:!1}],previousId:null,id:"r2-188",order:188,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:78,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 188",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c1",category:"circle"},{x:3,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c3",category:"circle"},{x:0,y:1,w:1,h:1,id:"c4",category:"circle"},{x:2,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c8",clue:1,category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:2,y:2,w:1,h:1,id:"c11",category:"circle"},{x:3,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:5,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:3,y:3,w:1,h:1,id:"c18",category:"circle"},{x:4,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c20",category:"circle"},{x:0,y:4,w:1,h:1,id:"c21",category:"circle"},{x:1,y:4,w:2,h:1,id:"c22",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c25",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c26",category:"circle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c1","c2"]],previousId:null,id:"r2-189",order:189,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 189",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"circle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"circle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"triangle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"triangle"},{id:"c16",q:2,r:4,category:"circle"},{id:"c17",q:2,r:5,category:"triangle"},{id:"c18",q:3,r:0,category:"circle"},{id:"c19",q:3,r:1,clue:1,category:"circle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c13","c14"],["c11","c16"]],previousId:null,id:"r2-190",order:190,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:66,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 190",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:6,y:0,w:1,h:1,id:"c6",category:"circle"},{x:0,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c8",category:"circle"},{x:2,y:1,w:1,h:1,id:"c9",category:"triangle",clue:16},{x:3,y:1,w:1,h:1,id:"c10",category:"circle"},{x:4,y:1,w:1,h:1,id:"c11",category:"triangle",clue:14},{x:5,y:1,w:1,h:1,id:"c12",category:"circle"},{x:6,y:1,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c14",category:"circle"},{x:1,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c16",category:"circle"},{x:3,y:2,w:1,h:1,id:"c17",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c18",category:"circle"},{x:5,y:2,w:1,h:1,id:"c19",category:"triangle",direction:"lu"},{x:6,y:2,w:1,h:1,id:"c20",category:"circle"},{x:1,y:3,w:1,h:1,id:"c21",category:"circle"},{x:2,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c23",category:"circle"},{x:4,y:3,w:1,h:1,id:"c24",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c25",category:"circle"},{x:6,y:3,w:1,h:1,id:"c26",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c27",category:"circle"},{x:1,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c29",category:"circle"},{x:3,y:4,w:1,h:1,id:"c30",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c31",category:"circle"},{x:5,y:4,w:1,h:1,id:"c32",category:"triangle"},{x:0,y:5,w:2,h:1,id:"c33",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c34",category:"circle"},{x:4,y:5,w:1,h:1,id:"c35",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c21","c22"],initialOpen:!1}],previousId:null,id:"r2-191",order:191,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 191",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:2,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:5,y:0,w:1,h:1,id:"c3"},{x:6,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:6,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12",direction:"du"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14",clue:1},{x:4,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c15",parity:"odd"},{x:6,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19",direction:"lu"},{x:3,y:3,w:1,h:1,id:"c20"},{x:6,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"},{x:6,y:4,w:1,h:1,id:"c28"},{x:0,y:5,w:1,h:1,id:"c29"},{x:1,y:5,w:1,h:1,id:"c30"},{x:2,y:5,w:1,h:1,id:"c31"},{x:3,y:5,w:1,h:1,id:"c32",direction:"ru"},{x:4,y:5,w:1,h:1,id:"c33"},{x:5,y:5,w:1,h:1,id:"c34"},{x:6,y:5,w:1,h:1,id:"c35"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c23","c24"],initialOpen:!1}],previousId:null,id:"r2-192",order:192,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:71,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 192",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:2,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c7",category:"circle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c10",category:"circle"},{x:1,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c12",category:"circle"},{x:3,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c14",category:"circle"},{x:5,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c17",category:"circle"},{x:2,y:3,w:1,h:1,id:"c18",category:"triangle",clue:28},{x:3,y:3,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c19",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c20",category:"circle"},{x:0,y:4,w:1,h:1,id:"c21",category:"circle"},{x:1,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c23",category:"circle"},{x:4,y:4,w:1,h:1,id:"c24",category:"circle"},{x:5,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c19","c20"],["c3","c8"]],previousId:null,id:"r2-193",order:193,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:78,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 193",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1,clue:27},{id:"c8",q:1,r:2,clue:1},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4,clue:12},{id:"c11",q:1,r:5,clue:22},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2,clue:9},{id:"c15",q:2,r:3,clue:11},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,parity:"odd"},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c0","c1"],["c20","c25"]],previousId:null,id:"r2-194",order:194,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:59,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 194",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:2,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c7",category:"circle"},{x:3,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c9",category:"circle"},{x:5,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c11",category:"circle"},{x:1,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c14",category:"circle"},{x:4,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c17",category:"circle"},{x:2,y:3,w:1,h:1,id:"c18",category:"circle"},{x:3,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"circle"},{x:2,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c23",category:"circle"},{x:4,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c25",category:"circle"},{x:1,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c27",category:"circle"},{x:3,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c19","c20"]],previousId:null,id:"r2-195",order:195,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:59,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 195",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",clue:1},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22",clue:23},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24",clue:4},{x:1,y:4,w:1,h:1,id:"c25",direction:"lu"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","walls"],contentRevision:2,walls:[["c13","c14"]],previousId:null,id:"r2-196",order:196,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:59,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 196",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",clue:1,category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:5,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:6,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c11",category:"circle"},{x:6,y:1,w:1,h:1,id:"c12",category:"triangle",clue:34},{x:0,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c14",category:"circle"},{x:2,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c16",category:"circle",direction:"du"},{x:4,y:2,w:1,h:1,id:"c17",category:"circle"},{x:5,y:2,w:1,h:1,id:"c18",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c19",category:"circle"},{x:1,y:3,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c20",category:"circle"},{x:3,y:3,w:2,h:1,id:"c21",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c22",category:"circle"},{x:6,y:3,w:1,h:1,id:"c23",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c27",category:"circle"},{x:6,y:4,w:1,h:1,id:"c28",category:"circle"},{x:0,y:5,w:1,h:1,id:"c29",category:"circle"},{x:1,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c31",category:"circle"},{x:3,y:5,w:1,h:1,id:"c32",category:"circle"},{x:4,y:5,w:1,h:1,id:"c33",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c34",category:"circle"},{x:6,y:5,w:1,h:1,id:"c35",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c14","c7"],initialOpen:!1}],previousId:null,id:"r2-197",order:197,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 197",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:2,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9",clue:26},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11",parity:"even"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:2,id:"c13",clue:1},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20",direction:"du"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c21","c16"],initialOpen:!1}],previousId:null,id:"r2-198",order:198,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:78,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 198",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,clue:1,category:"circle"},{id:"c7",q:1,r:1,category:"circle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"circle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"triangle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"circle"},{id:"c17",q:2,r:5,category:"triangle"},{id:"c18",q:3,r:0,category:"circle"},{id:"c19",q:3,r:1,category:"circle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"triangle"},{id:"c22",q:3,r:4,category:"triangle",clue:22},{id:"c23",q:3,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c15","c20"]],previousId:null,id:"r2-199",order:199,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:68,title:"\u516D\u8FB9 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 199",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",clue:1,category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c10",category:"circle"},{x:1,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c12",category:"circle",direction:"ru"},{x:3,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c14",category:"circle"},{x:0,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c16",category:"circle"},{x:2,y:3,w:1,h:2,id:"c17",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c18",category:"circle"},{x:4,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c22",category:"circle"},{x:4,y:4,w:1,h:1,id:"c23",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c5","c10"],["c3","c8"]],previousId:null,id:"r2-200",order:200,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:68,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 200",caption:""}],playOrder:["r2-001","r2-002","r2-003","r2-004","r2-005","r2-006","r2-007","r2-008","r2-009","r2-010","r2-011","r2-012","r2-013","r2-014","r2-015","r2-016","r2-017","r2-018","r2-019","r2-020","r2-021","r2-022","r2-023","r2-024","r2-025","r2-026","r2-027","r2-028","r2-029","r2-030","r2-031","r2-032","r2-033","r2-034","r2-035","r2-036","r2-037","r2-038","r2-039","r2-040","r2-041","r2-042","r2-043","r2-044","r2-045","r2-046","r2-047","r2-048","r2-049","r2-050","r2-051","r2-052","r2-053","r2-054","r2-055","r2-056","r2-057","r2-058","r2-059","r2-060","r2-061","r2-062","r2-063","r2-064","r2-065","r2-066","r2-067","r2-068","r2-069","r2-070","r2-071","r2-072","r2-073","r2-074","r2-075","r2-076","r2-077","r2-078","r2-079","r2-080","r2-081","r2-082","r2-083","r2-084","r2-085","r2-086","r2-087","r2-088","r2-089","r2-090","r2-091","r2-092","r2-093","r2-094","r2-095","r2-096","r2-097","r2-098","r2-099","r2-100","r2-101","r2-102","r2-103","r2-104","r2-105","r2-106","r2-107","r2-108","r2-109","r2-110","r2-111","r2-112","r2-113","r2-114","r2-115","r2-116","r2-117","r2-118","r2-119","r2-120","r2-121","r2-122","r2-123","r2-124","r2-125","r2-126","r2-127","r2-128","r2-129","r2-130","r2-131","r2-132","r2-133","r2-134","r2-135","r2-136","r2-137","r2-138","r2-139","r2-140","r2-141","r2-142","r2-143","r2-144","r2-145","r2-146","r2-147","r2-148","r2-149","r2-150","r2-151","r2-152","r2-153","r2-154","r2-155","r2-156","r2-157","r2-158","r2-159","r2-160","r2-161","r2-162","r2-163","r2-164","r2-165","r2-166","r2-167","r2-168","r2-169","r2-170","r2-171","r2-172","r2-173","r2-174","r2-175","r2-176","r2-177","r2-178","r2-179","r2-180","r2-181","r2-182","r2-183","r2-184","r2-185","r2-186","r2-187","r2-188","r2-189","r2-190","r2-191","r2-192","r2-193","r2-194","r2-195","r2-196","r2-197","r2-198","r2-199","r2-200"]};var Be={basic:"\u4ECE\u6570\u5B57 1 \u5F00\u59CB\uFF0C\u6309\u4F4F\u6ED1\u52A8\uFF0C\u628A\u6240\u6709\u683C\u5B50\u8FDE\u8D77\u6765\u3002\u53EA\u80FD\u8D70\u5230\u8FB9\u6328\u7740\u8FB9\u7684\u683C\u5B50\uFF0C\u4E0D\u80FD\u659C\u7740\u8D70\u3002\u6BCF\u683C\u53EA\u80FD\u7ECF\u8FC7\u4E00\u6B21\u3002",walls:"\u9ED1\u9EC4\u6761\u7EB9\u662F\u4E00\u5835\u5899\uFF0C\u4E0D\u80FD\u76F4\u63A5\u7A7F\u8FC7\u53BB\u3002\u8BF7\u4ECE\u522B\u7684\u683C\u5B50\u7ED5\u5230\u5899\u7684\u53E6\u4E00\u8FB9\u3002",straight:"\u753B\u7740\u6A2A\u7EBF\u7684\u683C\u5B50\u53EA\u80FD\u6A2A\u7740\u7A7F\u8FC7\uFF1A\u4ECE\u5DE6\u8FB9\u8FDB\u3001\u53F3\u8FB9\u51FA\uFF0C\u4E5F\u53EF\u4EE5\u53CD\u8FC7\u6765\u3002\u4E0D\u80FD\u5728\u91CC\u9762\u8F6C\u5F2F\uFF0C\u4E5F\u4E0D\u80FD\u4F5C\u4E3A\u8D77\u70B9\u6216\u7EC8\u70B9\u3002",vertical:"\u753B\u7740\u7AD6\u7EBF\u7684\u683C\u5B50\u53EA\u80FD\u7AD6\u7740\u7A7F\u8FC7\uFF1A\u4ECE\u4E0A\u8FB9\u8FDB\u3001\u4E0B\u8FB9\u51FA\uFF0C\u4E5F\u53EF\u4EE5\u53CD\u8FC7\u6765\u3002\u4E0D\u80FD\u5728\u91CC\u9762\u8F6C\u5F2F\uFF0C\u4E5F\u4E0D\u80FD\u4F5C\u4E3A\u8D77\u70B9\u6216\u7EC8\u70B9\u3002",corner:"\u8FD9\u4E2A\u683C\u5B50\u91CC\u753B\u7740\u4E00\u6761\u8F6C\u5F2F\u7684\u7EBF\u3002\u6CBF\u8FD9\u6761\u7EBF\uFF0C\u4ECE\u4E00\u7AEF\u8FDB\u5165\u3001\u53E6\u4E00\u7AEF\u79BB\u5F00\uFF1B\u6B63\u7740\u8D70\u3001\u53CD\u7740\u8D70\u90FD\u53EF\u4EE5\u3002\u4E0D\u80FD\u4F5C\u4E3A\u8D77\u70B9\u6216\u7EC8\u70B9\u3002",colour:"\u6BCF\u8D70\u4E00\u6B65\u90FD\u8981\u6362\u989C\u8272\uFF1A\u84DD\u8272 \u2192 \u6A59\u8272 \u2192 \u84DD\u8272\u3002\u540C\u4E00\u79CD\u989C\u8272\u7684\u4E24\u4E2A\u683C\u5B50\uFF0C\u5373\u4F7F\u6328\u7740\uFF0C\u4E5F\u4E0D\u80FD\u8FDE\u7EED\u8D70\u3002",parity:"\u4ECE\u8D77\u70B9\u5F00\u59CB\u6570\uFF0C\u7B2C\u4E00\u4E2A\u683C\u5B50\u7B97\u7B2C 1 \u6B65\u3002\u201C\u5947\u201D\u683C\u5FC5\u987B\u5728\u7B2C 1\u30013\u30015\u2026\u6B65\u7ECF\u8FC7\uFF1B\u201C\u5076\u201D\u683C\u5FC5\u987B\u5728\u7B2C 2\u30014\u30016\u2026\u6B65\u7ECF\u8FC7\u3002","rhythm-door":"\u95E8\u4E00\u5F00\u59CB\u662F\u5173\u7740\u7684\u3002\u6BCF\u8D70\u8FDB\u4E00\u4E2A\u683C\u5B50\uFF0C\u95E8\u5C31\u5F00\u3001\u5173\u5207\u6362\u4E00\u6B21\uFF1B\u8D77\u70B9\u4E5F\u7B97\u4E00\u6B65\u3002\u53EA\u6709\u663E\u793A\u201C\u5F00\u201D\u65F6\u624D\u80FD\u7A7F\u8FC7\u3002\u7A7F\u8FC7\u540E\uFF0C\u95E8\u4F1A\u4FDD\u6301\u6253\u5F00\uFF1B\u5982\u679C\u9000\u56DE\u5230\u7A7F\u95E8\u4E4B\u524D\uFF0C\u95E8\u53C8\u4F1A\u7EE7\u7EED\u5207\u6362\u3002",hex:"\u516D\u8FB9\u5F62\u7684\u6BCF\u6761\u8FB9\u65C1\u8FB9\u90FD\u53EF\u80FD\u6709\u4E00\u4E2A\u683C\u5B50\u3002\u53EA\u8981\u4E24\u4E2A\u683C\u5B50\u6709\u4E00\u6574\u6761\u8FB9\u6328\u5728\u4E00\u8D77\uFF0C\u5C31\u80FD\u76F4\u63A5\u8D70\u8FC7\u53BB\u3002\u6BCF\u7ECF\u8FC7\u4E00\u4E2A\u683C\u5B50\u7B97\u4E00\u6B65\u3002","unknown-start":"\u8FD9\u4E00\u5173\u6CA1\u6709\u6570\u5B57 1\uFF0C\u53EF\u4EE5\u81EA\u5DF1\u9009\u8D77\u70B9\u3002\u5148\u770B\u770B\u5176\u4ED6\u6570\u5B57\uFF0C\u8BD5\u7740\u627E\u51FA\u4ECE\u54EA\u91CC\u5F00\u59CB\uFF0C\u624D\u80FD\u6309\u6B63\u786E\u7684\u6B65\u6570\u5230\u8FBE\u5B83\u4EEC\u3002"};function Di(e){let c=["\u6309\u4F4F\u6ED1\u52A8\uFF0C\u628A\u6240\u6709\u683C\u5B50\u8FDE\u6210\u4E00\u6761\u7EBF\u3002\u6BCF\u4E2A\u683C\u5B50\u53EA\u80FD\u7ECF\u8FC7\u4E00\u6B21\u3002",e.geometry==="hex"?"\u516D\u8FB9\u5F62\u4E4B\u95F4\uFF0C\u6709\u4E00\u6574\u6761\u8FB9\u6328\u5728\u4E00\u8D77\u624D\u80FD\u8D70\u8FC7\u53BB\u3002":"\u53EA\u80FD\u8D70\u5230\u8FB9\u6328\u7740\u8FB9\u7684\u683C\u5B50\uFF0C\u4E0D\u80FD\u659C\u7740\u8D70\u3002","\u683C\u5B50\u91CC\u7684\u6570\u5B57\u8868\u793A\u7B2C\u51E0\u6B65\u5230\u8FD9\u91CC\u3002\u4F8B\u5982\u6570\u5B57 5\uFF0C\u5FC5\u987B\u5728\u7B2C 5 \u6B65\u8D70\u5230\u5B83\u3002"];e.geometry==="blocks"&&c.push("\u4E00\u4E2A\u5927\u683C\u6216\u4E0D\u89C4\u5219\u5F62\u72B6\u7684\u683C\u5B50\uFF0C\u6574\u4E2A\u7B97\u4E00\u6B65\u3002");for(let[i,d]of[["direction","corner"],["alternation","colour"],["parity","parity"],["walls","walls"],["rhythm-door","rhythm-door"]])e.features.includes(i)&&c.push(i==="direction"?"\u6709\u7EBF\u6761\u7684\u683C\u5B50\uFF0C\u8981\u6CBF\u56FE\u4E2D\u7684\u7EBF\u4ECE\u4E00\u7AEF\u8FDB\u5165\u3001\u53E6\u4E00\u7AEF\u79BB\u5F00\uFF1B\u4E0D\u80FD\u4F5C\u4E3A\u8D77\u70B9\u6216\u7EC8\u70B9\u3002":Be[d]);return e.cells.some(i=>i.clue===1)||c.push(Be["unknown-start"]),c.push("\u8D70\u9519\u4E86\uFF0C\u53EF\u4EE5\u6CBF\u521A\u624D\u7684\u8DEF\u7EBF\u5F80\u56DE\u9000\uFF1B\u4E5F\u53EF\u4EE5\u70B9\u201C\u64A4\u9500\u201D\u9000\u4E00\u6B65\uFF0C\u70B9\u201C\u91CD\u5F00\u201D\u91CD\u65B0\u5F00\u59CB\u3002"),c.join(` -`)}var L1={\u56FA\u5B9A\u6570\u5B57\u6B65\u53F7\u4E0D\u7B26:"\u5230\u8FBE\u6570\u5B57\u683C\u7684\u6B65\u6570\u4E0D\u5BF9",\u8BE5\u683C\u6B65\u53F7\u5947\u5076\u4E0D\u7B26:"\u8D70\u5230\u201C\u5947\u201D\u683C\u8981\u6570\u5230 1\u30013\u30015\u2026\uFF1B\u8D70\u5230\u201C\u5076\u201D\u683C\u8981\u6570\u5230 2\u30014\u30016\u2026",\u8FDB\u51FA\u65B9\u5411\u4E0D\u7B26:"\u8BF7\u6CBF\u683C\u5B50\u91CC\u753B\u7684\u7EBF\uFF0C\u4ECE\u4E00\u7AEF\u8FDB\u5165\u3001\u53E6\u4E00\u7AEF\u79BB\u5F00",\u8FD9\u4E00\u6B65\u95E8\u662F\u5173\u95ED\u7684:"\u95E8\u73B0\u5728\u5173\u7740\uFF0C\u8BF7\u5148\u8D70\u5230\u522B\u7684\u683C\u5B50\uFF0C\u8BA9\u95E8\u5207\u6362\u5230\u201C\u5F00\u201D",\u84DD\u6A59\u989C\u8272\u5FC5\u987B\u4EA4\u66FF:"\u6BCF\u4E00\u6B65\u90FD\u8981\u6362\u989C\u8272\uFF1A\u84DD\u8272\u548C\u6A59\u8272\u4EA4\u66FF\u8D70","\u89C4\u5219\u4E0D\u7B26\uFF0C\u8BF7\u6CBF\u6765\u65F6\u8DEF\u9000\u56DE\u4E0A\u4E00\u683C\u518D\u8BD5\u3002":"\u8FD9\u4E00\u6B65\u4E0D\u7B26\u5408\u89C4\u5219\uFF0C\u8BF7\u6CBF\u521A\u624D\u7684\u8DEF\u7EBF\u9000\u56DE\u4E0A\u4E00\u683C\u518D\u8BD5\u3002","\u4E0B\u4E00\u6B65\u5728\u9EC4\u8272\u8FB9\u6846\u683C\uFF1B\u63D0\u793A\u4E0D\u4F1A\u81EA\u52A8\u753B\u8DEF\u3002":"\u4E0B\u4E00\u6B65\u8D70\u5230\u9EC4\u8272\u8FB9\u6846\u7684\u683C\u5B50\uFF0C\u8BF7\u81EA\u5DF1\u8FDE\u8FC7\u53BB\u3002","\u8BF7\u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u9000\u56DE\u9EC4\u8272\u8FB9\u6846\u683C\uFF0C\u518D\u7EE7\u7EED\u3002":"\u8BF7\u6CBF\u521A\u624D\u7684\u8DEF\u7EBF\uFF0C\u4E00\u683C\u4E00\u683C\u9000\u56DE\u9EC4\u8272\u8FB9\u6846\u5904\uFF0C\u518D\u8BD5\u53E6\u4E00\u6761\u8DEF\u3002","\u8D77\u70B9\u9700\u8981\u8C03\u6574\uFF0C\u8BF7\u91CD\u5F00\u5E76\u4ECE\u9EC4\u8272\u8FB9\u6846\u683C\u5F00\u59CB\u3002":"\u8D77\u70B9\u9009\u9519\u4E86\u3002\u8BF7\u70B9\u201C\u91CD\u5F00\u201D\uFF0C\u4ECE\u9EC4\u8272\u8FB9\u6846\u7684\u683C\u5B50\u5F00\u59CB\u3002","\u95E8\u73B0\u5728\u5173\u95ED\uFF1B\u7ED5\u884C\u843D\u683C\u540E\u4F1A\u5207\u6362\u3002":"\u95E8\u73B0\u5728\u5173\u7740\u3002\u5148\u8D70\u5230\u522B\u7684\u683C\u5B50\uFF0C\u95E8\u5C31\u4F1A\u5F00\u3001\u5173\u5207\u6362\u4E00\u6B21\u3002","\u9ED1\u9EC4\u5899\u4E0D\u80FD\u7A7F\u8FC7\uFF0C\u8BF7\u4ECE\u53E6\u4E00\u4FA7\u7ED5\u884C\u3002":Be.walls,"\u540C\u8272\u683C\u4E0D\u80FD\u8FDE\u7EED\u7ECF\u8FC7\uFF0C\u8BF7\u6362\u53E6\u4E00\u79CD\u989C\u8272\u3002":"\u4E0B\u4E00\u6B65\u8981\u6362\u989C\u8272\uFF1A\u84DD\u683C\u4E4B\u540E\u8D70\u6A59\u683C\uFF0C\u6A59\u683C\u4E4B\u540E\u8D70\u84DD\u683C\u3002"};function Jc(e){let c=String(e);for(let[i,d]of Object.entries(L1))c=c.split(i).join(d);return c.replaceAll("\uFF0C\u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u9000\u56DE\u3002","\u3002\u8BF7\u6CBF\u521A\u624D\u7684\u8DEF\u7EBF\u9000\u56DE\u3002").replaceAll("\u8BBF\u95EE\u6B65\u53F7","\u7B2C\u51E0\u6B65\u7ECF\u8FC7").replaceAll("\u6B65\u53F7","\u6B65\u6570").replaceAll("\u8BA4\u6E05\u5F02\u5F62\u5171\u8FB9","\u627E\u51FA\u4E0D\u89C4\u5219\u683C\u5B50\u65C1\u8FB9\u80FD\u8D70\u7684\u683C\u5B50").replaceAll("\u516D\u5411\u5171\u8FB9","\u516D\u8FB9\u5F62\u600E\u4E48\u8D70").replaceAll("\u5171\u8FB9","\u8FB9\u6328\u7740\u8FB9")}for(let e of we.levels)e.tutorial&&(e.caption=Be[e.tutorial]||e.caption),e.title=Jc(e.title);var ec=wx.getPerformance?wx.getPerformance():{now:()=>Date.now()};Array.prototype.at||Object.defineProperty(Array.prototype,"at",{value:function(e){return e=Math.trunc(e)||0,this[e<0?this.length+e:e]},configurable:!0,writable:!0});var Ce=wx.createCanvas(),Ze=wx.createCanvas(),Gc=new Map,Qe=()=>{};function Ri(e){Qe=e}var qc=class{constructor(c=""){this.id=c,this.children=[],this.handlers={},this.value="",this.style={},this.className="",this.textContent="",this.hidden=!1,this.disabled=!1}set textContent(c){let i=Jc(c);i!==this._text&&(this._text=i,Qe())}get textContent(){return this._text||""}set className(c){c!==this._className&&(this._className=c,Qe())}get className(){return this._className||""}set hidden(c){c!==this._hidden&&(this._hidden=c,Qe())}get hidden(){return this._hidden||!1}set disabled(c){c!==this._disabled&&(this._disabled=c,Qe())}get disabled(){return this._disabled||!1}replaceChildren(...c){this.children=c}append(...c){this.children.push(...c)}addEventListener(c,i){this.handlers[c]=i}setAttribute(){}setPointerCapture(){}getBoundingClientRect(){return{left:0,top:0,width:this.clientWidth,height:this.clientHeight}}click(){this.disabled||this.onclick?.()}},Q={getElementById(e){return Gc.has(e)||Gc.set(e,new qc(e)),Gc.get(e)},createElement(){return new qc}},bc=Q.getElementById("board");bc.getContext=()=>Ze.getContext("2d");for(let e of["width","height"])Object.defineProperty(bc,e,{get:()=>Ze[e],set:c=>{Ze[e]=c}});bc.clientWidth=375;bc.clientHeight=440;Q.getElementById("screen-play").className="screen hidden";Q.getElementById("rules-sheet").hidden=!0;Q.getElementById("feedback-sheet").hidden=!0;var xe={getItem(e){try{return wx.getStorageSync(e)||null}catch{return null}},setItem(e,c){try{wx.setStorageSync(e,String(c))}catch{}},removeItem(e){wx.removeStorageSync(e)}},H={devicePixelRatio:1,handlers:{},addEventListener(e,c){this.handlers[e]=c},AudioContext:wx.createWebAudioContext?function(){return wx.createWebAudioContext()}:void 0};function ji(e){let c=wx.env.USER_DATA_PATH+"/NumberSwipe-campaign-200-r2-records.json";try{wx.getFileSystemManager().writeFileSync(c,JSON.stringify(e,null,2),"utf8"),wx.shareFileMessage?wx.shareFileMessage({filePath:c,fileName:"NumberSwipe-r2-\u8BD5\u73A9\u8BB0\u5F55.json"}):wx.showModal({title:"\u8BB0\u5F55\u5DF2\u4FDD\u5B58",content:c,showCancel:!1})}catch{wx.showToast({title:"\u8BB0\u5F55\u5BFC\u51FA\u5931\u8D25",icon:"none"})}}var Ie=new Map,Yc=0,H1=4*1024*1024;function Ci(e,c,i,d,o,r){Me(e,o,800,!0),e.textAlign="left",e.textBaseline="alphabetic";let t=String(c),a=Hc(e,t,o),l=r===p.onPrimary;if(!Number.isFinite(a.actualBoundingBoxAscent)||!Number.isFinite(a.actualBoundingBoxRight)||typeof wx>"u"){e.save(),l&&(e.shadowColor="rgba(255,255,255,.5)",e.shadowBlur=2),X(e,t,i,d,o,r,800,!0),e.restore();return}let n=[t,o.toFixed(3),r,e.font].join("|"),h=Ie.get(n);if(h)Ie.delete(n),Ie.set(n,h);else{let y=a.actualBoundingBoxLeft+a.actualBoundingBoxRight,s=a.actualBoundingBoxAscent+a.actualBoundingBoxDescent,x=l?Math.max(.8,Math.min(2.6,o*.055)):0,u=Math.ceil(x*3+3),w=wx.createCanvas();w.width=Math.ceil((y+2*u)*2),w.height=Math.ceil((s+2*u)*2);let f=w.getContext("2d");f.setTransform(2,0,0,2,0,0),Me(f,o,800,!0),f.textAlign="left",f.textBaseline="alphabetic";let B=f.createLinearGradient(0,u,0,u+s);if(B&&typeof B.addColorStop=="function"?(B.addColorStop(0,l?"#FFFFFF":"#65583F"),B.addColorStop(.48,l?"#FFFDFE":r),B.addColorStop(1,l?"#F0EEFF":"#4C402D"),f.fillStyle=B):f.fillStyle=r,f.fillText(t,u+a.actualBoundingBoxLeft,u+a.actualBoundingBoxAscent),!l)try{let m=f.getImageData(0,0,w.width,w.height);if(m?.data){for(let C=0;C>>0)%17-8;for(let A=0;A<3;A++)m.data[q+A]+=k*.32}f.putImageData(m,0,0)}}catch{}let b=wx.createCanvas();b.width=w.width,b.height=w.height;let S=b.getContext("2d");for(l&&(S.shadowColor="rgba(61,43,146,.46)",S.shadowBlur=1.2*2,S.shadowOffsetY=.7*2,S.drawImage(w,0,0),S.shadowColor="rgba(255,255,255,.58)",S.shadowBlur=x*2,S.shadowOffsetY=0,S.drawImage(w,0,0),S.shadowColor="rgba(0,0,0,0)",S.shadowBlur=0),S.drawImage(w,0,0),h={canvas:b,pad:u,w:y,h:s,res:2},Ie.set(n,h),Yc+=b.width*b.height*4;Yc>H1&&Ie.size>1;){let m=Ie.keys().next().value,C=Ie.get(m);Ie.delete(m),Yc-=C.canvas.width*C.canvas.height*4}}e.drawImage(h.canvas,i-h.w/2-h.pad,d-h.h/2-h.pad,h.canvas.width/h.res,h.canvas.height/h.res)}var Fi=new WeakMap,_={reducedMotion:!1},_1=e=>new Set(e.flatMap(c=>c.cells));function J1(e,c,i){let d=e.category!==void 0;return{fill:d?e.category==="circle"?p.categoryBlueFace:p.categoryOrangeFace:i?p.danger:c?p.primary:p.cellFace,depth:d||!c&&!i?p.cellDepth:i?p.dangerDepth:p.primaryDepth,ink:!d&&(c||i)?p.onPrimary:p.ink,category:d}}function Oi(e,c,i,d=!1){if(!d){e.save();for(let o=1;og[1]),h=e.createLinearGradient(0,Math.min(...n),0,Math.max(...n));if(h&&typeof h.addColorStop=="function"){let g=y=>"#"+[1,3,5].map(s=>V(0,parseInt(i.fill.slice(s,s+2),16)+y,255).toString(16).padStart(2,"0")).join("");h.addColorStop(0,g(3)),h.addColorStop(.25,i.fill),h.addColorStop(.75,i.fill),h.addColorStop(1,g(-3)),c.paints.set(i.fill,h)}else c.paints.set(i.fill,i.fill)}ve(e,c.rings,c.radius),e.fillStyle=c.paints.get(i.fill),e.fill(),e.save(),ve(e,c.rings,c.radius),e.clip(),e.lineCap="round",e.lineWidth=J.material.bevelWidth,e.strokeStyle=d.steps.has(c.cell.id)&&!i.category?p.primaryEdge:p.cellBevel;for(let n of c.rings)for(let h=0;h=-.25)continue;let w=Math.min(c.radius,s*.3);e.beginPath(),e.moveTo(g[0]+(y[0]-g[0])*w/s-x*.7,g[1]+(y[1]-g[1])*w/s-u*.7),e.lineTo(y[0]-(y[0]-g[0])*w/s-x*.7,y[1]-(y[1]-g[1])*w/s-u*.7),e.stroke()}e.restore()}e.restore()}}function vc(e,c,i,d,o,r,t,a=800,l=!1){e.save(),l?Ci(e,i,d,o,r,t):X(e,i,d,o,r,t,a);let n=e.measureText(String(i)).width;e.restore(),c.keepouts.push({x:d-n/2-3,y:o-r*.6-2,w:n+6,h:r*1.2+4})}function G1(e,c,i,d){let o=c.indexOf(i.id);if(o<0)return"idle";if(o===0||d.has(i.id))return"error";let r=Le(e,i.id,c[o-1]);return!i.direction.includes(r)||ow[b]);if(e.beginPath(),e.moveTo(y+f[0]*x,s+f[1]*x),e.lineTo(y,s),e.lineTo(y+B[0]*x,s+B[1]*x),e.lineCap="round",e.lineJoin="round",e.lineWidth=V(7,l*.17,10),e.strokeStyle=u==="error"?p.dangerSoft:n?p.primaryEdge:p.surfaceMuted,e.stroke(),e.lineWidth=V(3.5,l*.085,5),e.strokeStyle=u==="error"?p.danger:g,e.stroke(),c.channels.push({cell:r.id,kind:r.direction,center:[y,s],radius:x,state:u}),c.keepouts.push({x:y-x-4,y:s-x-4,w:x*2+8,h:x*2+8}),h){let b=String(h).length>1,S=Math.min(l*(b?.3:.34),b?25:28),m=S*(b?1.35:.85),C=Math.min(1.8,l*.018),M=t+l*.21,q=a-l*.25;se(e,M-m/2-C,q-S*.55-C,m+C*2,S*1.1+C*2,Math.min(4,l*.05)),e.fillStyle=n&&!d.category?p.primaryPressed:p.surface,e.fill(),vc(e,c,h,M,q,S,g,800,!0)}}else{let y=h?l*(h>=10?.44:.5):l*.42,s=a+(!d.category&&r.parity&&h?-l*.1:0);h&&vc(e,c,h,t,s,y,g,800,!0),r.parity&&vc(e,c,r.parity==="odd"?"\u5947":"\u5076",t,h?a+l*.26:a,h?V(11,l*.2,13):y,g,700)}if(c.errors.has(r.id)){let y=t-l*.32,s=a-l*.31;e.beginPath(),e.arc(y,s,7,0,Math.PI*2),e.fillStyle=p.danger,e.fill(),vc(e,c,"!",y,s,11,p.onPrimary,800)}}function Ni(e,c){if(!e)return 0;let i=_.reducedMotion?1:V(0,(c-e.started)/J.motionMs.door,1);return e.from+(e.to-e.from)*(1-(1-i)**3)}function Kc(e,c,i,d=Date.now()){e.save();let o=(r,t)=>{let a=xc(c,...r);if(!a)return;let l=t==="open"||t==="latched";for(let[n,h]of a.segments){let g=N(n,h),y=u=>[n[0]+(h[0]-n[0])*u,n[1]+(h[1]-n[1])*u];e.lineCap="butt",e.lineWidth=V(5,c.pitch*.13,8),e.strokeStyle=t==="wall"?p.wallInk:l?p.doorOpen:p.doorClosed,e.beginPath();let s=c.doorTransitions?.get(r.join("|")),x=t==="wall"?0:Ni(s,d)*.5;if(x>0?(e.moveTo(...y(.06)),e.lineTo(...y(.5-x/2)),e.moveTo(...y(.5+x/2)),e.lineTo(...y(.94))):(e.moveTo(...y(.06)),e.lineTo(...y(.94))),e.stroke(),t==="wall"){let u=-(h[1]-n[1])/g,w=(h[0]-n[0])/g,f=(h[0]-n[0])/g,B=(h[1]-n[1])/g;e.strokeStyle=p.wallStripe,e.lineWidth=2;for(let b=7;bg===i[y])){let g=l.byId.get(i.at(-1));g?.cell.clue>1&&g.cell.clue===i.length&&!ne(c,i).length&&l.bursts.push({cell:g.cell.id,point:g.center,started:r,seed:i.length})}l.lastPath=[...i],l.bursts=l.bursts.filter(g=>r-g.started<1500),n!==l.pathKey&&(l.pathKey=n,l.changedAt=r),l.doorTransitions||(l.doorTransitions=new Map);for(let g of c.doors||[]){let y=g.edge.join("|"),s=be(g,i)?1:0,x=l.doorTransitions.get(y);x?x.to!==s&&l.doorTransitions.set(y,{from:Ni(x,r),to:s,started:r}):l.doorTransitions.set(y,{from:s,to:s,started:r})}l.depth=c.geometry==="hex"?V(1.2,l.pitch*.028,2.2):V(3,l.pitch*J.referenceMatch.cellDepthRatio,J.referenceMatch.cellDepthMax),l.steps=new Map(i.map((g,y)=>[g,y+1])),l.errors=_1(ne(c,i)),l.keepouts=[],l.channels=[],l.views=l.cells.map(g=>({cell:g.cell.id,...J1(g.cell,l.steps.get(g.cell.id),l.errors.has(g.cell.id)),error:l.errors.has(g.cell.id),category:g.cell.category||null,cellUnit:l.pitch})),e.clearRect(0,0,d,o),e.save();for(let g=0;gEi(e,l.cells[g],l.views[g],l));Oi(e,l,i);for(let g=0;gY1(e,l,l.cells[g],l.views[g],i));return K1(e,l,r),Kc(e,l,i,r),e.restore(),l.animating=!t&&!_.reducedMotion&&(l.bursts.length>0||[...l.doorTransitions.values()].some(g=>g.from!==g.to&&r-g.startedc.includes(a.cell.id)).map(a=>({rings:a.rings,radius:a.radius,depth:e.depth,maskPad:V(3,e.pitch*.065,7)+1})),reducedMotion:_.reducedMotion};return Pi.set(e,{key:d,keepouts:e.keepouts,value:t}),t}function K1(e,c,i){if(_.reducedMotion)return;let d=["#FF986B","#A093FF","#FFD45C","#B9DBB2","#FFF9E8"];e.save(),e.lineCap="round";for(let o of c.bursts){let r=Math.max(0,(i-o.started)/1500),t=1-(1-r)**2;for(let a=0;a<22;a++){let l=a/22*Math.PI*2,n=c.pitch*(.38+a%5*.12),h=o.point[0]+Math.cos(l)*n*t,g=o.point[1]+Math.sin(l)*n*t+c.pitch*.16*r*r;e.globalAlpha=Math.min(1,(1-r)*2.2),e.strokeStyle=d[(a+o.seed)%d.length],e.lineWidth=Math.max(2,c.pitch*.035),e.beginPath(),e.moveTo(h-2,g-3),e.quadraticCurveTo(h+Math.sin(a+r*8)*4,g,h+2,g+3),e.stroke()}}e.restore()}function z1(e,c=!1){return c||e<=0||e>=360?1:1+.035*Math.sin(Math.PI*e/360)}function Ai(e,c,i,d,o){let r=[...c.bursts].reverse().find(a=>a.cell===i.cell.id),t=r&&c.steps.has(i.cell.id)?z1(d-r.started,_.reducedMotion):1;if(t===1){o();return}e.save(),e.translate(...i.center),e.scale(t,t),e.translate(-i.center[0],-i.center[1]),o(),e.restore()}var Uc="variant:campaign-200-r2:v1:resume";function Bc(e){try{let c=JSON.parse(e.getItem(Uc)||"null");return c?.version===1&&typeof c.levelId=="string"?c:null}catch{return null}}function Sc(e,c,i,d){let o=new Set(c),r=e.findIndex(l=>l.id===i?.levelId),t=e.findIndex(l=>l.id===d);if(r>=0&&!o.has(e[r].id))return{index:r,path:Array.isArray(i.path)?i.path:[]};let a=r>=0?r:t;if(a>=0&&!o.has(e[a].id))return{index:a,path:[]};for(let l=1;l<=e.length;l++){let n=(Math.max(-1,a)+l)%e.length;if(!o.has(e[n].id))return{index:n,path:[]}}return{index:Math.max(0,a),path:[]}}function Vc(e,c,i){if(!Array.isArray(c)||c.length>e.cells.length)return[];let d=[];for(let o of c){if(typeof o!="string"||!i(e,d,o))return[];d.push(o)}return d}function Li(e,c,i,d,o,r){let t=Bc(e),a=new Set(i);if(a.has(d.id)&&!r&&t&&!a.has(t.levelId)&&c.some(h=>h.id===t.levelId))return;let l=r||a.has(d.id)?Sc(c,i,null,d.id):{index:c.indexOf(d),path:[...o]},n=JSON.stringify({version:1,levelId:c[l.index].id,path:l.path});try{e.getItem(Uc)!==n&&e.setItem(Uc,n)}catch{}}function Hi(e,c,i){let d=new Map(e.cells.map(t=>[t.id,t])),o=c.flatMap((t,a)=>{let l=d.get(t);return a===0||a===c.length-1||l.clue!==void 0||l.direction||l.parity?[a]:[]}),r=0;for(;re.end)return e=null,null;let t=Hi(i,d,o);return t&&t.starti[y]);if(t.some(y=>!y))return;let a=new Set(r),l=c.route.slice(1).map((y,s)=>{let x=c.route[s];return r.some((u,w)=>w>0&&(r[w-1]===x&&u===y||r[w-1]===y&&u===x))}),n=Math.max(4,Math.min(9,d*.13)),h=o%Math.max(1200,(t.length-1)*240)/Math.max(1200,(t.length-1)*240)*(t.length-1);e.save(),e.lineCap="round",e.lineJoin="round";let g=(y,s,x)=>{l[y]||(e.beginPath(),e.moveTo(...t[y]),e.lineTo(...t[y+1]),e.strokeStyle=s,e.lineWidth=x,e.stroke())};for(let y=0;y=0;y--){let s=h-y*.045;if(s<0)continue;let x=Math.min(Math.floor(s),t.length-2),u=s-x;if(l[x])continue;let w=t[x],f=t[x+1],B=w[0]+(f[0]-w[0])*u,b=w[1]+(f[1]-w[1])*u;e.beginPath(),e.arc(B,b,n*(.45+(10-y)*.035),0,Math.PI*2),e.fillStyle=`rgba(255,255,255,${.12+(10-y)*.075})`,e.fill(),y===0&&(e.strokeStyle="rgba(35,36,58,.9)",e.lineWidth=2,e.stroke())}for(let y of[0,t.length-1])a.has(c.route[y])||(e.beginPath(),e.arc(...t[y],Math.max(8,d*.23),0,Math.PI*2),e.strokeStyle="rgba(35,36,58,.72)",e.lineWidth=7,e.stroke(),e.strokeStyle="rgba(255,255,255,.92)",e.lineWidth=3,e.stroke());e.globalCompositeOperation="destination-out",e.fillStyle="#000000";for(let y of c.visitedPolygons||[]){e.beginPath(),e.moveTo(...y[0]);for(let s of y.slice(1))e.lineTo(...s);e.closePath(),e.fill()}e.restore()}var _i=new WeakMap;function U1(e,c,i){let d=JSON.stringify([c,i]),o=_i.get(e.guides);if(o?.key===d)return o.value;let r=(y,s)=>i.some((x,u)=>u>0&&(i[u-1]===y&&x===s||i[u-1]===s&&x===y)),t=e.guides.filter(y=>!r(y.a,y.b)),a=X1(t,c*.16),l=Math.max(4,Math.min(8,c*.12)),n=0,h=a.flatMap(y=>y.slice(1).map((s,x)=>({a:y[x],b:s,length:N(y[x],s)}))).filter(y=>y.length>.01).map(y=>({...y,start:n,end:n+=y.length})),g={guides:t,runs:a,width:l,segments:h,total:n};return _i.set(e.guides,{key:d,value:g}),g}function V1(e,c){let{segments:i}=e;if(!i.length)return null;let d=0,o=i.length-1;for(;d>1;i[a].end{e.strokeStyle=y,e.lineWidth=s;for(let x of a)if(x.length){e.beginPath(),e.moveTo(...x[0]);for(let u of x.slice(1))e.lineTo(...u);e.stroke()}};if(e.shadowColor="rgba(148,99,55,.18)",e.shadowBlur=i*.045,e.shadowOffsetY=1.2,h(p.hintRibbonLight,l+5),e.shadowBlur=0,e.shadowOffsetY=0,h(p.hintRibbon,l),e.globalAlpha=.28,h(p.hintRibbonLight,l*.48),e.globalAlpha=1,e.setLineDash([]),!c.reducedMotion){let y=Math.max(1600,n/65*1e3),s=d%y/y*n;for(let x=0;x<3;x++){let u=(s+x*n/3)%n;for(let w=16;w>=0;w--){let f=u-w*Math.max(.9,l*.3);if(f<0)continue;let B=V1(r,f);if(B){let{segment:b,x:S,y:m}=B;e.globalAlpha=(1-w/18)*.85,e.shadowColor="rgba(255,245,215,.65)",e.shadowBlur=w===0?l*1.2:0,e.beginPath(),e.arc(S,m,l*(.23+(16-w)/16*.4),0,Math.PI*2),e.fillStyle=p.hintSpark,e.fill(),w===0&&(e.globalAlpha=1,e.shadowBlur=0,Ji(e,b.a,b.b,S,m,l))}}}e.globalAlpha=1,e.shadowBlur=0}if(c.reducedMotion)for(let y of t){let s=y.points.at(-1),x=y.points.at(-2);x&&s&&Ji(e,x,s,(x[0]+s[0])/2,(x[1]+s[1])/2,l)}e.save(),e.globalCompositeOperation="destination-out";for(let y of[a[0]?.[0],a.at(-1)?.at(-1)]){if(!y)continue;let s=Math.max(17,i*.46),[x,u]=y,w=e.createRadialGradient(x,u,0,x,u,s);w?.addColorStop&&(w.addColorStop(0,"rgba(0,0,0,1)"),w.addColorStop(.55,"rgba(0,0,0,1)"),w.addColorStop(1,"rgba(0,0,0,0)"),e.fillStyle=w,e.fillRect(x-s,u-s,s*2,s*2))}e.restore();let g=a.at(-1)?.at(-1);if(g){let y=Math.max(9,i*.25);e.beginPath(),e.arc(...g,y,0,Math.PI*2),e.strokeStyle=p.hintRibbonLight,e.lineWidth=5,e.stroke(),e.strokeStyle=p.hintRibbon,e.lineWidth=2.5,e.stroke()}e.globalCompositeOperation="destination-out",e.fillStyle="#000",e.strokeStyle="#000";for(let y of c.visitedShapes||[])for(let s of[0,y.depth])ve(e,y.rings,y.radius,s),e.fill(),e.lineWidth=y.maskPad?y.maskPad*2:3,e.stroke();for(let y of c.keepouts||[])e.fillRect(y.x,y.y,y.w,y.h);e.restore()}function Ji(e,c,i,d,o,r){let t=N(c,i);if(t<1)return;let a=(i[0]-c[0])/t,l=(i[1]-c[1])/t,n=r*.65;e.beginPath(),e.moveTo(d-a*n-l*n,o-l*n+a*n),e.lineTo(d+a*n,o+l*n),e.lineTo(d-a*n+l*n,o-l*n-a*n),e.strokeStyle=p.hintRibbonDepth,e.lineWidth=Math.max(2,r*.38),e.stroke()}function X1(e,c){let i=[],d;for(let o of e)o.points.length&&(d&&d.b===o.a&&N(i.at(-1).at(-1),o.points[0])<.1?i.at(-1).push(...o.points.slice(1)):i.push([...o.points]),d=o);return i.map(o=>{let r=o.filter((a,l)=>!l||N(a,o[l-1])>.01);if(r.length<3)return r;let t=[r[0]];for(let a=1;ae.id)).map(e=>Oe.levels.find(c=>c.id===e)),Xc=K.length;var $c=null,cc=[],ic=[],Ui="mouse",D=e=>Q.getElementById(e),z=D("board"),Ee=z.getContext("2d"),Mc=!1,v,Pe,I=[],De=0;var rc=[],Ye=new Map,tc=1,Se=[],Zc=!1,ac=null,$=!1,Ae="variant:campaign-200-r2:v1",Z=new mc(H,xe,Ae+":sound"),ce=[];try{ce=JSON.parse(xe.getItem(Ae)||"[]")}catch{}var kc=new Map,Ic=0,Tc=null,U=null,Fe=[];try{Fe=JSON.parse(xe.getItem(Ae+":records")||"[]")}catch{}function Ke(){if(!U)return;U.reasoning=D("reasoning").value,U.elapsedSeconds=Math.round((ec.now()-Ic)/1e3),U.completed=$;let e={...U,endedAt:new Date().toISOString()},c=Fe.findIndex(i=>i.attemptId===e.attemptId);c>=0?Fe[c]=e:Fe.push(e);try{xe.setItem(Ae+":records",JSON.stringify(Fe.slice(-500)))}catch{}}function pe(e){D("status").textContent=e,D("status").className="toast show",$c&&clearTimeout($c),$c=setTimeout(()=>{D("status").className="toast"},1800)}function Dc(){v.tutorial&&!ce.includes(v.id)&&!I.length&&(D("rule-text").textContent=v.caption,D("rules-sheet").hidden=!1),D("screen-select").className="screen hidden",D("screen-play").className="screen enter",ae()}function Q1(){Ke(),D("screen-select").className="screen enter",D("screen-play").className="screen hidden",ei(),D("status").className="toast"}function Z1(){kc.clear();let e=[...(v.relations||[]).flatMap(c=>[c.from,c.to]),...(v.orderChains||[]).flat()];for(let c of e)kc.has(c)||kc.set(c,String.fromCharCode(65+kc.size))}function er(){return{attemptId:Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8),mode:Oe.mode,level:v.id,contentRevision:v.contentRevision,order:v.order,chapter:v.chapter,title:v.title,startedAt:new Date().toISOString(),thinkingBeforeFirstDrawSeconds:null,elapsedSeconds:0,firstError:null,backtracks:0,restarts:0,hints:0,completed:!1,reasoning:""}}function Rc(e,c=!0){if(Qc.clear(),U&&Ke(),De=e,v=K[e],Pe=sc(v)[0],!Pe)throw Error("\u6CA1\u6709\u5408\u6CD5\u8DEF\u7EBF");I=[],Se=[],$=!1,Ic=ec.now(),Tc=null,U=er(),D("reasoning").value="",Z1(),D("goal").textContent=v.title,D("caption").textContent=v.caption||"\u5148\u89C2\u5BDF\uFF0C\u518D\u753B\uFF1B\u9519\u4E86\u53EF\u4EE5\u9000\u56DE\u3002",D("title").textContent="\u6570\u5B57\u4E00\u7B14",D("rule-text").textContent=cr(v);try{xe.setItem(Ae+":current",v.id)}catch{}pe(""),Vi(),ei(),c&&Dc(),ae()}function ei(){let e=D("pack-list");e.replaceChildren();for(let c of Oe.chapters){let i=Q.createElement("section");i.className="pack";let d=Q.createElement("div");d.className="pack-title";let o=Q.createElement("span");o.textContent=c.title;let r=Q.createElement("span");r.className="pack-progress";let t=K.filter(l=>l.chapter===c.id);r.textContent=t.filter(l=>ce.includes(l.id)).length+" / "+t.length,d.append(o,r);let a=Q.createElement("div");a.className="level-grid";for(let l of t){let n=K.indexOf(l),h=Q.createElement("button");h.levelId=l.id,h.textContent=String(K.indexOf(l)+1),h.title=l.title,h.className="level-tile"+(ce.includes(l.id)?" cleared":"")+(n===De?" current":""),h.onclick=()=>Rc(n),a.append(h)}i.append(d,a),e.append(i)}D("position").textContent=v.chapter+"-"+(K.filter(c=>c.chapter===v.chapter).indexOf(v)+1),D("level-sub").textContent=v.chapterTitle+" \xB7 \u7B2C"+(De+1)+"\u5173"+(v.tutorial?" \xB7 \u5F15\u5BFC":""),D("progress").textContent=ce.filter(c=>K.some(i=>i.id===c)).length+" / "+Xc,D("overall-fill").style.width=ce.filter(c=>K.some(i=>i.id===c)).length/Xc*100+"%",D("btn-continue").textContent="\u7EE7\u7EED \xB7 "+v.chapter+"-"+(K.filter(c=>c.chapter===v.chapter).indexOf(v)+1),D("level-progress").replaceChildren();for(let c of K.filter(i=>i.chapter===v.chapter)){let i=Q.createElement("i");i.className=(ce.includes(c.id)?"cleared ":"")+(c.id===v.id?"current":""),D("level-progress").append(i)}}var cr=Di;function Vi(){D("constraints").replaceChildren()}function ae(){if(!v)return;let e=z.clientWidth,c=z.clientHeight;if(!e||!c)return;let i=H.devicePixelRatio||1;z.width!==Math.round(e*i)&&(z.width=Math.round(e*i)),z.height!==Math.round(c*i)&&(z.height=Math.round(c*i)),Ee.setTransform(i,0,0,i,0,0),he=zc(Ee,v,I,e,c,{preview:Mc}),{polygons:rc,centers:Ye,unit:tc}=he,cc=he.channels,ic=he.views;let d=ne(v,I);Mc||(r1(),rr(d),D("remaining-n").textContent=$?"\u5B8C\u6210":String(v.cells.length-I.length),D("remaining").className="remaining"+($?" done":""),v.doors?.length&&Vi(),d.length&&pe(d[0].message+"\uFF0C\u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u9000\u56DE\u3002"),D("undo").disabled=!I.length,D("next").hidden=!$||De===K.length-1)}function Ki(e,c,i){let d=!1;for(let o=0,r=i.length-1;oc!=n>c&&e<(l-t)*(c-a)/(n-a)+t&&(d=!d)}return d}function $i(e,c){return rc.find(i=>{if(v.geometry!=="hex")return Ki(e,c,i.p);let[d,o]=Ye.get(i.id),r=Ui==="touch"?.92:.86;return Ki(e,c,i.p.map(([t,a])=>[d+(t-d)*r,o+(a-o)*r]))})?.id}function zi(e,c){Z.play("error"),U.firstError||(U.firstError={step:I.length+1,cell:e,message:c}),pe(c)}function Xi(e){if(!e||$)return;let c=I.indexOf(e);if(c!==-1){I.length>=2&&c===I.length-2&&(U.backtracks++,I.pop(),Z.play("undo"),Se=[],pe("\u5DF2\u56DE\u9000\uFF0C\u7EE7\u7EED\u89C2\u5BDF\u5269\u4F59\u683C\u3002"),ae());return}if(!gc(v,I,e)){let d=He(v);(I.length&&d.adj[d.ids.get(I.at(-1))].includes(d.ids.get(e))||!I.length)&&zi(e,I.length?v.walls?.some(r=>r.includes(I.at(-1))&&r.includes(e))?"\u8FD9\u662F\u6C38\u4E45\u5899\uFF0C\u4E0D\u80FD\u7A7F\u8FC7\u3002":v.doors?.some(r=>r.edge.includes(I.at(-1))&&r.edge.includes(e))?"\u95E8\u73B0\u5728\u5173\u95ED\uFF1B\u7ED5\u884C\u843D\u683C\u540E\u4F1A\u5207\u6362\u3002":"\u540C\u8272\u683C\u4E0D\u80FD\u8FDE\u7EED\u7ECF\u8FC7\uFF0C\u8BF7\u6362\u53E6\u4E00\u79CD\u989C\u8272\u3002":"\u8BF7\u4ECE\u6570\u5B57 1 \u5F00\u59CB\u3002");return}Tc===null&&(Tc=ec.now(),U.thinkingBeforeFirstDrawSeconds=Math.round((Tc-Ic)/1e3)),I.push(e),Se=[];let i=ne(v,I);if(i.length)zi(e,i[0].message);else{let d=v.cells.find(o=>o.id===e);I.length1?"checkpoint":"correct":"move",0,I.length),pe("")}if(I.length===v.cells.length&&!i.length){if($=!0,U.completed=!0,U.elapsedSeconds=Math.round((ec.now()-Ic)/1e3),!ce.includes(v.id)){ce.push(v.id);try{xe.setItem(Ae,JSON.stringify(ce))}catch{}}pe(De===K.length-1?Xc+"\u5173\u5B8C\u6210\uFF01":"\u5B8C\u6210\uFF01"),Z.play("complete",0),Ke(),ei()}ae()}function Qi(e){let c=z.getBoundingClientRect();return[e.clientX-c.left,e.clientY-c.top]}z.addEventListener("pointerdown",e=>{e.preventDefault(),Z.unlock(),Ui=e.pointerType||"mouse",Zc=!0,z.setPointerCapture(e.pointerId),ac=Qi(e),Xi($i(...ac))});z.addEventListener("pointermove",e=>{if(!Zc)return;e.preventDefault();let c=Qi(e),i=ac||c,d=Math.hypot(c[0]-i[0],c[1]-i[1]),o=Math.ceil(d/Math.max(3,tc*.1));for(let r=1;r<=o;r++)Xi($i(i[0]+(c[0]-i[0])*r/o,i[1]+(c[1]-i[1])*r/o));ac=c});function Zi(){Zc=!1,ac=null}z.addEventListener("pointerup",Zi);z.addEventListener("pointercancel",Zi);D("undo").onclick=()=>{Z.unlock(),I.length&&(I.pop(),Z.play("undo"),U.backtracks++,U.completed=!1,$=!1,Se=[],pe("\u5DF2\u64A4\u9500\u4E00\u6B65\u3002"),ae())};D("restart").onclick=()=>{Z.unlock(),Z.play("restart"),I=[],$=!1,Se=[],U.restarts++,U.completed=!1,pe("\u5DF2\u91CD\u5F00\u3002"),ae()};D("hint").onclick=()=>{U.hints++,Se=[];let e=Qc.request(v,Pe,I);pe(e?"\u6CBF\u5F15\u5BFC\u5E26\u8FDE\u63A5\u4E24\u7AEF\uFF1B\u8D70\u504F\u53EF\u64A4\u9500\u6216\u91CD\u5F00\uFF0C\u6B63\u786E\u5230\u8FBE\u540E\u63D0\u793A\u6D88\u5931\u3002":"\u5DF2\u7ECF\u5B8C\u6210\u3002"),ae()};D("next").onclick=()=>{De+1{Ke(),ji({version:Oe.version,exportedAt:new Date().toISOString(),clearedIds:ce,records:Fe}),pe("\u5DF2\u4FDD\u5B58\u8BD5\u73A9\u8BB0\u5F55\u3002")};H.addEventListener("pagehide",()=>{Ke(),r1()});D("btn-back").onclick=Q1;D("btn-continue").onclick=Dc;D("btn-rules").onclick=()=>{D("rules-sheet").hidden=!1};D("close-rules").onclick=()=>{D("rules-sheet").hidden=!0};D("btn-feedback").onclick=()=>{D("feedback-sheet").hidden=!1};D("close-feedback").onclick=()=>{Ke(),D("feedback-sheet").hidden=!0};H.addEventListener("resize",ae);H.visualViewport?.addEventListener("resize",ae);H.addEventListener("orientationchange",ae);var ci=null;try{ci=xe.getItem(Ae+":current")}catch{}var Zr=K.findIndex(e=>e.id===ci),ir=Bc(xe),e1=Sc(K,ce,ir,ci);Rc(e1.index,!1);I=Vc(v,e1.path,gc);I.length===v.cells.length&&!ne(v,I).length&&(I=[]);ae();Dc();function c1(){D("btn-sound").textContent=Z.enabled?"\u97F3\u6548\u5F00":"\u97F3\u6548\u5173",D("btn-sound").title=Z.enabled?"\u5173\u95ED\u97F3\u6548":"\u5F00\u542F\u97F3\u6548",D("btn-sound").setAttribute?.("aria-pressed",String(Z.enabled))}D("btn-sound").onclick=()=>{Z.toggle(),c1()};c1();function rr(e){if(!v.tutorial)return;let c=v.caption;if(e.length)c="\u89C4\u5219\u4E0D\u7B26\uFF0C\u8BF7\u6CBF\u6765\u65F6\u8DEF\u9000\u56DE\u4E0A\u4E00\u683C\u518D\u8BD5\u3002";else if($)c="\u5B66\u4F1A\u4E86\uFF01\u63A5\u4E0B\u6765\u8BD5\u8BD5\u6B63\u5F0F\u5173\u5361\u3002";else if(v.tutorial==="colour")c=I.length===1?"\u4E0B\u4E00\u6B65\u53BB\u6A59\u8272\u5757\uFF1B\u540C\u8272\u84DD\u5757\u4E0D\u80FD\u8FDE\u7EED\u8D70\u3002":I.length===2?"\u518D\u6362\u56DE\u84DD\u8272\uFF0C\u5B8C\u6210\u84DD \u2192 \u6A59 \u2192 \u84DD\u3002":v.caption;else if(["straight","vertical","corner"].includes(v.tutorial)){let i=v.cells.find(o=>o.direction),d=I.indexOf(i.id);d>=0&&d===I.length-1&&(c=v.tutorial==="straight"?"\u6CBF\u6A2A\u7EBF\u4ECE\u53E6\u4E00\u4FA7\u79BB\u5F00\uFF0C\u4E0D\u80FD\u62D0\u5F2F\u3002":v.tutorial==="vertical"?"\u6CBF\u7AD6\u7EBF\u4ECE\u53E6\u4E00\u4FA7\u79BB\u5F00\uFF0C\u4E0D\u80FD\u5411\u5DE6\u53F3\u8D70\u3002":"\u6CBF\u56FE\u4E2D\u62D0\u89D2\u8FDE\u63A5\u7684\u53E6\u4E00\u4FA7\u79BB\u5F00\u3002")}D("caption").textContent=c}H.variantSnapshot=()=>({mode:Oe.mode,level:v.id,order:v.order,displayOrder:De+1,tutorial:v.tutorial||null,soundEnabled:Z.enabled,lastSound:Z.lastEvent,chapter:v.chapter,records:Fe.length,cellViews:ic,geometry:v.geometry,directionMarkers:cc,screen:D("screen-play").className.includes("hidden")?"select":"play",path:[...I],violations:ne(v,I),cleared:$,centers:Object.fromEntries(Ye),unit:tc,openedGates:(v.gates||[]).map(e=>I.includes(e.switchCell)),doors:(v.doors||[]).map(e=>be(e,I)),latchedDoors:(v.doors||[]).map(e=>Te(e,I))});function jc(){let e=Qc.view(v,Pe,I);return e?{...e,visitedPolygons:rc.filter(c=>I.includes(c.id)).map(c=>c.p.map(i=>[...i])),...Wi(he,I,e.route)}:null}function i1(e,c,i,d,o){let r={canvas:z,ctx:Ee,level:v,solution:Pe,path:I,polygons:rc,centers:Ye,unit:tc,focus:Se,cleared:$,channelViews:cc,cellViews:ic,brightScene:he};try{return z={clientWidth:d,clientHeight:o,get width(){return e.width},set width(t){e.width=t},get height(){return e.height},set height(t){e.height=t}},Ee=e.getContext("2d"),v={...c,tutorial:null},Pe=[],I=i,Se=[],$=!1,Mc=!0,ae(),{centers:Object.fromEntries(Ye),channels:cc,cells:ic}}finally{({canvas:z,ctx:Ee,level:v,solution:Pe,path:I,polygons:rc,centers:Ye,unit:tc,focus:Se,cleared:$,channelViews:cc,cellViews:ic,brightScene:he}=r),Mc=!1}}function r1(){v&&Li(xe,K,ce,v,I,$)}function t1(){let e=Bc(xe),c=Sc(K,ce,e,v.id);(v.id!==K[c.index].id||$)&&(Rc(c.index,!1),I=Vc(v,c.path,gc),ae()),Dc()}function a1(e){if(!he?.animating)return;let c=H.devicePixelRatio||1;Ee.setTransform(c,0,0,c,0,0),he=zc(Ee,v,I,z.clientWidth,z.clientHeight,{now:e})}function d1(e){he&&Kc(e,he,I)}function ii(){return!!he?.animating}function o1(e){if(e.tutorial)return[e.tutorial];let c=["basic"];e.features.includes("walls")&&c.push("walls");for(let[i,d]of[["straight","lr"],["vertical","du"]])e.cells.some(o=>o.direction===d)&&c.push(i);return e.cells.some(i=>i.direction&&!["lr","du"].includes(i.direction))&&c.push("corner"),e.features.includes("alternation")&&c.push("colour"),e.features.includes("parity")&&c.push("parity"),e.doors?.length&&c.push("rhythm-door"),e.geometry==="hex"&&c.push("hex"),e.cells.some(i=>i.clue===1)||c.push("unknown-start"),c}function l1(e,c){let i=e.levels.find(n=>n.tutorial===c);if(!i)throw Error("\u7F3A\u5C11\u6559\u5B66\u5173 "+c);let d=sc(i)[0],o=Array.from({length:d.length+1},(n,h)=>d.slice(0,h));if(c==="rhythm-door")for(let n=d.length-1;n>=0;n--)o.push(d.slice(0,n));let r=[],t=He(i);if(c==="walls"&&r.push({after:1,route:d.slice(0,1),blocked:i.walls[0],message:"\u8BD5\u7740\u7A7F\u5899\uFF1A\u8FD9\u6761\u8FB9\u88AB\u6321\u4F4F\uFF0C\u9700\u8981\u7ED5\u884C"}),c==="colour"){let n=i.cells.find(g=>g.id===d[0]),h=t.adj[t.ids.get(n.id)].map(g=>t.cells[g]).find(g=>g.category===n.category);h&&r.push({after:1,route:d.slice(0,1),blocked:[n.id,h.id],message:"\u540C\u8272\u4E0D\u80FD\u8FDE\u7EED\u8D70\uFF1B\u6539\u8D70\u65C1\u8FB9\u7684\u6A59\u8272\u683C"})}if(["straight","vertical","corner","parity"].includes(c))for(let n=1;nt.cells[y].id).find(y=>!h.includes(y)&&ne(i,[...h,y]).some(s=>s.key.startsWith((c==="parity"?"parity":"direction")+":")));if(g){r.push({after:n,route:[...h,g],message:c==="parity"?"\u9519\u8BEF\u793A\u4F8B\uFF1A\u5947\u5076\u4E0E\u5F53\u524D\u6B65\u6570\u4E0D\u7B26\uFF0C\u683C\u5B50\u53D8\u7EA2":"\u9519\u8BEF\u793A\u4F8B\uFF1A\u6CA1\u6709\u6CBF\u56FE\u4E2D\u7684\u4E24\u7AEF\u8FDB\u51FA\uFF0C\u56FE\u6807\u53D8\u7EA2"});break}}if(c==="parity"){let n=d[0];for(let h of t.adj[t.ids.get(n)])for(let g of t.adj[h]){let y=[n,t.cells[h].id,t.cells[g].id];new Set(y).size===3&&ne(i,y).some(s=>s.key.startsWith("parity:"))&&!r.length&&r.push({after:1,route:y,message:"\u9519\u8BEF\u793A\u4F8B\uFF1A\u7B2C 3 \u6B65\u8D70\u5230\u201C\u5076\u201D\u683C\uFF0C\u683C\u5B50\u53D8\u7EA2"})}}let a=[];o.forEach((n,h)=>{if(a.push({route:n}),hy.after===h)){a.push(g);for(let y=g.route.length-1;y>n.length;y--)a.push({route:g.route.slice(0,y),message:"\u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u9000\u56DE\uFF0C\u518D\u6309\u89C4\u5219\u8D70"});a.push({route:n,message:g.blocked?"\u6539\u8D70\u7B26\u5408\u89C4\u5219\u7684\u76F8\u90BB\u683C\u5B50":"\u6CBF\u6765\u65F6\u8DEF\u9000\u56DE\uFF0C\u91CD\u65B0\u6309\u89C4\u5219\u8D70"})}});let l=[];for(let n of a){let h=l.at(-1);if(!(h&&JSON.stringify(h.route)===JSON.stringify(n.route)&&!n.blocked&&!h.blocked)){if(h&&n.route.length>h.route.length+1)for(let g=h.route.length+1;gs.id===a.at(-1)),y=n?"\u7B2C "+n+" \u6B65":"\u5148\u89C2\u5BDF\u683C\u5B50\uFF0C\u518D\u5F00\u59CB\u8FDE\u7EBF";if(h==="basic"&&(y=n?"\u7B2C "+n+" \u6B65 \xB7 \u6BCF\u4E2A\u683C\u5B50\u53EA\u7ECF\u8FC7\u4E00\u6B21":"\u4ECE\u6570\u5B57 1 \u5F00\u59CB"),h==="colour"&&n&&(y+=" \xB7 "+(g.category==="circle"?"\u84DD\u8272\uFF1B\u4E0B\u4E00\u6B65\u6362\u6A59\u8272":"\u6A59\u8272\uFF1B\u4E0B\u4E00\u6B65\u6362\u84DD\u8272")),h==="parity"&&n&&(y+=" \xB7 "+(n%2?"\u5947\u6570\u6B65\uFF1A1\u30013\u30015\u2026":"\u5076\u6570\u6B65\uFF1A2\u30014\u30016\u2026")),["straight","vertical","corner"].includes(h)){let s=a.findIndex(x=>e.level.cells.find(u=>u.id===x)?.direction);y=s<0?"\u89C2\u5BDF\u7EBF\u6761\u8FDE\u63A5\u7684\u4E24\u7AEF":s===n-1?"\u4ECE\u7EBF\u7684\u4E00\u7AEF\u8FDB\u5165\uFF0C\u4E0B\u4E00\u6B65\u6CBF\u53E6\u4E00\u7AEF\u79BB\u5F00":"\u6CBF\u6307\u5B9A\u7684\u7EBF\u7A7F\u8FC7\uFF0C\u56FE\u6807\u4EAE\u8D77"}if(h==="rhythm-door"){let s=e.level.doors[0];y+=" \xB7 "+(Te(s,a)?"\u5DF2\u7ECF\u7A7F\u8FC7\uFF1A\u95E8\u4FDD\u6301\u6253\u5F00":be(s,a)?"\u95E8\u5F00\uFF1A\u73B0\u5728\u53EF\u4EE5\u7A7F\u8FC7":"\u95E8\u5173\uFF1A\u6B64\u65F6\u4E0D\u80FD\u7A7F\u8FC7"),l.length>n&&(y="\u56DE\u9000\u5230\u7B2C "+n+" \u6B65 \xB7 "+(Te(s,a)?"\u5C1A\u672A\u9000\u8FC7\u95E8\uFF0C\u4FDD\u6301\u6253\u5F00":"\u5DF2\u64A4\u9500\u7A7F\u95E8\uFF0C\u6062\u590D\u5F00\u5173\u5207\u6362"))}return h==="walls"&&(y=n?"\u6CBF\u5176\u4ED6\u683C\u5B50\u7ED5\u8FC7\u53BB\uFF0C\u9ED1\u9EC4\u5899\u59CB\u7EC8\u4E0D\u80FD\u7A7F\u8D8A":"\u627E\u5230\u9ED1\u9EC4\u5899\uFF1A\u8FD9\u6761\u8FB9\u4E0D\u80FD\u8D70"),h==="hex"&&(y=n?"\u7B2C "+n+" \u6B65 \xB7 \u6CBF\u76F8\u90BB\u7684\u6574\u6761\u8FB9\u79FB\u52A8":"\u89C2\u5BDF\u516D\u8FB9\u5F62\u76F8\u90BB\u7684\u8FB9"),h==="unknown-start"&&(y=n?"\u7B2C "+n+" \u6B65 \xB7 \u6838\u5BF9\u662F\u5426\u6309\u65F6\u5230\u8FBE\u6570\u5B57\u683C":"\u6CA1\u6709\u6570\u5B57 1\uFF1A\u89C2\u5BDF\u5176\u4ED6\u6570\u5B57\uFF0C\u9009\u62E9\u8D77\u70B9"),y=t.message||y,{route:a,previous:l,message:y,blocked:t.blocked,progress:c>=i?1:o-Math.floor(o),finished:c>=i,index:r}}var tr=1e3;function y1(e,c){let i=e.duration+tr;return Math.min(e.duration,Math.max(0,c)%i)}function h1(e,c,i,d=!1){let o=e.createLinearGradient(0,0,c,i);o&&typeof o.addColorStop=="function"?(o.addColorStop(0,"#FFE898"),o.addColorStop(.45,p.background),o.addColorStop(1,p.backgroundBottom),e.fillStyle=o):e.fillStyle=p.background,e.fillRect(0,0,c,i),!d&&(e.save(),e.strokeStyle=p.pattern,e.globalAlpha=.3,e.lineWidth=3,e.lineJoin="round",e.beginPath(),e.arc(8,i*.18,37,0,Math.PI*2),e.stroke(),e.beginPath(),e.moveTo(c-24,i*.1),e.lineTo(c+9,i*.18),e.lineTo(c-56,i*.16),e.closePath(),e.stroke(),e.save(),e.translate(8,i*.73),e.rotate(-.3),se(e,-20,-20,44,44,8),e.stroke(),e.restore(),e.beginPath(),e.arc(c+2,i*.87,27,0,Math.PI*1.65),e.stroke(),e.restore())}function ar(e,c,i,d,o,r){if(e.save(),e.translate(i,d),e.scale(o/28,o/28),r||(e.globalAlpha=.38),e.lineCap="round",e.lineJoin="round",e.shadowColor="rgba(130,79,23,.22)",e.shadowBlur=1.5,e.shadowOffsetY=.8,c==="\u6307\u8DEF"){e.strokeStyle="#FFD74E",e.lineWidth=2,e.beginPath();for(let t of[-3.05,-2.45,-1.8,-1.12,-.5,.15])e.moveTo(Math.cos(t)*9.4,-2+Math.sin(t)*9.4),e.lineTo(Math.cos(t)*12.2,-2+Math.sin(t)*12.2);e.stroke(),e.beginPath(),e.arc(0,-2,6.8,0,Math.PI*2),e.fillStyle="#FFD34B",e.fill(),e.shadowBlur=0,e.strokeStyle="#F0B330",e.lineWidth=.75,e.stroke(),e.beginPath(),e.arc(-.8,-2.8,4.4,Math.PI*1.05,Math.PI*1.65),e.strokeStyle="#FFF4BD",e.lineWidth=1.6,e.stroke(),se(e,-3.2,3.5,6.4,4.8,1.3),e.fillStyle="#FFFAE4",e.fill(),e.beginPath(),e.moveTo(-2.3,6),e.lineTo(2.3,6),e.strokeStyle="#D8D4C9",e.lineWidth=.8,e.stroke(),se(e,-2.3,8,4.6,1.8,.8),e.fillStyle="#D5CEC5",e.fill()}else if(c==="\u91CD\u5F00"){let t=()=>{e.beginPath(),e.arc(0,0,7.1,-Math.PI*.28,Math.PI*1.25)};t(),e.lineWidth=5.1,e.strokeStyle="#EB633A",e.stroke(),e.shadowBlur=0,e.save(),e.translate(0,-.55),t(),e.lineWidth=4.3,e.strokeStyle="#FF8557",e.stroke(),e.restore(),e.beginPath(),e.moveTo(-4.8,-10.4),e.quadraticCurveTo(-5.6,-11,-6.4,-10.1),e.lineTo(-10,-5.8),e.quadraticCurveTo(-10.7,-4.8,-9.4,-4.3),e.lineTo(-3.7,-2.8),e.quadraticCurveTo(-2.6,-2.7,-2.8,-4),e.closePath(),e.fillStyle="#FF8355",e.fill(),e.strokeStyle="#FFAA7A",e.lineWidth=.65,e.stroke()}else c==="\u64A4\u9500"&&(e.beginPath(),e.moveTo(-10,-2),e.lineTo(-3,-8),e.quadraticCurveTo(-1.5,-9,-1.5,-6),e.lineTo(-1.5,-4),e.lineTo(2,-4),e.quadraticCurveTo(10,-4,10,4),e.lineTo(10,7),e.quadraticCurveTo(10,9,7.8,9),e.quadraticCurveTo(5.8,9,5.8,7),e.lineTo(5.8,5),e.quadraticCurveTo(5.8,1,2,1),e.lineTo(-1.5,1),e.lineTo(-1.5,3.5),e.quadraticCurveTo(-1.5,6,-3.5,4.4),e.closePath(),e.fillStyle="#FFBE40",e.fill(),e.shadowBlur=0,e.strokeStyle="#F2A323",e.lineWidth=.8,e.stroke(),e.beginPath(),e.moveTo(-7.7,-2.2),e.lineTo(-3.3,-6),e.strokeStyle="#FFE6A1",e.lineWidth=.8,e.stroke());e.restore()}function g1(e,c,i,d,o,r,{enabled:t=!0,primary:a=!1,pressed:l=!1}={}){let n=Math.min(o*.24,r*J.referenceMatch.buttonRadiusRatio),h=l?2:0;e.save(),ye(e,i,d+h,o,r-4,n,t?a?l?p.primaryPressed:p.primary:p.surface:p.surfaceMuted,t?l?2:5:3);let g=t?a?p.onPrimary:p.ink:p.disabledInk;if(["\u91CD\u5F00","\u64A4\u9500","\u6307\u8DEF"].includes(c)&&r>=50){let y=c==="\u91CD\u5F00"?38:c==="\u64A4\u9500"?36:35;ar(e,c,i+o/2,d+r*.3+h,y*(r>=64?1:.79),t),e.shadowColor=a?"rgba(255,255,255,.40)":"rgba(255,255,255,.6)",e.shadowOffsetY=a?0:.6,e.shadowBlur=a?2:.8,Bi(e,c,i+o/2,d+r*.72+h,r>=64?18.5:16,g)}else X(e,c,i+o/2,d+r/2-1+h,a?16:14,g,700);e.restore()}function s1(e,c,i,d,o=!1){let r=J.referenceMatch.stageMargin;ye(e,r,i,c-r*2,d,o?24:30,p.stage,o?4:6)}function w1(e,c,i,d,o,r,t){ye(e,c,i,d,o,o/2,p.surface,3);let a=[["\u5DF2\u8D70 ",p.ink],[""+r,p.primary],[" \u6B65 \xB7 \u8FD8\u5269 ",p.ink],[""+t,p.primary],[" \u5757",p.ink]],l=d<240?13:15;Me(e,l,700);let n=a.map(([y])=>e.measureText(y).width),h=n.reduce((y,s)=>y+s,0),g=c+(d-h)/2;a.forEach(([y,s],x)=>{X(e,y,g+n[x]/2,i+o/2-1,l,s,700),g+=n[x]})}var x1=wx.createCanvas(),ie=null,oc=0,re=null,ri=new Map,P=e=>Q.getElementById(e),j=Ce.getContext("2d"),R=375,G=812,W=60,me=24,oe=0,Ne=[],We=null,lc=!0,nc=0,fe=0,li="",ti=null,p1=0,ze=wx.createCanvas(),ai=ze.getContext("2d"),Cc={key:"",started:0},qe=!1,f1="",Oc=0,m1=0,ee=null,di=!1;function ke(){lc&&!nc&&(nc=requestAnimationFrame(or))}var Fc=wx.createCanvas(),Ue="",q1=0;Ri(()=>{Ue="",ke()});try{_.reducedMotion=wx.getStorageSync("number-swipe:reduced-motion")==="1"}catch{}var dc=we.playOrder.map(e=>we.levels.find(c=>c.id===e));function ni(){Ue="";let e=wx.getWindowInfo?wx.getWindowInfo():wx.getSystemInfoSync();R=e.windowWidth,G=e.windowHeight,W=Math.max(e.safeArea?.top||0,wx.getMenuButtonBoundingClientRect?.().bottom||0)+12,me=Math.max(16,G-(e.safeArea?.bottom||G)),H.devicePixelRatio=Math.min(e.pixelRatio||1,3),Ce.width=R*H.devicePixelRatio,Ce.height=G*H.devicePixelRatio,P("board").clientWidth=R,P("board").clientHeight=Math.max(140,G-W-me-218),H.handlers.resize?.(),ke()}function de(e,c,i,d=16,o=p.ink){X(j,e,c,i,d,o)}function oi(e,c,i=16){Me(j,i);let d=[];for(let o of String(e).split(` -`)){let r="";for(let t of o)r&&j.measureText(r+t).width>c&&(d.push(r),r=""),r+=t;d.push(r)}return d}function Y(e,c,i,d,o,r,{enabled:t=!0,primary:a=!1}={}){g1(j,e,c,i,d,o,{enabled:t,primary:a,pressed:!_.reducedMotion&&f1===e&&Date.now()e.children[1].children)}function u1(e,c,i){if(e){let d=c.level+":"+e.start+":"+e.end;Cc.key!==d&&(Cc={key:d,started:Date.now()});let o=P("board").clientHeight;ze.width!==Math.round(R*i)&&(ze.width=Math.round(R*i)),ze.height!==Math.round(o*i)&&(ze.height=Math.round(o*i)),ai.setTransform(i,0,0,i,0,0),ai.clearRect(0,0,R,o),Yi(ai,e,c.centers,c.unit,Date.now()-Cc.started,c.path),j.drawImage(ze,0,W+82,R,o),j.save(),j.translate(0,W+82),d1(j),j.restore()}else Cc={key:"",started:0}}function or(){if(nc=0,!lc)return;m1++;let e=H.devicePixelRatio;j.setTransform(e,0,0,e,0,0);let c=H.variantSnapshot();if(!c.cleared||c.screen!=="play"?ee=null:(!ee||ee.key!==c.level)&&(ee={key:c.level,started:Date.now(),requested:ue.completeRequestedAt}),ee&&c.soundEnabled&&ue.completeRequestedAt===ee.requested){let g=ue.completeStartedAt;ee.started=g??(Date.now()-ee.requested<500?null:ee.requested)}let i=jc(),d=!!i&&c.screen==="play"&&!c.cleared&&!qe&&P("rules-sheet").hidden&&!ii()&&Date.now()>=Oc,o=JSON.stringify([c.level,c.path,R,G,e,_.reducedMotion]);if(d&&Ue===o){q1++,j.drawImage(Fc,0,0,R,G),u1(i,c,e),_.reducedMotion||ke();return}let r=dc.find(g=>g.id===c.level),t=(r.features||[]).length>=3||c.cellViews?.length>=30;if(h1(j,R,G,!P("screen-play").className.includes("hidden")&&t),Ne=[],P("screen-play").className.includes("hidden")){de("\u6570\u5B57\u4E00\u7B14",R/2,W+18,30,p.primary),de("\u603B\u8FDB\u5EA6 "+P("progress").textContent,R/2,W+42,12,p.inkSecondary),Y("\u8BBE\u7F6E",R-72,W+4,56,34,()=>qe=!0);let g=dr(),y=we.chapters.length;di||(oe=Math.floor((c.displayOrder-1)/10)),di=!0,oe=Math.max(0,Math.min(y-1,oe));let s=we.chapters[oe],u=dc.filter(f=>f.chapter===s.id).map(f=>g[dc.indexOf(f)]),w=Si(R,G,W,me,u.length);de("\u7B2C "+(oe+1)+" \u7AE0 \xB7 "+s.title.replace(/^第.*?章[·\s]*/,""),R/2,W+66,18,p.primary),de(u.filter(f=>f.className.includes("cleared")).length+" / "+u.length+" \u5DF2\u901A\u8FC7",R/2,W+89,13,p.inkSecondary),u.forEach((f,B)=>{let b=Math.floor(B/w.columns),S=B%w.columns,m=u.length-b*w.columns,C=mf.click(),enabled:!0})}),Y("\u4E0A\u4E00\u9875",18,G-me-106,90,38,()=>oe=Math.max(0,oe-1),{enabled:oe>0}),de(oe+1+" / "+y,R/2,G-me-87),Y("\u4E0B\u4E00\u9875",R-108,G-me-106,90,38,()=>oe=Math.min(y-1,oe+1),{enabled:oege("btn-continue"),{primary:!0}),Y("\u53CD\u9988",R-98,G-me-56,80,42,lr)}else{di=!1,Y("\u9009\u5173",16,W,62,36,()=>ge("btn-back")),ye(j,R/2-60,W+2,120,32,16,p.coral,3),de("\u7B2C "+H.variantSnapshot().displayOrder+" \u5173",R/2,W+18,18,p.onPrimary),Y(P("btn-sound").textContent,R-94,W,78,36,()=>ge("btn-sound")),w1(j,84,W+43,R-100,31,c.path.length,r.cells.length-c.path.length),s1(j,R,W+82,P("board").clientHeight,t),a1(Date.now()),j.drawImage(Ze,0,W+82,R,P("board").clientHeight);let g=G-me-102,y=H.variantSnapshot().cleared,s=y?H.variantSnapshot().displayOrder===dc.length?"200 \u5173\u5168\u90E8\u5B8C\u6210\uFF01":"\u5B8C\u6210\uFF01\u51C6\u5907\u597D\u5C31\u8FDB\u5165\u4E0B\u4E00\u5173\u3002":P("status").className.includes("show")&&P("status").textContent?P("status").textContent:"\u6309\u4F4F\u6ED1\u52A8\u8FDE\u7EBF \xB7 \u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u56DE\u9000",x=oi(s,R-36,13);x.slice(0,2).forEach((w,f)=>de(f===1&&x.length>2?w.slice(0,-1)+"\u2026":w,R/2,g-12+f*22,13,y?p.success:p.inkSecondary));let u=G<700?54:70;if(y)Y(P("next").hidden?"\u8FD4\u56DE\u9009\u5173":"\u4E0B\u4E00\u5173 \u2192",16,g+22,R-32,u,()=>ge(P("next").hidden?"btn-back":"next"),{primary:!0});else{let w=(R-48)/3;Y("\u91CD\u5F00",16,g+22,w,u,()=>ge("restart")),Y("\u64A4\u9500",24+w,g+22,w,u,()=>ge("undo"),{enabled:!P("undo").disabled}),Y("\u6307\u8DEF",32+2*w,g+22,w,u,()=>ge("hint"),{primary:!0})}Y("\u89C4\u5219",16,W+43,56,30,()=>ge("btn-rules"))}if(ee&&ee.started!==null&&!_.reducedMotion&&!qe&&P("rules-sheet").hidden&&Ti(j,R,W+82,P("board").clientHeight,Date.now()-ee.started),!P("rules-sheet").hidden){j.fillStyle="rgba(67,56,47,.32)",j.fillRect(0,0,R,G);let g=W+12,y=Math.max(240,G-g-me-20);ye(j,16,g,R-32,y,24,p.surface,5),Ne=[],de("\u600E\u4E48\u73A9",R/2,g+28,23);let s=H.variantSnapshot().level+":"+P("rule-text").textContent;li!==s&&(li=s,fe=0,ie=null);let x=dc.find(T=>T.id===H.variantSnapshot().level),u=o1(x),w=[],f=Math.max(90,Math.min(220,y*.34)),B=Math.max(1,Math.floor((y-f-230)/23));for(let T of u){let L=T==="basic"&&!x.tutorial?` -\u683C\u5B50\u91CC\u7684\u6570\u5B57\u8868\u793A\u7B2C\u51E0\u6B65\u5230\u8FD9\u91CC\uFF0C\u4F8B\u5982\u6570\u5B57 5\uFF0C\u8981\u5728\u7B2C 5 \u6B65\u5230\u8FBE\u3002`+(x.geometry==="blocks"?"\u5927\u683C\u6216\u4E0D\u89C4\u5219\u683C\u5B50\uFF0C\u6574\u4E2A\u53EA\u7B97\u4E00\u6B65\u3002":"")+"\u8D70\u9519\u540E\u6CBF\u539F\u8DEF\u9000\u4E00\u6B65\uFF0C\u6216\u70B9\u64A4\u9500\uFF1B\u91CD\u5F00\u4F1A\u6E05\u7A7A\u8DEF\u7EBF\u3002":"",le=oi(Be[T]+L,R-72,15);for(let te=0;teq.centers[le]);j.beginPath(),j.moveTo(m.x+T[0],m.y+T[1]),j.lineTo(m.x+L[0],m.y+L[1]),j.setLineDash([5,5]),j.strokeStyle=p.danger,j.lineWidth=4,j.stroke(),j.setLineDash([]),de("\xD7",m.x+(T[0]+L[0])/2,m.y+(T[1]+L[1])/2,26,p.danger)}let k=re.route.at(-1),A=re.previous.at(-1),F=q.centers[k],O=q.centers[A]||F;if(F){let T=re.progress,L=m.x+O[0]+(F[0]-O[0])*T,le=m.y+O[1]+(F[1]-O[1])*T;O!==F&&(j.beginPath(),j.moveTo(m.x+O[0],m.y+O[1]),j.lineTo(L,le),j.strokeStyle=p.primary,j.lineWidth=6,j.lineCap="round",j.stroke()),j.beginPath(),j.arc(L,le,10,0,Math.PI*2),j.strokeStyle=p.hint,j.lineWidth=3,j.stroke()}oi(re.message,R-76,14).forEach((T,L)=>de(T,R/2,m.y+m.h+16+L*20,14,p.primary)),b.lines.forEach((T,L)=>de(T,R/2,m.y+m.h+65+L*23,15)),Y("\u91CD\u64AD",R/2-32,g+y-144,64,30,()=>{oc=Date.now()}),w.length>1&&(Y("\u4E0A\u4E00\u6BB5",38,g+y-102,80,30,()=>{fe--,ie=null},{enabled:fe>0}),de(fe+1+" / "+w.length,R/2,g+y-87,14),Y("\u4E0B\u4E00\u6BB5",R-118,g+y-102,80,30,()=>{fe++,ie=null},{enabled:fege("close-rules"),{primary:!0})}if(qe){j.fillStyle="rgba(67,56,47,.32)",j.fillRect(0,0,R,G),Ne=[];let g=Math.max(W,G/2-150);ye(j,24,g,R-48,280,24,p.surface,5),de("\u8BBE\u7F6E",R/2,g+32,24),Y(P("btn-sound").textContent,44,g+65,R-88,48,()=>ge("btn-sound")),Y("\u51CF\u5C11\u52A8\u6001\uFF1A"+(_.reducedMotion?"\u5F00":"\u5173"),44,g+125,R-88,48,()=>{_.reducedMotion=!_.reducedMotion,wx.setStorageSync("number-swipe:reduced-motion",_.reducedMotion?"1":"0")}),Y("\u5B8C\u6210",44,g+205,R-88,48,()=>qe=!1,{primary:!0})}d?(Fc.width=Ce.width,Fc.height=Ce.height,Fc.getContext("2d").drawImage(Ce,0,0),Ue=o):Ue="",!qe&&P("rules-sheet").hidden&&c.screen==="play"&&u1(i,c,e);let l=!qe&&P("rules-sheet").hidden&&c.screen==="play",n=!qe&&!P("rules-sheet").hidden&&!_.reducedMotion&&!!ie,h=l&&ee&&!_.reducedMotion&&(ee.started===null||Date.now()-ee.started{e.confirm&&(P("reasoning").value=e.content||"",ge("close-feedback"),wx.showModal({title:"\u53CD\u9988\u5DF2\u4FDD\u5B58",content:"\u662F\u5426\u5BFC\u51FA\u5168\u90E8\u8BD5\u73A9\u8BB0\u5F55\uFF1F",success:c=>{c.confirm&&ge("export")}}))}})}function b1(e){return{clientX:e.clientX,clientY:e.clientY-W-82,pointerId:e.identifier,pointerType:"touch",preventDefault(){}}}wx.onTouchStart(e=>{if(We!==null)return;let c=e.changedTouches[0];if(!c)return;let i=Ne.find(d=>c.clientX>=d.x&&c.clientX<=d.x+d.w&&c.clientY>=d.y&&c.clientY<=d.y+d.h);if(i){i.enabled&&(Ue="",f1=i.label,Oc=Date.now()+120,i.run(),ke());return}qe||!P("rules-sheet").hidden||P("screen-play").className.includes("hidden")||c.clientYW+82+P("board").clientHeight||(We=c.identifier,P("board").handlers.pointerdown?.(b1(c)),ke())});wx.onTouchMove(e=>{let c=e.touches.find(i=>i.identifier===We);c&&(P("board").handlers.pointermove?.(b1(c)),ke())});var v1=e=>{e.changedTouches.some(c=>c.identifier===We)&&(P("board").handlers.pointerup?.(),We=null)};wx.onTouchEnd(v1);wx.onTouchCancel(v1);wx.onHide(()=>{lc=!1,oc=Date.now(),_c(),cancelAnimationFrame(nc),nc=0,We=null,P("board").handlers.pointercancel?.(),H.handlers.pagehide?.()});wx.onShow(()=>{lc||(lc=!0,oc=Date.now(),qe=!1,t1(),ni(),ke())});wx.onAudioInterruptionBegin?.(_c);wx.onWindowResize?.(ni);GameGlobal.numberSwipeR2={snapshot:()=>({...H.variantSnapshot(),theme:"bright-classroom",release:hi,fonts:{...uc},renderedFrames:m1,hintBaseHits:q1,lessonBoardRenders:p1,selection:{chapter:oe+1,chapters:we.chapters.length},reducedMotion:_.reducedMotion,boardRect:{x:0,y:W+82,w:R,h:P("board").clientHeight},hint:jc(),audio:{...ue},rules:P("rule-text").textContent,lesson:!P("rules-sheet").hidden&&re?{key:ie?.key,finished:re.finished,duration:ie?.duration,path:[...re.route],message:re.message}:null}),buttons:()=>Ne.map(({label:e,x:c,y:i,w:d,h:o,enabled:r})=>({label:e,x:c,y:i,w:d,h:o,enabled:r}))};ni();ke();})(); +(()=>{var xi=class{constructor(i){this.api=i,this.enabled=!0,this.paused=!1;try{this.enabled=i.getStorageSync("number-swipe:music:v1")!=="off"}catch{}}scene(i){if(this.name=i,!(!this.enabled||this.paused||this.playing===i))try{if(this.audio||(this.audio=this.api.createInnerAudioContext(),this.audio.loop=!0,this.audio.volume=.16,this.audio.obeyMuteSwitch=!1,this.audio.onError?.(()=>{this.playing=null,this.failed=!0})),this.failed)return;this.audio.stop(),this.audio.src="music/"+i+".wav",this.audio.play(),this.playing=i}catch{this.failed=!0}}stop(){this.audio?.stop(),this.playing=null}suspend(){this.paused=!0,this.stop()}resume(){this.paused=!1,this.failed=!1,this.name&&this.scene(this.name)}toggle(){this.enabled=!this.enabled;try{this.api.setStorageSync("number-swipe:music:v1",this.enabled?"on":"off")}catch{}this.stop(),this.enabled&&this.resume()}snapshot(){return{enabled:this.enabled,playing:this.playing||null}}};var ui=class{reset(){this.key=null,this.particles=[]}frame(i,c,a){this.key!==i&&(this.key=i,this.particles=[],this.sequence=a.at(-1)?.sequence||0,this.last=c,this.spawnAt=c);let d=a.filter(r=>r.sequence>this.sequence&&(r.kind==="move"||r.kind==="checkpoint"));return this.sequence=a.at(-1)?.sequence||this.sequence,{manager:this,now:c,forward:d.length>0}}heads(i,c,a){let d=i.now,r=Math.max(0,Math.min(100,d-this.last));this.last=d;for(let t of this.particles)t.at+=t.rush?(c.total-t.origin)*r/180:65*r/1e3;if(i.forward){for(let t of this.particles)t.rush=!0,t.origin=t.at;this.spawnAt=d}return this.particles=this.particles.filter(t=>t.at=a-2)).slice(-8),d>=this.spawnAt&&(this.particles.push({at:a,rush:!1}),this.spawnAt=d+650),this.particles.map(t=>t.at)}};var W={moveMs:120,moveMinScale:.985,bridgeMs:100,undoMs:100,checkpointMs:260,checkpointMaxScale:1.035,ribbonMs:1500,maxRibbons:2,hapticGapMs:70,completeHapticDelayMs:90,audioGapMs:50,completeWaitMs:120,errorGapMs:180},Hi={move:1,undo:0,error:0,checkpoint:2,complete:3};var bc="number-swipe:haptics:v1",pi=class{constructor(i,c,{now:a=()=>Date.now(),later:d=setTimeout,cancel:r=clearTimeout,preview:t=!1}={}){Object.assign(this,{api:i,storage:c,now:a,later:d,cancel:r,preview:t}),this.enabled=!0,this.last=-1/0,this.generation=0,this.timers=new Set,this.graded=!0;try{this.enabled=c.getItem(bc)!=="off"}catch{}}setEnabled(i){this.enabled=i;try{this.storage.setItem(bc,i?"on":"off")}catch{}i||this.stop()}stop(){this.generation++;for(let i of this.timers)this.cancel(i);this.timers.clear()}pulse(i,c=!1){if(!this.enabled||this.preview||typeof this.api?.vibrateShort!="function"||!c&&this.now()-this.last{if(!(a!==this.generation||d!==this.request||this.now()-r>W.hapticGapMs||!this.enabled)){this.graded=!1;try{this.api.vibrateShort({fail(){}})}catch{}}};try{this.api.vibrateShort(this.graded?{type:i,fail:t}:{fail(){}})}catch{this.graded&&t()}}play(i){if(["move","checkpoint","complete"].includes(i)&&(this.pulse(i==="move"?"light":"medium",i!=="move"),i==="complete"&&this.enabled&&this.graded&&!this.preview&&typeof this.api?.vibrateShort=="function")){let c=this.generation,a=this.later(()=>{this.timers.delete(a),c===this.generation&&this.graded&&this.pulse("light",!0)},W.completeHapticDelayMs);this.timers.add(a)}}};var _i=class{constructor({now:i=()=>Date.now()}={}){this.now=i,this.sequence=0,this.events=[],this.visuals=[],this.depth=0,this.pending=null,this.enhanced=!0,this.epoch=0}attach(i,c,a){this.audio=i,this.enhanced=c.__feedbackMode!=="original",i.variant=this.enhanced?"enhanced":"original",this.haptics=new pi(c,a,{preview:!!c.__feedbackPreview})}begin(){this.depth||(this.batchErrors=new Map),this.depth++}end(){this.depth>0&&this.depth--,this.depth||this.flush()}emit(i,c,a,d,r={}){let t=JSON.stringify([c.id||c,a,d]);if(i==="error"&&this.depth&&this.batchErrors?.has(t))return this.batchErrors.get(t);let o={sequence:++this.sequence,kind:i,level:c.id||c,cell:a,step:d,time:this.now(),epoch:this.epoch,...r};return i==="error"&&this.depth&&this.batchErrors.set(t,o),this.events.push(o),this.events.length>256&&this.events.shift(),i!=="complete"&&this.completion&&(this.completion=null,this.haptics?.stop()),i==="complete"&&(this.visuals=[],this.completion={event:o,start:null,locked:!1}),this.visuals.push(o),this.visuals=this.visuals.filter(l=>l.level===o.level&&o.time-l.time=(Hi[this.pending.kind]||0))&&(this.pending=o),this.depth||this.flush(),o}flush(){let i=this.pending;this.pending=null,i&&(this.audio?.play(i.kind==="checkpoint"?"checkpoint":i.kind,0,i.step),this.enhanced&&(i.kind==="undo"||i.kind==="error"?this.haptics?.stop():this.haptics?.play(i.kind)))}reset(){this.epoch++,this.pending=null,this.visuals=[],this.completion=null,this.audio?.stop(),this.haptics?.stop()}completionStart(i,c=!0){let a=this.completion;return a?(a.locked||(c&&i!==null&&i!==void 0&&i>=a.event.time&&i<=a.event.time+W.completeWaitMs?(a.start=i,a.locked=!0):(!c||this.now()-a.event.time>=W.completeWaitMs)&&(a.start=a.event.time,a.locked=!0)),a.start):null}active(i,c=this.now()){return this.visuals.filter(a=>a.level===(i.id||i)&&c>=a.time&&c-a.time({...i})),hapticsEnabled:this.haptics?.enabled??!0,enhanced:this.enhanced,epoch:this.epoch}}},N=new _i;var vc={channel:"main",version:"2026-10-23-main-layered-feedback",date:"2026-10-23",baseVersion:"2026-10-22-resume-chapter-lessons",baseMainSHA256:"bb35d5edf8d96eb3253c78052d219b32f9a4241efd9971537f6c9c8896188125",package:"NumberSwipe-main-20261023.zip",promotedFrom:"2026-10-22-layered-feedback-music-flow"};var fi={meta:{name:"NumberSwipe \u660E\u4EAE\u6559\u5177\u5BA4",version:"1.0-proposal",date:"2026-10-21",status:"Design specification; not applied to runtime",unit:"logical layout unit, not physical pixel",reference:[375,812]},color:{background:"#FFE69A",backgroundBottom:"#FFDE79",pattern:"#E8BE54",stage:"#FFF6DF",surface:"#FFFBF2",surfaceMuted:"#F1E6D0",cellFace:"#FFF8EA",cellDepth:"#D8C4A0",cellBoundary:"#8A7660",cellBevel:"#FFFFFF",ink:"#43382F",inkSecondary:"#71604F",primary:"#6552D9",primaryPressed:"#5140B7",primaryDepth:"#49379E",primarySoft:"#ECE7FF",primaryEdge:"#ADA0F1",onPrimary:"#FFFFFF",coral:"#F57950",coralInk:"#4F2418",coralSoft:"#FFE0CF",danger:"#B93B46",dangerDepth:"#8D2934",dangerSoft:"#FBE4E5",dangerInk:"#862735",hint:"#8B5E00",hintSoft:"#FFF0B8",hintCore:"#FFFFFF",hintCasing:"#43382F",hintRibbon:"#F49B75",hintRibbonDepth:"#C96E48",hintRibbonLight:"#FFF5DD",hintSpark:"#FFFDF0",success:"#2E6B52",successSoft:"#DEEFDC",categoryBlueFace:"#CEE4FF",categoryBlueInk:"#245A92",categoryOrangeFace:"#FFE0B2",categoryOrangeInk:"#8A470E",wallInk:"#43382F",wallStripe:"#F7C74D",doorClosed:"#8B4B29",doorOpen:"#2E6B52",disabledFace:"#E9E1D3",disabledInk:"#7A7064",focus:"#5140B7",overlay:"#43382F"},referenceMatch:{version:"2-reference-cushion",authority:"User-supplied reference image; overrides earlier flat production proposal",color:{background:"#FFE383",backgroundBottom:"#FFDA68",pattern:"#EFBF4D",stage:"#FAEED6",surface:"#FBEFD9",cellFace:"#F9EDD5",cellDepth:"#CDB590",ink:"#51452E",inkSecondary:"#796644",primary:"#8178F4",primaryPressed:"#7369DF",primaryDepth:"#5750BA",primaryEdge:"#B7AAFF",coral:"#FF7946"},pitchMax:104,bridgeRatio:.25,cellDepthRatio:.085,cellDepthMax:7,bevelRatio:.085,stageMargin:12,buttonRadiusRatio:.32,conditionFrames:!1,endpointCorners:!1,categoryVisitedFrames:!1},font:{numeric:"Nunito",cjk:"Noto Sans SC",fallback:"system-ui, -apple-system, Segoe UI, Microsoft YaHei, sans-serif",numericWeight:800,bodyWeight:500,labelWeight:600,headingWeight:700},type:{display:{size:32,line:40,weight:800},pageTitle:{size:24,line:32,weight:700},section:{size:18,line:26,weight:700},body:{size:16,line:24,weight:500},button:{size:16,line:22,weight:700},label:{size:14,line:20,weight:600},caption:{size:13,line:18,weight:500},micro:{size:12,line:16,weight:500}},spacing:[4,8,12,16,20,24,32,40,48],layout:{referenceWidth:375,referenceHeight:812,margin:20,compactMargin:16,topbarHeight:48,headerHeight:40,statusHeight:28,playfieldHeight:464,feedbackHeight:40,actionHeight:64,actionGap:10,tapTarget:48,pitchPreferred:56,pitchTargetMin:44,pitchReviewBelow:44,tileInsetRatio:.045,bridgeThicknessRatio:.42,stagePadding:16},radius:{small:8,label:12,button:18,stage:28,card:24,sheet:28,dialog:24,cellRatio:.18,cellMin:6,cellMax:12,concaveMaxRatio:.06,hexMaxRatio:.11},material:{light:"upper-left",cellDepthRatio:.055,cellDepthMin:2,cellDepthMax:4,pressedDepth:1,cellBoundary:1.25,bevelWidth:1,gradientChannelDeltaMax:6,cellShadow:{x:0,y:3,blur:5,alpha:.1},stageShadow:{x:0,y:4,blur:10,alpha:.08},buttonShadow:{x:0,y:3,blur:5,alpha:.12},dialogShadow:{x:0,y:12,blur:28,alpha:.16}},motionMs:{fast:120,base:200,slow:320,hold:500,buttonPress:80,buttonRelease:120,step:140,bridge:120,undo:100,conflict:200,hintAttention:2400,hintSegmentCycleMin:1200,door:160,spinner:160,clearSweep:320,clearHold:500,entryStagger:12,entryStaggerCap:120},motion:{easeOut:[.22,1,.36,1],stepPeak:1.015,stepPressed:.985,buttonPressed:.98,conflictTravelMax:1.5,spinnerDegrees:120,ambientAnimation:!1,reducedMotionHint:"static dashed path; keep all hint information"},contrastPairs:[{name:"\u6807\u9898/\u9EC4\u5E95",fg:"ink",bg:"background",minimum:4.5},{name:"\u8F85\u52A9\u6587\u5B57/\u9EC4\u5E95",fg:"inkSecondary",bg:"background",minimum:4.5},{name:"\u6B63\u6587/\u821E\u53F0",fg:"ink",bg:"stage",minimum:4.5},{name:"\u8F85\u52A9\u6587\u5B57/\u821E\u53F0",fg:"inkSecondary",bg:"stage",minimum:4.5},{name:"\u6570\u5B57/\u672A\u8D70\u5757",fg:"ink",bg:"cellFace",minimum:4.5},{name:"\u767D\u6570\u5B57/\u8DEF\u5F84",fg:"onPrimary",bg:"primary",minimum:4.5},{name:"\u767D\u5B57/\u6309\u538B\u7D2B",fg:"onPrimary",bg:"primaryPressed",minimum:4.5},{name:"\u767D\u6570\u5B57/\u9519\u8BEF",fg:"onPrimary",bg:"danger",minimum:4.5},{name:"\u9519\u8BEF\u8BF4\u660E/\u6DE1\u7EA2",fg:"dangerInk",bg:"dangerSoft",minimum:4.5},{name:"\u73CA\u745A\u6807\u7B7E\u6587\u5B57",fg:"coralInk",bg:"coral",minimum:4.5},{name:"\u6DE1\u7D2B\u9009\u4E2D\u6587\u5B57",fg:"primaryPressed",bg:"primarySoft",minimum:4.5},{name:"\u63D0\u793A\u6587\u5B57/\u6DE1\u9EC4",fg:"hint",bg:"hintSoft",minimum:4.5},{name:"\u6210\u529F\u6587\u5B57/\u6DE1\u7EFF",fg:"success",bg:"successSoft",minimum:4.5},{name:"\u84DD\u7C7B\u522B\u6807\u8BB0",fg:"categoryBlueInk",bg:"categoryBlueFace",minimum:4.5},{name:"\u6A59\u7C7B\u522B\u6807\u8BB0",fg:"categoryOrangeInk",bg:"categoryOrangeFace",minimum:4.5},{name:"\u6570\u5B57/\u84DD\u7C7B\u522B\u9762",fg:"ink",bg:"categoryBlueFace",minimum:4.5},{name:"\u6570\u5B57/\u6A59\u7C7B\u522B\u9762",fg:"ink",bg:"categoryOrangeFace",minimum:4.5},{name:"\u683C\u8FB9/\u683C\u9762",fg:"cellBoundary",bg:"cellFace",minimum:3},{name:"\u683C\u8FB9/\u821E\u53F0",fg:"cellBoundary",bg:"stage",minimum:3},{name:"\u8DEF\u5F84/\u672A\u8D70\u683C",fg:"primary",bg:"cellFace",minimum:3},{name:"\u63D0\u793A\u63CF\u8FB9/\u821E\u53F0",fg:"hintCasing",bg:"stage",minimum:3},{name:"\u63D0\u793A\u767D\u82AF/\u63CF\u8FB9",fg:"hintCore",bg:"hintCasing",minimum:3},{name:"\u5899/\u9EC4\u8272\u6761\u7EB9",fg:"wallInk",bg:"wallStripe",minimum:3},{name:"\u5899/\u821E\u53F0",fg:"wallInk",bg:"stage",minimum:3},{name:"\u5F00\u95E8\u6807\u8BB0/\u821E\u53F0",fg:"doorOpen",bg:"stage",minimum:3},{name:"\u5173\u95E8\u6807\u8BB0/\u821E\u53F0",fg:"doorClosed",bg:"stage",minimum:3},{name:"\u7126\u70B9/\u9EC4\u5E95",fg:"focus",bg:"background",minimum:3},{name:"\u767D\u5B57/\u73CA\u745A\uFF08\u4EC5\u8BCA\u65AD\uFF0C\u4E0D\u91C7\u7528\uFF09",fg:"onPrimary",bg:"coral",minimum:null},{name:"\u683C\u9762/\u821E\u53F0\uFF08\u4EC5\u8BCA\u65AD\uFF0C\u683C\u8FB9\u627F\u62C5\u8BC6\u522B\uFF09",fg:"cellFace",bg:"stage",minimum:null},{name:"\u84DD\u7C7B\u522B\u9762/\u6A59\u7C7B\u522B\u9762\uFF08\u4EC5\u8BCA\u65AD\uFF0C\u53E6\u914D\u5F62\u72B6\uFF09",fg:"categoryBlueFace",bg:"categoryOrangeFace",minimum:null}]};function Oe(e){return e.shape?e.shape.map(([i,c])=>[e.x+i,e.y+c]):Array.from({length:(e.w||1)*(e.h||1)},(i,c)=>[e.x+c%(e.w||1),e.y+Math.floor(c/(e.w||1))])}function Je(e){let i=e.cells,c=new Map(i.map((t,o)=>[t.id,o]));if(c.size!==i.length)throw Error("\u91CD\u590D\u683C id");let a=i.map(()=>[]),d=new Map;if(e.geometry!=="hex")for(let t=0;tn===y&&s===h)}else l=Oe(i[t]).some(([y,h])=>[[1,0],[-1,0],[0,1],[0,-1]].some(([n,s])=>d.get(y+n+","+(h+s))===o));l&&(a[t].push(o),a[o].push(t))}let r=new Map;for(let t of i)if(t.clue!==void 0){if(!Number.isInteger(t.clue)||t.clue<1||t.clue>i.length||r.has(t.clue))throw Error("\u6570\u5B57\u8303\u56F4\u6216\u91CD\u590D");r.set(t.clue,c.get(t.id))}return{cells:i,ids:c,adj:a,clues:r}}function Bc(e){let i=[];for(let c=0;c<(e.relations||[]).length;c++)i.push({key:"relation:"+c,kind:"relation",...e.relations[c]});for(let c=0;c<(e.orderChains||[]).length;c++)for(let a=0;ao.id===i),d=e.cells.find(o=>o.id===c),r=new Set(Oe(d).map(o=>o.join(","))),t=new Set;for(let[o,l]of Oe(a))for(let[y,h,n]of[[-1,0,"l"],[1,0,"r"],[0,-1,"u"],[0,1,"d"]])r.has(o+y+","+(l+h))&&t.add(n);return t.size===1?[...t][0]:null}function W1(e,i,c){if(c===0||c===i.length-1)return null;let a=Ke(e,i[c],i[c-1]),d=Ke(e,i[c],i[c+1]);return a&&d?[a,d].sort().join(""):null}function De(e,i){for(let c=1;c[o,l+1])),t=[];if(!d){for(let o of e.cells)if(o.clue!==void 0){let l=r.get(o.id);(l!==void 0&&l!==o.clue||i.length>=o.clue&&i[o.clue-1]!==o.id)&&t.push({key:"clue:"+o.id,cells:[o.id,i[o.clue-1]].filter(Boolean),message:"\u56FA\u5B9A\u6570\u5B57\u6B65\u53F7\u4E0D\u7B26"})}}for(let o of Bc(e)){if(o.key===c)continue;let l=!1,y=[];if(o.kind==="relation"){let h=r.get(o.from),n=r.get(o.to);y=[o.from,o.to],l=n!==void 0&&(h===void 0||n-h!==o.delta)||h!==void 0&&n===void 0&&i.length>=h+o.delta}else if(o.kind==="order")y=[o.from,o.to],l=r.has(o.to)&&(!r.has(o.from)||r.get(o.from)>r.get(o.to));else if(o.kind==="window"){y=[o.cell];let h=r.get(o.cell);l=h!==void 0?ho.max:i.length>=o.max}else if(o.kind==="parity"){y=[o.cell];let h=r.get(o.cell);l=h!==void 0&&h%2===1!=(o.value==="odd")}else if(o.kind==="direction"){y=[o.cell];let h=r.get(o.cell);l=h===1||h!==void 0&&hg.id===i[h-1]),s=e.cells.find(g=>g.id===i[h]);n.category===s.category&&(l=!0,y.push(n.id,s.id))}else if(o.kind==="wall"||o.kind==="door")for(let h=1;hh)&&(l=!0,y=o.edge)}}l&&t.push({key:o.key,cells:y,message:o.kind==="relation"?"\u76F8\u5BF9\u6B65\u5DEE\u4E0D\u7B26":o.kind==="order"?"\u6807\u8BB0\u6B21\u5E8F\u4E0D\u7B26":o.kind==="window"?"\u5230\u8FBE\u7A97\u53E3\u4E0D\u7B26":o.kind==="parity"?"\u8BE5\u683C\u6B65\u53F7\u5947\u5076\u4E0D\u7B26":o.kind==="direction"?"\u8FDB\u51FA\u65B9\u5411\u4E0D\u7B26":o.kind==="wall"?"\u6C38\u4E45\u5899\u4E0D\u80FD\u7A7F\u8FC7":o.kind==="door"?"\u8FD9\u4E00\u6B65\u95E8\u662F\u5173\u95ED\u7684":o.kind==="gate"?"\u5F00\u5173\u5C1A\u672A\u6253\u5F00\u6B64\u95E8":"\u84DD\u6A59\u989C\u8272\u5FC5\u987B\u4EA4\u66FF"})}return t}function mi(e,i,c){let a=Je(e);if(i.includes(c)||!a.ids.has(c))return!1;if(!i.length)return!a.clues.has(1)||a.cells[a.clues.get(1)].id===c;let d=i.at(-1);if(kc(e,i,d,c)||!a.adj[a.ids.get(d)].includes(a.ids.get(c))||(e.features||[]).includes("alternation")&&a.cells[a.ids.get(d)].category===a.cells[a.ids.get(c)].category)return!1;for(let r of e.gates||[])if(r.edge.includes(d)&&r.edge.includes(c)&&!i.includes(r.switchCell))return!1;return!0}function qi(e,{limit:i=2,omit:c=null,ignoreClues:a=!1,prune:d=!0,nodeLimit:r=1/0}={}){let t=Je(e),o=t.cells.length,l=[],y=[],h=new Set,n=0,s=Bc(e).filter(q=>q.key!==c),g=s.some(q=>q.kind==="alternation"),w=t.adj.map((q,B)=>q.filter(b=>(!g||t.cells[B].category!==t.cells[b].category)&&!s.some(D=>D.kind==="wall"&&D.edge.includes(t.cells[B].id)&&D.edge.includes(t.cells[b].id)))),x=a?new Map:t.clues;function u(q){let B=new Set([q]),b=[q];for(let D=0;Dr)throw Error("\u6C42\u89E3\u8282\u70B9\u9884\u7B97\u8017\u5C3D\uFF0C\u4E0D\u80FD\u89C6\u4E3A\u552F\u4E00");h.add(q),y.push(t.cells[q].id);let B=y.length;if(!se(e,y,{omit:c,ignoreClues:a}).length){if(B===o)l.push([...y]);else if(!d||u(q)){let b=x.get(B+1),D=w[q].filter(M=>!h.has(M)&&(b===void 0||M===b));D.sort((M,f)=>w[M].filter(T=>!h.has(T)).length-w[f].filter(T=>!h.has(T)).length);for(let M of D){if(!a&&t.cells[M].clue!==void 0&&t.cells[M].clue!==B+1)continue;let f=kc(e,y,t.cells[q].id,t.cells[M].id,{omit:c});for(let T of s)T.kind==="gate"&&T.edge.includes(t.cells[q].id)&&T.edge.includes(t.cells[M].id)&&!y.includes(T.switchCell)&&(f=!0);if(f||m(M),l.length>=i)break}}}y.pop(),h.delete(q)}let k=x.has(1)?[x.get(1)]:t.cells.map((q,B)=>B);for(let q of k)if(!(!a&&t.cells[q].clue!==void 0&&t.cells[q].clue!==1)&&(m(q),l.length>=i))break;return l}var bi=e=>e.map(i=>Math.round(i*1e4)).join(","),Ye=(e,i,c)=>(i[0]-e[0])*(c[1]-i[1])-(i[1]-e[1])*(c[0]-i[0]),L=(e,i)=>Math.hypot(e[0]-i[0],e[1]-i[1]),Gi=(e,i)=>[(e[0]+i[0])/2,(e[1]+i[1])/2];function L1(e){let i=new Set(e.map(r=>r.join(","))),c=[];for(let[r,t]of e)for(let[o,l,y,h]of[[0,-1,[r,t],[r+1,t]],[1,0,[r+1,t],[r+1,t+1]],[0,1,[r+1,t+1],[r,t+1]],[-1,0,[r,t+1],[r,t]]])i.has([r+o,t+l].join(","))||c.push({a:y,b:h,used:!1});let a=new Map;for(let r of c){let t=bi(r.a);a.has(t)||a.set(t,[]),a.get(t).push(r)}let d=[];for(let r of c){if(r.used)continue;let t=[],o=r;do{if(o.used=!0,t.push(o.a),bi(o.b)===bi(r.a))break;let l=(a.get(bi(o.b))||[]).filter(y=>!y.used);if(l.sort((y,h)=>Ye(o.a,o.b,h.b)-Ye(o.a,o.b,y.b)),o=l[0],!o)throw Error("Open block boundary");if(t.length>c.length)throw Error("Invalid block boundary")}while(!0);d.push(t.filter((l,y)=>Math.abs(Ye(t[(y+t.length-1)%t.length],l,t[(y+1)%t.length]))>1e-8))}return d}function H1(e,i){return e.map((c,a)=>{let d=e[(a+e.length-1)%e.length],r=e[(a+1)%e.length],t=L(d,c),o=L(c,r),l=[-(c[1]-d[1])/t,(c[0]-d[0])/t],y=[-(r[1]-c[1])/o,(r[0]-c[0])/o],h=1+l[0]*y[0]+l[1]*y[1];return[c[0]+i*(l[0]+y[0])/h,c[1]+i*(l[1]+y[1])/h]})}function Se(e,i,c,a=0){e.beginPath();for(let d of i){for(let r=0;r0?c:c/3,L(t,o)*.35,L(o,l)*.35),h=g=>{let w=L(g,o);return[o[0]+(g[0]-o[0])*y/w,o[1]+(g[1]-o[1])*y/w+a]},n=h(t),s=h(l);r===0?e.moveTo(...n):e.lineTo(...n),e.quadraticCurveTo(o[0],o[1]+a,...s)}e.closePath()}}function _1(e,i){let c=[];for(let d of e.parts)for(let r of i.parts)for(let t=0;t.01||Math.abs(Ye(t,o,y))>.01)){if(L(o,l)<.01){c[d]=[t,y],c.splice(r,1),a=!0;break e}if(L(y,t)<.01){c[d]=[l,o],c.splice(r,1),a=!0;break e}}}}return c.sort((d,r)=>L(...r)-L(...d)||d[0][0]-r[0][0]||d[0][1]-r[0][1])}function Sc(e,i,c){let a=e.geometry==="hex",d=[],r=[];for(let f of e.cells){let T,A,F,O;a?(A=[1.5*f.r,Math.sqrt(3)*(f.q+f.r/2)],F=[Array.from({length:6},(P,I)=>[A[0]+Math.cos(I*Math.PI/3),A[1]+Math.sin(I*Math.PI/3)])],T=F):(O=Oe(f),T=O.map(([P,I])=>[[P,I],[P+1,I],[P+1,I+1],[P,I+1]]),F=L1(O),A=[O.reduce((P,I)=>P+I[0]+.5,0)/O.length,O.reduce((P,I)=>P+I[1]+.5,0)/O.length],f.shape&&(A=O.map(([P,I])=>[P+.5,I+.5]).sort((P,I)=>L(P,A)-L(I,A)||P[1]-I[1]||P[0]-I[0])[0])),d.push({cell:f,parts:T,rings:F,center:A,occupied:O}),r.push(...T.flat())}let t=Math.min(...r.map(f=>f[0])),o=Math.max(...r.map(f=>f[0])),l=Math.min(...r.map(f=>f[1])),y=Math.max(...r.map(f=>f[1])),h=!a&&o-t>=7||(e.features||[]).length>=3,n=J.referenceMatch.stageMargin,s=h?8:16,g=J.referenceMatch.pitchMax*Math.min(1,i/375),w=Math.min(g/(a?Math.sqrt(3):1),(i-2*(n+s))/(o-t),(c-2*(s+8))/(y-l)),x=(i-(o-t)*w)/2-t*w,u=(c-(y-l)*w)/2-l*w-2,m=([f,T])=>[x+f*w,u+T*w],k=w*(a?Math.sqrt(3):1),q=k*J.layout.tileInsetRatio,B=a?k*J.radius.hexMaxRatio:U(J.radius.cellMin,k*J.radius.cellRatio,J.radius.cellMax),b=d.map(f=>{let A=!a&&!f.cell.direction&&f.occupied.length>1?[...f.occupied].sort((O,P)=>O[1]-P[1]||O[0]-P[0])[0]:null,F=m(A?[A[0]+.5,A[1]+.5]:f.center);return{...f,parts:f.parts.map(O=>O.map(m)),rings:f.rings.map(O=>H1(O.map(m),q)),center:m(f.center),labelAnchor:F,radius:B}}),D=new Map(b.map(f=>[f.cell.id,f])),M=new Map;for(let f=0;f[f.cell.id,f.center])),polygons:b.flatMap(f=>f.parts.map(T=>({id:f.cell.id,p:T}))),transform:m}}function vi(e,i,c){return e.edges.get([i,c].sort().join("|"))}function Ki(e,i,c,a){if(!e.cell.shape)return[i,c];let d=e.occupied.map(([n,s])=>a.transform([n+.5,s+.5])),r=n=>d.reduce((s,g,w)=>L(g,n)Math.max(i,Math.min(c,e)),Ic=e=>[1,3,5].map(i=>parseInt(e.slice(i,i+2),16));function Dc(e,i,c,a,d){for(e.set(i,{value:c,bytes:a}),d==="field"?Ji+=a:Yi+=a;(d==="field"?Ji:Yi)>(d==="field"?G1:K1)&&e.size>1;){let r=e.keys().next().value,t=e.get(r);e.delete(r),d==="field"?Ji-=t.bytes:Yi-=t.bytes}return c}function Rc(e,i){let c=e.get(i);return c?(e.delete(i),e.set(i,c),c.value):null}function J1(e,i){return e.map(c=>{let a=[];for(let d=0;d0?i:i/3,l*.35,y*.35),s=[t[0]+(r[0]-t[0])*n/l,t[1]+(r[1]-t[1])*n/l],g=[t[0]+(o[0]-t[0])*n/y,t[1]+(o[1]-t[1])*n/y];for(let w=0;w<=6;w++){let x=w/6,u=1-x;a.push([u*u*s[0]+2*u*x*t[0]+x*x*g[0],u*u*s[1]+2*u*x*t[1]+x*x*g[1]])}}return a})}function Y1(e,i,c,a,d,r,t){let o=Rc(Mc,t);if(o)return o;let l=Math.ceil(c*d)+2,y=Math.ceil(a*d)+2,h=new Float32Array(l*y*3),n=e.length===1&&e[0].length===4&&e[0].every((g,w)=>{let x=e[0][(w+1)%4];return Math.abs(g[0]-x[0])<.001||Math.abs(g[1]-x[1])<.001}),s=n?[]:J1(e,i).flatMap(g=>g.map((w,x)=>{let u=g[(x+1)%g.length],m=u[0]-w[0],k=u[1]-w[1];return{a:w,b:u,dx:m,dy:k,len:m*m+k*k}}));for(let g=0;g0&&O>0?(k=-Math.sign(T)*P/_,q=-Math.sign(A)*I/_):F>O?(k=-Math.sign(T),q=0):(k=0,q=-Math.sign(A))}else{let T=1/0,A=0,F=0,O=!1;for(let I of s){I.a[1]>u!=I.b[1]>u&&xf[0])),m=Math.min(...x.map(f=>f[1])),k=Math.max(...x.map(f=>f[0]))-u,q=Math.max(...x.map(f=>f[1]))-m,B=i.map(f=>f.map(([T,A])=>[T-u,A-m])),b=JSON.stringify([B.map(f=>f.map(T=>T.map(A=>Math.round(A*100)/100))),Math.round(c*100),l,t]),D=b+"|"+[a,d,r,o,y,h,n,s,g,w].join("|"),M=Rc(Tc,D);if(!M){if(typeof wx>"u"||!wx.createCanvas)return!1;let f=wx.createCanvas(),T=f.getContext("2d");if(!T.createImageData?.(1,1)?.data)return!1;let F=l,O=Math.ceil(Math.max(o,y)*2+Math.max(r,s)+2);f.width=Math.ceil((k+O*2)*F),f.height=Math.ceil((q+O*2+r)*F),T.setTransform(F,0,0,F,O*F,O*F);let P=Y1(B,c,k,q,F,t,b),I=T.createImageData(P.iw,P.ih),_=Ic(a),he=g?Ic(g):[0,0,0];for(let ri=0,wi=0;ri>>8)%17-8)*.055;for(let Ee=0;Ee<3;Ee++)I.data[wi+Ee]=ze((_[Ee]+(he[Ee]-_[Ee])*O1+(255-_[Ee])*E1+P1)/255)*255;I.data[wi+3]=qc*255}let oe=wx.createCanvas();oe.width=P.iw,oe.height=P.ih,oe.getContext("2d").putImageData(I,0,0);let ci=()=>T.drawImage(oe,-1/F,-1/F,P.iw/F,P.ih/F);y>0&&(T.shadowColor=h,T.shadowBlur=y*F,T.shadowOffsetY=0,ci()),T.shadowColor=n,T.shadowBlur=o*F,T.shadowOffsetY=s*F,ci(),T.shadowBlur=0,T.shadowOffsetY=0,T.shadowColor="rgba(0,0,0,0)",r>0&&(Se(T,B,c,r),T.fillStyle=d,T.fill()),T.drawImage(oe,-1/F,-1/F,P.iw/F,P.ih/F),M={canvas:f,pad:O,res:F},Dc(Tc,D,M,f.width*f.height*4,"texture")}return e.drawImage(M.canvas,u-M.pad,m-M.pad,M.canvas.width/M.res,M.canvas.height/M.res),!0}function jc(e,i,c,a,d,r,t){return zi(e,[[[i,c],[i+a,c],[i+a,c+d],[i,c+d]]],r,t)}var J=fi,p={...fi.color,...fi.referenceMatch.color},Cc='"Microsoft YaHei", sans-serif',Bi={};function ti(e){try{let i=typeof wx<"u"&&wx.loadFont?.("fonts/"+e+".ttf");return Bi[e]=i?"loaded":"fallback",i?'"'+i.replace(/"/g,"")+'", '+Cc:null}catch{return Bi[e]="fallback",null}}var ki={500:ti("NumberSwipeSans500"),600:ti("NumberSwipeSans600"),700:ti("NumberSwipeSans700")},Ui=ki[600]||Cc,z1=ti("NumberSwipeDigits800")||Ui,U1=ti("NumberSwipePlayful")||ki[700]||Ui,U=(e,i,c)=>Math.max(e,Math.min(i,c)),Ue=new Map;function Vi(e,i,c){let a=e.font+"|"+i;if(Ue.has(a))return Ue.get(a);let d=e.measureText(i);if(!Number.isFinite(d.actualBoundingBoxAscent)||!Number.isFinite(d.actualBoundingBoxLeft))try{if(typeof wx<"u"&&wx.createCanvas){let r=wx.createCanvas(),t=2,o=Math.ceil(c),l=o+c;r.width=Math.ceil((d.width+2*o)*t),r.height=Math.ceil(c*3*t);let y=r.getContext("2d");y.setTransform(t,0,0,t,0,0),y.font=e.font,y.textAlign="left",y.textBaseline="alphabetic",y.fillStyle="#000",y.fillText(i,o,l);let h=y.getImageData(0,0,r.width,r.height);if(h?.data){let n=r.width,s=-1,g=r.height,w=-1;for(let x=0;x8&&(n=Math.min(n,u),s=Math.max(s,u),g=Math.min(g,x),w=Math.max(w,x));s>=n&&(d={width:d.width,actualBoundingBoxLeft:o-n/t,actualBoundingBoxRight:(s+1)/t-o,actualBoundingBoxAscent:l-g/t,actualBoundingBoxDescent:(w+1)/t-l})}}}catch{}return Ue.set(a,d),Ue.size>512&&Ue.delete(Ue.keys().next().value),d}function xe(e,i,c,a,d,r){r=Math.max(0,Math.min(r,a/2,d/2)),e.beginPath(),e.moveTo(i+r,c),e.lineTo(i+a-r,c),e.quadraticCurveTo(i+a,c,i+a,c+r),e.lineTo(i+a,c+d-r),e.quadraticCurveTo(i+a,c+d,i+a-r,c+d),e.lineTo(i+r,c+d),e.quadraticCurveTo(i,c+d,i,c+d-r),e.lineTo(i,c+r),e.quadraticCurveTo(i,c,i+r,c),e.closePath()}function Re(e,i=16,c=600,a=!1){let d=a?z1:ki[c>=700?700:c<=500?500:600]||Ui;e.font=`${a||ki[c>=700?700:c<=500?500:600]?"normal":c} ${i}px ${d}`}function ce(e,i,c,a,d=16,r=p.ink,t=600,o=!1){Re(e,d,t,o),Fc(e,i,c,a,r)}function Fc(e,i,c,a,d){e.fillStyle=d,e.textAlign="left",e.textBaseline="alphabetic";let r=String(i),t=Vi(e,r,Number(/([\d.]+)px/.exec(e.font)?.[1])||16);Number.isFinite(t.actualBoundingBoxAscent)&&Number.isFinite(t.actualBoundingBoxDescent)&&Number.isFinite(t.actualBoundingBoxLeft)&&Number.isFinite(t.actualBoundingBoxRight)?e.fillText(r,c+(t.actualBoundingBoxLeft-t.actualBoundingBoxRight)/2,a+(t.actualBoundingBoxAscent-t.actualBoundingBoxDescent)/2):(e.textAlign="center",e.textBaseline="middle",e.fillText(r,c,a))}function Ec(e,i,c,a,d,r=p.ink){e.font=`normal ${d}px ${U1}`,Fc(e,i,c,a,r)}function de(e,i,c,a,d,r=24,t=p.surface,o=3){let l=t===p.primary||t===p.primaryPressed,y=t===p.stage;jc(e,i,c,a,d,r,{face:t,depthColor:l?p.primaryDepth:t===p.coral?"#DF6634":p.cellDepth,depth:y?0:o,bevel:Math.min(8,d*.15),shadow:y?12:Math.min(7,d*.1),shadowY:y?4:2,shadowColor:y?"rgba(116,77,28,.20)":"rgba(116,77,28,.18)",shadeColor:l?"#4F4AEC":y?"#B79B6C":t===p.coral?"#D54C24":"#89602A",shadeStrength:y?.35:1})||(e.save(),y||(xe(e,i,c+o,a,d,r),e.fillStyle=p.cellDepth,e.fill()),xe(e,i,c,a,d,r),e.fillStyle=t,e.fill(),e.restore())}function Oc(e,i,c,a,d=15){let t=Math.ceil(d/3),o=10,l=c+72,y=i-a-110-l,h=Math.min(76,(y-o*(t-1))/t),n=Math.min(130,(e-48-o*2)/3);return{columns:3,rows:t,gap:o,y:l,w:n,h,x:(e-(n*3+o*2))/2}}function Pc(e,i,c,a,d,r,{completed:t,current:o}){let l=t?"#D6EAD6":o?p.primary:p.surface;if(de(e,c,a,d,r-3,Math.min(18,r*.28),l,3),o&&(e.save(),e.strokeStyle=t?p.primary:"#FFFFFF",e.lineWidth=2,xe(e,c+4,a+4,d-8,r-11,Math.min(14,r*.22)),e.stroke(),e.restore()),ce(e,i,c+d/2-(t?8:0),a+(r-3)/2,Math.min(24,r*.4),o&&!t?p.onPrimary:t?"#326443":p.ink,700),t){let y=Math.min(24,r*.4),h=c+d/2+String(i).length*y*.28+5,n=a+(r-3)/2;e.save(),e.strokeStyle="#326443",e.lineWidth=2.6,e.lineCap="round",e.lineJoin="round",e.beginPath(),e.moveTo(h-4,n),e.lineTo(h-1,n+3),e.lineTo(h+5,n-4),e.stroke(),e.restore()}}var Si=2600;function V1(e){return Math.max(0,Math.min(1,e/Si))}function Ac(e,i,c,a,d){let r=V1(d);if(r>=1)return;let t=Math.min(1,d/80,(Si-d)/350),o=i/2,l=c+a*.45;e.save(),e.globalAlpha=t,e.translate(o,l);let y=.94+.06*(1-(1-Math.min(1,r/.25))**3);e.scale(y,y);let h=[p.coral,p.primary,"#F3C346","#B3DDAA","#FFF8E3"],n=[[0,-12,0],[i*.2,-a*.13,220],[-i*.2,-a*.09,430]];for(let s=0;s=1)continue;let m=1-(1-u)**3;e.globalAlpha=t*Math.min(1,u/.07,(1-u)/.3);for(let k=0;k<20;k++){let q=k/20*Math.PI*2+s*.45,B=i*(.19+k%4*.035)*m,b=g+Math.cos(q)*B,D=w+Math.sin(q)*B+a*.24*u*u,M=8+k%4*3,f=Math.sin(k*1.7+u*9)*5;e.strokeStyle=h[(k+s)%h.length],e.lineWidth=3.5+k%3,e.beginPath(),e.moveTo(b-Math.cos(q)*M,D-Math.sin(q)*M),e.quadraticCurveTo(b+f,D-f,b,D),e.stroke()}}e.globalAlpha=t,de(e,-74,-40,148,80,25,p.surface,2),e.beginPath(),e.moveTo(-37,-2),e.lineTo(-30,5),e.lineTo(-17,-10),e.strokeStyle=p.success,e.lineWidth=5,e.lineCap="round",e.lineJoin="round",e.stroke(),ce(e,"\u5B8C\u6210\uFF01",25,0,24,p.ink,700),e.restore()}var Nc=new Set,fe={backend:"InnerAudioContext",lastError:null,plays:0,mergedMoves:0,completeRequestedAt:null,completeStartedAt:null};function $i(){for(let e of Nc)e.stop()}var Mi=class{constructor(i,c,a){Object.assign(this,{storage:c,key:a,channels:[],cursor:0,timers:new Set,lastEvent:null,lastAt:{},lastMove:-1/0,serial:0,variant:"enhanced"});try{this.enabled=c.getItem(a)!=="off"}catch{this.enabled=!0}Nc.add(this)}unlock(){if(!this.enabled||!wx.createInnerAudioContext)return!1;try{if(wx.setInnerAudioOption?.({obeyMuteSwitch:!1,mixWithOther:!0}),!this.channels.length)for(let i=0;i<4;i++){let c=wx.createInnerAudioContext();c.obeyMuteSwitch=!1,c.volume=.75,c.onError?.(a=>this.error(a)),this.channels.push(c)}return!0}catch(i){return this.error(i),!1}}error(i){fe.lastError={errCode:i?.errCode||0,errMsg:i?.errMsg||String(i)}}stop(){this.serial++;for(let i of this.timers)clearTimeout(i);this.timers.clear(),this.moveTimer=null,this.pendingMove=null,this.lastMove=-1/0,this.highestUntil=0;for(let i of this.channels)try{i.stop()}catch{}}toggle(){this.enabled=!this.enabled;try{this.storage.setItem(this.key,this.enabled?"on":"off")}catch{}return this.enabled?this.play("correct"):this.stop(),this.enabled}play(i,c=0,a=1){if(!this.unlock())return;let d=Date.now();if(!(i==="error"&&d-(this.lastAt.error??-1/0)0){let r=this.serial,t=setTimeout(()=>{this.timers.delete(t),r===this.serial&&this.play(i,0,a)},c*1e3);this.timers.add(t);return}if((i==="complete"||i==="restart")&&this.stop(),!(i!=="complete"&&d<(this.highestUntil||0))){if(i!=="move"&&this.moveTimer&&(clearTimeout(this.moveTimer),this.timers.delete(this.moveTimer),this.moveTimer=null,this.pendingMove=null),i==="move"&&this.variant!=="original"&&d-this.lastMove{this.timers.delete(t),this.moveTimer=null;let o=this.pendingMove;this.pendingMove=null,r===this.serial&&o!==null&&o!==void 0&&this.run("move",o)},W.audioGapMs-(d-this.lastMove));this.moveTimer=t,this.timers.add(t)}return}this.run(i,a)}}}run(i,c){if(!this.enabled)return;let a=Date.now();i==="move"&&(this.lastMove=a);let d=this.channels[i==="move"?this.cursor++%3:3],r=this.serial,t=i==="move"||i==="checkpoint"&&this.variant!=="original"?i+"-"+Math.max(1,Math.min(36,Math.floor(c))):i;try{d.stop(),d._feedbackPlay&&d.offPlay?.(d._feedbackPlay),d.src=(this.variant==="original"&&!["ui","hint"].includes(i)?"audio-original/":"audio/")+t+".wav",i==="complete"&&(this.highestUntil=a+W.completeWaitMs,fe.completeRequestedAt=a,fe.completeStartedAt=typeof d.onPlay=="function"?null:a);let o=()=>{r===this.serial&&i==="complete"&&(fe.completeStartedAt=Date.now())};d._feedbackPlay=o,d.onPlay?.(o),d.play(),this.lastEvent=i,fe.plays++}catch(o){this.error(o)}}};var je={mode:"campaign-200-r2",version:"scored-2026-10-15-r2",title:"\u6570\u5B57\u4E00\u7B14 \xB7 200\u5173\u8BC4\u5206\u4FEE\u8BA2\u7248",chapters:[{id:1,title:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528"},{id:2,title:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528"},{id:3,title:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528"},{id:4,title:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528"},{id:5,title:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:6,title:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:7,title:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:8,title:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:9,title:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:10,title:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406"},{id:11,title:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212"},{id:12,title:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212"},{id:13,title:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212"},{id:14,title:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212"},{id:15,title:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:16,title:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:17,title:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:18,title:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:19,title:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"},{id:20,title:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218"}],levels:[{geometry:"square",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:2,y:0,w:1,h:1}],features:[],mode:"campaign-200-r2",tutorial:"basic",caption:"\u4ECE1\u5F00\u59CB\uFF0C\u6BCF\u683C\u4E00\u6B21\uFF0C\u5171\u8FB9\u624D\u80FD\u8D70\u3002",previousId:null,id:"r2-001",order:1,chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:20,objectiveScore:0,title:"\u5F15\u5BFC \xB7 \u7B2C\u4E00\u7B14"},{id:"r2-002",contentRevision:2,order:2,mode:"campaign-200-r2",geometry:"blocks",features:["big"],title:"\u67A2\u7EBD\u7559\u540E",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,clue:5},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,clue:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:2,h:2},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1}],previousId:"campaign200-014",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:18},{id:"r2-003",contentRevision:2,order:3,mode:"campaign-200-r2",geometry:"square",features:[],title:"\u5148\u6536\u77ED\u652F\u8DEF",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1,clue:6},{id:"c7",x:1,y:2,w:1,h:1}],previousId:"campaign200-002",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:18},{id:"r2-004",contentRevision:2,order:4,mode:"campaign-200-r2",geometry:"blocks",features:["big"],title:"\u5927\u5757\u4E00\u6B65",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1,clue:1},{id:"c4",x:1,y:1,w:2,h:2},{id:"c5",x:0,y:2,w:1,h:1},{id:"c6",x:0,y:3,w:1,h:1},{id:"c7",x:1,y:3,w:1,h:1,clue:6}],previousId:"campaign200-004",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:17},{geometry:"square",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:0,y:1,w:1,h:1},{id:"t3",x:1,y:1,w:1,h:1}],features:["walls"],mode:"campaign-200-r2",walls:[["t0","t1"]],tutorial:"walls",caption:"\u9ED1\u9EC4\u5899\u4E0D\u80FD\u7A7F\u8FC7\uFF0C\u8BF7\u4ECE\u53E6\u4E00\u4FA7\u7ED5\u884C\u3002",previousId:null,id:"r2-005",order:5,chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:20,objectiveScore:0,title:"\u5F15\u5BFC \xB7 \u5899\u4E0D\u80FD\u7A7F\u8FC7"},{id:"r2-006",contentRevision:2,order:6,mode:"campaign-200-r2",geometry:"square",features:["walls"],title:"\u8FB9\u4E0A\u7684\u5899",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:8},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1,clue:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1}],walls:[["c3","c6"]],previousId:"campaign200-019",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:16},{id:"r2-007",contentRevision:2,order:7,mode:"campaign-200-r2",geometry:"square",features:["walls"],title:"\u8FD1\u8DEF\u8981\u7ED5",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,clue:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,clue:6},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1}],walls:[["c7","c10"]],previousId:"campaign200-029",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:16},{id:"r2-008",contentRevision:2,order:8,mode:"campaign-200-r2",geometry:"blocks",features:["big"],title:"\u8BA4\u6E05\u5F02\u5F62\u5171\u8FB9",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u5CF0\u503C",targetDifficulty:28,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1,clue:7},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1,clue:1}],previousId:"campaign200-020",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:29},{mode:"campaign-200-r2",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,role:"\u5F15\u5BFC",targetDifficulty:10,id:"r2-009",order:9,geometry:"square",features:["direction"],title:"\u5F15\u5BFC \xB7 \u5DE6\u53F3\u76F4\u884C",caption:"\u6A2A\u901A\u9053\u5FC5\u987B\u4ECE\u5DE6\u3001\u53F3\u4E24\u4FA7\u8FDB\u51FA\uFF0C\u4E0D\u80FD\u62D0\u5F2F\u3002",tutorial:"straight",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1,direction:"lr"},{id:"t2",x:2,y:0,w:1,h:1},{id:"t3",x:0,y:1,w:1,h:1},{id:"t4",x:1,y:1,w:1,h:1},{id:"t5",x:2,y:1,w:1,h:1}],previousId:"tutorial-straight",playerBand:null,estimatedBand:"\u6559\u5B66",objectiveScore:17},{id:"r2-010",contentRevision:2,order:10,mode:"campaign-200-r2",geometry:"square",features:["walls"],title:"\u7ED5\u8FC7\u53BB\u5C31\u597D",chapter:1,chapterTitle:"\u7B2C1\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u6536\u675F",targetDifficulty:15,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,clue:8},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1,clue:1}],walls:[["c1","c4"]],previousId:"campaign200-008",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:12},{mode:"campaign-200-r2",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,role:"\u5F15\u5BFC",targetDifficulty:20,id:"r2-011",order:11,geometry:"square",features:["direction"],title:"\u5F15\u5BFC \xB7 \u4E0A\u4E0B\u76F4\u884C",caption:"\u7AD6\u901A\u9053\u5FC5\u987B\u4ECE\u4E0A\u3001\u4E0B\u4E24\u4FA7\u8FDB\u51FA\u3002",tutorial:"vertical",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:0,y:1,w:1,h:1,direction:"du"},{id:"t2",x:0,y:2,w:1,h:1},{id:"t3",x:1,y:0,w:1,h:1},{id:"t4",x:1,y:1,w:1,h:1},{id:"t5",x:1,y:2,w:1,h:1}],previousId:"tutorial-straight",playerBand:null,estimatedBand:"\u6559\u5B66",objectiveScore:17},{id:"r2-012",contentRevision:2,order:12,mode:"campaign-200-r2",geometry:"square",features:["direction"],title:"\u901A\u9053\u7684\u9009\u62E9",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,direction:"lr"},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,clue:1},{id:"c6",x:0,y:2,w:1,h:1,clue:6},{id:"c7",x:1,y:2,w:1,h:1}],previousId:"campaign200-012",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:12},{mode:"campaign-200-r2",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,role:"\u5F15\u5BFC",targetDifficulty:20,id:"r2-013",order:13,geometry:"square",features:["direction"],title:"\u5F15\u5BFC \xB7 \u6309\u62D0\u89D2\u8FDB\u51FA",caption:"\u62D0\u89D2\u8FDE\u63A5\u54EA\u4E24\u8FB9\uFF0C\u5C31\u4ECE\u54EA\u4E24\u8FB9\u8FDB\u51FA\uFF0C\u53EF\u53CD\u5411\u3002",tutorial:"corner",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:2,y:0,w:1,h:1},{id:"t3",x:0,y:1,w:1,h:1},{id:"t4",x:1,y:1,w:1,h:1,direction:"lu"},{id:"t5",x:2,y:1,w:1,h:1}],previousId:"tutorial-corner",playerBand:null,estimatedBand:"\u6559\u5B66",objectiveScore:17},{id:"r2-014",contentRevision:2,order:14,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053\u518D\u63A5\u529B",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:13},{id:"c2",x:2,y:0,w:1,h:1,direction:"lr"},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1,direction:"lu"},{id:"c10",x:2,y:2,w:1,h:1},{id:"c11",x:3,y:2,w:1,h:1,clue:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1},{id:"c14",x:2,y:3,w:1,h:1}],walls:[["c10","c11"]],previousId:"campaign200-067",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:20},{id:"r2-015",contentRevision:2,order:15,mode:"campaign-200-r2",geometry:"square",features:["direction"],title:"\u8BA4\u6E05\u62D0\u89D2",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,direction:"dl"},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,clue:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1,clue:5},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1}],previousId:"campaign200-025",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:13},{id:"r2-016",contentRevision:2,order:16,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053 \xB7 \u5899\u7684\u9009\u62E9",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:20,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,clue:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1,clue:10},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,direction:"ru"},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1}],walls:[["c2","c6"]],previousId:"campaign200-097",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:27},{mode:"campaign-200-r2",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,role:"\u5F15\u5BFC",targetDifficulty:32,id:"r2-017",order:17,geometry:"blocks",features:["big","alternation"],title:"\u5F15\u5BFC \xB7 \u84DD\u6A59\u4EA4\u66FF",caption:"\u84DD\u8272\u3001\u6A59\u8272\u4EA4\u66FF\u8D70\uFF0C\u76F8\u90BB\u540C\u8272\u4E5F\u4E0D\u80FD\u8FDE\u7EED\u7ECF\u8FC7\u3002",tutorial:"colour",cells:[{id:"t0",x:0,y:1,w:1,h:1,clue:1,category:"circle"},{id:"t1",x:0,y:0,w:2,h:1,category:"triangle"},{id:"t2",x:1,y:1,w:1,h:1,category:"circle"}],previousId:"tutorial-colour",playerBand:null,estimatedBand:"\u6559\u5B66",objectiveScore:0},{id:"r2-018",contentRevision:2,order:18,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053 \xB7 \u5899\u7684\u82B1\u56ED",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u5CF0\u503C",targetDifficulty:40,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,direction:"dl"},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1,clue:12},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1,clue:1}],walls:[["c5","c6"]],previousId:"campaign200-130",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:40},{id:"r2-019",contentRevision:2,order:19,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","walls"],title:"\u53CC\u8272 \xB7 \u5899\u7684\u9009\u62E9",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u56DE\u843D",targetDifficulty:22,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle",clue:12},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:3,y:0,w:1,h:1,category:"circle"},{id:"c4",x:0,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:2,y:1,w:1,h:1,category:"circle"},{id:"c7",x:3,y:1,w:1,h:2,category:"triangle"},{id:"c8",x:0,y:2,w:1,h:1,category:"circle"},{id:"c9",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c10",x:2,y:2,w:1,h:1,category:"circle"},{id:"c11",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c12",x:1,y:3,w:1,h:1,category:"circle"},{id:"c13",x:2,y:3,w:1,h:1,category:"triangle"},{id:"c14",x:3,y:3,w:1,h:1,clue:1,category:"circle"}],walls:[["c6","c7"]],previousId:"campaign200-185",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:20},{id:"r2-020",contentRevision:2,order:20,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u9009\u62E9",chapter:2,chapterTitle:"\u7B2C2\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u6536\u675F",targetDifficulty:27,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle",direction:"dr"},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:3,y:0,w:1,h:1,category:"circle"},{id:"c4",x:0,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:2,y:1,w:1,h:1,clue:1,category:"circle"},{id:"c7",x:3,y:1,w:1,h:1,category:"triangle",clue:2},{id:"c8",x:0,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:2,w:1,h:1,category:"circle"},{id:"c10",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c11",x:3,y:2,w:1,h:2,category:"circle"},{id:"c12",x:0,y:3,w:1,h:1,category:"circle",clue:11},{id:"c13",x:1,y:3,w:2,h:1,category:"triangle"}],previousId:"campaign200-134",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:27},{id:"r2-021",contentRevision:2,order:21,mode:"campaign-200-r2",geometry:"blocks",features:["big","walls"],title:"\u5BF9\u79F0\u5C0F\u82B1\u56ED",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:2,h:2},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,clue:7},{id:"c5",x:0,y:2,w:1,h:1},{id:"c6",x:1,y:2,w:1,h:1},{id:"c7",x:2,y:2,w:1,h:1},{id:"c8",x:3,y:2,w:1,h:1,clue:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1}],walls:[["c1","c2"]],previousId:"campaign200-023",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:31},{id:"r2-022",contentRevision:2,order:22,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u9009\u62E9",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"circle"},{id:"c1",x:1,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:2,y:0,w:1,h:1,category:"circle",clue:7},{id:"c3",x:3,y:0,w:1,h:1,category:"triangle"},{id:"c4",x:0,y:1,w:1,h:2,category:"triangle"},{id:"c5",x:1,y:1,w:1,h:1,category:"circle"},{id:"c6",x:2,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:3,y:1,w:1,h:1,category:"circle"},{id:"c8",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:2,y:2,w:1,h:1,category:"circle"},{id:"c10",x:3,y:2,w:1,h:1,category:"triangle"},{id:"c11",x:0,y:3,w:1,h:1,clue:1,category:"circle"},{id:"c12",x:1,y:3,w:1,h:1,category:"circle"},{id:"c13",x:2,y:3,w:1,h:1,category:"triangle",direction:"ru"},{id:"c14",x:3,y:3,w:1,h:1,category:"circle"}],previousId:"campaign200-145",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:32},{geometry:"blocks",cells:[{id:"t0",x:0,y:1,w:1,h:1,clue:1},{id:"t1",x:0,y:0,w:2,h:1,parity:"even"},{id:"t2",x:1,y:1,w:1,h:1}],features:["big","parity"],mode:"campaign-200-r2",tutorial:"parity",caption:"\u5947/\u5076\u8981\u6C42\u8FD9\u4E00\u683C\u7684\u8BBF\u95EE\u6B65\u53F7\u4E3A\u5947\u6570/\u5076\u6570\u3002",previousId:null,id:"r2-023",order:23,chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:32,objectiveScore:4,title:"\u5F15\u5BFC \xB7 \u5947\u5076\u6B65\u53F7"},{id:"r2-024",contentRevision:2,order:24,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","direction"],title:"\u5947\u5076 \xB7 \u901A\u9053\u7684\u9009\u62E9",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,parity:"odd"},{id:"c1",x:1,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],clue:2},{id:"c2",x:0,y:1,w:1,h:1},{id:"c3",x:2,y:1,w:1,h:1,clue:1},{id:"c4",x:0,y:2,w:1,h:1},{id:"c5",x:1,y:2,w:1,h:1},{id:"c6",x:2,y:2,w:1,h:1},{id:"c7",x:0,y:3,w:1,h:1,direction:"ru"},{id:"c8",x:1,y:3,w:1,h:1,direction:"lr"},{id:"c9",x:2,y:3,w:1,h:1}],previousId:"campaign200-036",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:33},{id:"r2-025",contentRevision:2,order:25,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u4E24\u89D2\u76F8\u63A5",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1,direction:"dl"},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,direction:"ru"},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1,clue:1}],walls:[["c4","c8"]],previousId:"campaign200-040",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:33},{id:"r2-026",contentRevision:2,order:26,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","direction"],title:"\u53CC\u8272 \xB7 \u901A\u9053\u7684\u82B1\u56ED",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:3,y:0,w:1,h:1,category:"circle"},{id:"c1",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:1,y:0,w:1,h:1,category:"circle",direction:"lr"},{id:"c3",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c4",x:2,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]],category:"triangle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:0,y:1,w:1,h:1,category:"circle"},{id:"c7",x:3,y:2,w:1,h:1,clue:1,category:"circle"},{id:"c8",x:1,y:2,w:1,h:1,category:"circle"},{id:"c9",x:0,y:2,w:1,h:1,category:"triangle",direction:"ru"}],previousId:"campaign200-030",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:29},{id:"r2-027",contentRevision:2,order:27,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","walls"],title:"\u53CC\u8272 \xB7 \u5899\u7684\u9009\u62E9",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle",clue:6},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:3,y:0,w:1,h:1,category:"circle"},{id:"c4",x:0,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:2,y:1,w:1,h:1,category:"circle"},{id:"c7",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c8",x:0,y:2,w:1,h:2,category:"triangle"},{id:"c9",x:1,y:2,w:2,h:1,category:"triangle"},{id:"c10",x:3,y:2,w:1,h:1,clue:1,category:"circle"},{id:"c11",x:1,y:3,w:1,h:1,category:"circle"}],walls:[["c1","c5"],["c6","c9"]],previousId:"campaign200-196",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:29},{id:"r2-028",contentRevision:2,order:28,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u82B1\u56ED",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u5CF0\u503C",targetDifficulty:40,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c2",x:3,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:2,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:2},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1,clue:1},{id:"c11",x:1,y:3,w:1,h:1},{id:"c12",x:3,y:3,w:1,h:1,parity:"even"}],walls:[["c5","c9"]],previousId:"campaign200-090",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:40},{geometry:"square",cells:[{id:"t0",x:0,y:0,w:1,h:1,clue:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:0,y:1,w:1,h:1},{id:"t3",x:1,y:1,w:1,h:1}],features:["rhythm-door"],mode:"campaign-200-r2",doors:[{edge:["t2","t3"],initialOpen:!1}],tutorial:"rhythm-door",caption:"\u95E8\u968F\u843D\u683C\u5207\u6362\uFF1B\u5F00\u65F6\u901A\u8FC7\u540E\u4FDD\u6301\u5F00\u542F\uFF0C\u64A4\u9500\u7A7F\u95E8\u624D\u6062\u590D\u5207\u6362\u3002",previousId:null,id:"r2-029",order:29,chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:22,objectiveScore:4,title:"\u5F15\u5BFC \xB7 \u95E8\u968F\u811A\u6B65\u5207\u6362"},{id:"r2-030",contentRevision:2,order:30,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:3,chapterTitle:"\u7B2C3\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u6536\u675F",targetDifficulty:27,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:2,h:1},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1,parity:"odd"},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1,direction:"lu"},{id:"c11",x:0,y:3,w:1,h:1,clue:1},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:2,y:3,w:1,h:1}],doors:[{edge:["c0","c1"],initialOpen:!1}],walls:[["c5","c6"]],previousId:"campaign200-095",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:28},{id:"r2-031",contentRevision:2,order:31,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door","walls"],title:"\u5899\u548C\u95E8\u5206\u5F00\u770B",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,clue:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:2,h:2},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:0,y:2,w:1,h:1},{id:"c6",x:1,y:2,w:1,h:1},{id:"c7",x:2,y:2,w:1,h:1},{id:"c8",x:3,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1,clue:10},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1}],doors:[{edge:["c5","c9"],initialOpen:!1}],walls:[["c0","c1"]],previousId:"campaign200-055",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:32},{id:"r2-032",contentRevision:2,order:32,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:3,y:0,w:1,h:1,clue:1,category:"circle"},{id:"c1",x:2,y:0,w:1,h:1,category:"triangle",direction:"dl"},{id:"c2",x:0,y:0,w:2,h:1,category:"circle",clue:5},{id:"c3",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c4",x:2,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:0,y:1,w:1,h:2,category:"triangle"},{id:"c7",x:3,y:2,w:1,h:1,category:"circle"},{id:"c8",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:2,w:1,h:1,category:"circle"},{id:"c10",x:3,y:3,w:1,h:1,category:"triangle"},{id:"c11",x:2,y:3,w:1,h:1,category:"circle"},{id:"c12",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c13",x:0,y:3,w:1,h:1,category:"circle"}],doors:[{edge:["c11","c10"],initialOpen:!1}],walls:[["c6","c9"]],previousId:"campaign200-105",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:31},{id:"r2-033",contentRevision:2,order:33,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,clue:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1,clue:3},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1,direction:"lu"}],doors:[{edge:["c4","c1"],initialOpen:!1}],walls:[["c6","c7"]],previousId:"campaign200-115",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{id:"r2-034",contentRevision:2,order:34,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:1,category:"triangle"},{id:"c1",x:0,y:1,w:1,h:1,category:"circle"},{id:"c2",x:0,y:2,w:1,h:1,category:"triangle"},{id:"c3",x:0,y:3,w:1,h:1,category:"circle"},{id:"c4",x:1,y:1,w:1,h:1,category:"circle"},{id:"c5",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c6",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c7",x:2,y:0,w:1,h:1,clue:1,category:"circle"},{id:"c8",x:2,y:1,w:1,h:1,category:"triangle"},{id:"c9",x:2,y:2,w:2,h:1,category:"circle"},{id:"c10",x:2,y:3,w:1,h:1,category:"circle"},{id:"c11",x:3,y:0,w:1,h:1,category:"triangle",direction:"dl"},{id:"c12",x:3,y:1,w:1,h:1,category:"circle"},{id:"c13",x:3,y:3,w:1,h:1,category:"triangle"}],doors:[{edge:["c3","c6"],initialOpen:!1}],walls:[["c8","c9"]],previousId:"campaign200-127",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{geometry:"hex",features:[],cells:[{id:"t0",q:0,r:0,clue:1},{id:"t1",q:1,r:0},{id:"t2",q:2,r:0,clue:4},{id:"t3",q:0,r:1},{id:"t4",q:1,r:1},{id:"t5",q:2,r:1,clue:6}],tutorial:"hex",caption:"\u516D\u8FB9\u5F62\u6709\u516D\u4E2A\u5171\u8FB9\u65B9\u5411\uFF0C\u6BCF\u683C\u4E00\u6B65\u3002",previousId:null,id:"r2-035",order:35,chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",mode:"campaign-200-r2",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:42,objectiveScore:19,title:"\u5F15\u5BFC \xB7 \u516D\u5411\u5171\u8FB9"},{id:"r2-036",contentRevision:2,order:36,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door","parity"],title:"\u95E8 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,parity:"odd"},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c5",x:2,y:1,w:1,h:1,clue:1},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1},{id:"c11",x:1,y:3,w:1,h:1,clue:11}],doors:[{edge:["c11","c10"],initialOpen:!1}],previousId:"campaign200-042",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:42},{id:"r2-037",contentRevision:2,order:37,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"circle",direction:"dr"},{id:"c1",x:1,y:0,w:1,h:1,category:"triangle",direction:"lr"},{id:"c2",x:2,y:0,w:1,h:1,category:"circle"},{id:"c3",x:3,y:0,w:1,h:1,category:"triangle"},{id:"c4",x:0,y:1,w:1,h:1,category:"triangle"},{id:"c5",x:1,y:1,w:1,h:1,category:"circle"},{id:"c6",x:2,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:3,y:1,w:1,h:1,category:"circle"},{id:"c8",x:0,y:2,w:1,h:1,category:"circle"},{id:"c9",x:1,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],category:"circle"},{id:"c10",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c11",x:2,y:3,w:1,h:1,category:"triangle"},{id:"c12",x:3,y:3,w:1,h:1,clue:1,category:"circle"}],previousId:"campaign200-123",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:42},{id:"r2-038",contentRevision:2,order:38,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","walls"],title:"\u4E24\u4E2A\u53CC\u8272\u67A2\u7EBD",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u5CF0\u503C",targetDifficulty:50,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:2,category:"triangle"},{id:"c1",x:1,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:2,y:0,w:1,h:1,category:"circle"},{id:"c3",x:3,y:0,w:1,h:1,category:"triangle"},{id:"c4",x:1,y:1,w:1,h:1,category:"circle",clue:11},{id:"c5",x:2,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:3,y:1,w:1,h:1,category:"circle"},{id:"c7",x:0,y:2,w:1,h:1,category:"circle"},{id:"c8",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:2,y:2,w:1,h:1,category:"circle"},{id:"c10",x:3,y:2,w:1,h:1,category:"triangle"},{id:"c11",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c12",x:1,y:3,w:1,h:1,category:"circle"},{id:"c13",x:2,y:3,w:2,h:2,shape:[[0,0],[0,1],[1,0]],category:"circle"},{id:"c14",x:0,y:4,w:1,h:1,clue:1,category:"circle"},{id:"c15",x:1,y:4,w:1,h:1,category:"triangle"}],walls:[["c9","c10"],["c4","c5"]],previousId:"campaign200-073",playerBand:"\u9700\u8981\u63D0\u793A",estimatedBand:"\u9700\u8981\u63D0\u793A",objectiveScore:46},{id:"r2-039",contentRevision:2,order:39,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u56DE\u843D",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,clue:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1,direction:"dr"},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,clue:7},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1}],doors:[{edge:["c5","c4"],initialOpen:!1}],walls:[["c8","c9"]],previousId:"campaign200-137",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{id:"r2-040",contentRevision:2,order:40,mode:"campaign-200-r2",geometry:"square",features:["direction"],title:"\u4E0A\u4E0B\u901A\u9053",chapter:4,chapterTitle:"\u7B2C4\u7AE0 \xB7 \u7406\u89E3\u4E0E\u5E94\u7528",role:"\u6536\u675F",targetDifficulty:37,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,direction:"du"},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1,clue:1}],previousId:"campaign200-017",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:37},{id:"r2-041",contentRevision:2,order:41,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls","rhythm-door"],title:"\u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,parity:"odd"},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,clue:3},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:2,h:1},{id:"c14",x:3,y:3,w:1,h:1,clue:1}],doors:[{edge:["c3","c7"],initialOpen:!1}],walls:[["c4","c8"]],previousId:"campaign200-107",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:42},{id:"r2-042",contentRevision:2,order:42,mode:"campaign-200-r2",geometry:"blocks",features:["big","walls"],title:"\u7B2C\u4E00\u5EA7\u6865",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,clue:11},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:2,h:2},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:3,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1},{id:"c12",x:3,y:3,w:1,h:1,clue:1}],walls:[["c1","c5"],["c5","c10"]],previousId:"campaign200-050",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:41},{id:"r2-043",contentRevision:2,order:43,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u9009\u62E9",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:2,h:1},{id:"c2",x:3,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,parity:"odd"},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1,clue:4},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1,clue:1},{id:"c12",x:1,y:3,w:1,h:1}],walls:[["c1","c4"]],previousId:"campaign200-121",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:41},{id:"r2-044",contentRevision:2,order:44,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1,direction:"ru"},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1,direction:"lr"},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1,clue:1}],doors:[{edge:["c4","c0"],initialOpen:!1}],walls:[["c6","c7"]],previousId:"campaign200-126",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:43},{geometry:"square",features:[],cells:[{id:"t0",x:0,y:0,w:1,h:1},{id:"t1",x:1,y:0,w:1,h:1},{id:"t2",x:2,y:0,w:1,h:1},{id:"t3",x:0,y:1,w:1,h:1},{id:"t4",x:1,y:1,w:1,h:1},{id:"t5",x:2,y:1,w:1,h:1,clue:4},{id:"t6",x:0,y:2,w:1,h:1},{id:"t7",x:1,y:2,w:1,h:1,clue:8}],tutorial:"unknown-start",caption:"\u6CA1\u6709\u6570\u5B571\u65F6\u8981\u627E\u8D77\u70B9\uFF1B\u5148\u770B\u6570\u5B57\u7EBF\u7D22\uFF0C\u627E\u51FA\u7B2C\u4E00\u6B65\u3002",previousId:null,id:"r2-045",order:45,chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",mode:"campaign-200-r2",contentRevision:2,playerBand:null,estimatedBand:"\u6559\u5B66",role:"\u5F15\u5BFC",targetDifficulty:42,objectiveScore:25,title:"\u5F15\u5BFC \xB7 \u4ECE\u54EA\u91CC\u51FA\u53D1"},{id:"r2-046",contentRevision:2,order:46,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u9009\u62E9",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:1},{id:"c1",x:2,y:0,w:1,h:1},{id:"c2",x:3,y:0,w:1,h:1,parity:"odd"},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:2,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1},{id:"c11",x:1,y:3,w:1,h:1,clue:1}],walls:[["c0","c1"]],previousId:"campaign200-154",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:41},{id:"r2-047",contentRevision:2,order:47,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u82B1\u56ED",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:1,w:1,h:2},{id:"c1",x:0,y:0,w:1,h:1,direction:"dr"},{id:"c2",x:1,y:3,w:1,h:1},{id:"c3",x:1,y:2,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:1,y:0,w:1,h:1,clue:5},{id:"c6",x:2,y:3,w:1,h:1},{id:"c7",x:2,y:2,w:1,h:1},{id:"c8",x:2,y:1,w:1,h:1},{id:"c9",x:2,y:0,w:1,h:1},{id:"c10",x:3,y:3,w:1,h:1},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:3,y:0,w:1,h:1},{id:"c13",x:4,y:2,w:1,h:2,parity:"even"},{id:"c14",x:4,y:1,w:1,h:1,clue:1},{id:"c15",x:4,y:0,w:1,h:1}],doors:[{edge:["c2","c3"],initialOpen:!1}],walls:[["c3","c7"]],previousId:"campaign200-150",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:42},{id:"r2-048",contentRevision:2,order:48,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door"],title:"\u5927\u5757\u6539\u53D8\u8282\u62CD",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u5CF0\u503C",targetDifficulty:50,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:2,clue:13},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1,clue:1},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:2,h:2},{id:"c13",x:3,y:3,w:1,h:1},{id:"c14",x:0,y:4,w:1,h:1}],doors:[{edge:["c14","c11"],initialOpen:!1}],previousId:"campaign200-076",playerBand:"\u9700\u8981\u63D0\u793A",estimatedBand:"\u9700\u8981\u63D0\u793A",objectiveScore:69},{id:"r2-049",contentRevision:2,order:49,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u5C0F\u5F84",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u56DE\u843D",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:0,y:1,w:1,h:1},{id:"c2",x:0,y:2,w:1,h:1,clue:8},{id:"c3",x:0,y:3,w:2,h:1},{id:"c4",x:1,y:0,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:1,y:2,w:1,h:1},{id:"c7",x:2,y:0,w:1,h:1},{id:"c8",x:2,y:1,w:1,h:1,direction:"lu"},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:2,y:3,w:2,h:1,parity:"even"},{id:"c11",x:3,y:0,w:1,h:1,clue:1},{id:"c12",x:3,y:1,w:1,h:1},{id:"c13",x:3,y:2,w:1,h:1}],doors:[{edge:["c4","c7"],initialOpen:!1}],walls:[["c4","c5"]],previousId:"campaign200-139",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{id:"r2-050",contentRevision:2,order:50,mode:"campaign-200-r2",geometry:"square",features:["rhythm-door"],title:"\u95E8\u968F\u811A\u6B65\u5F00\u5173",chapter:5,chapterTitle:"\u7B2C5\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u6536\u675F",targetDifficulty:37,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:8},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,clue:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1}],doors:[{edge:["c2","c1"],initialOpen:!1}],previousId:"campaign200-043",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:37},{id:"r2-051",contentRevision:2,order:51,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,direction:"dr"},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1,clue:13},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:2,h:1},{id:"c9",x:2,y:2,w:1,h:1,clue:1},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:2,y:3,w:1,h:1,parity:"odd"},{id:"c14",x:3,y:3,w:1,h:1}],previousId:"campaign200-103",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:43},{id:"r2-052",contentRevision:2,order:52,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053 \xB7 \u5899\u7684\u9009\u62E9",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,clue:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1,direction:"lu"},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:0,y:3,w:1,h:1},{id:"c10",x:1,y:3,w:1,h:1},{id:"c11",x:2,y:3,w:1,h:1}],walls:[["c1","c4"]],previousId:"campaign200-194",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:44},{id:"r2-053",contentRevision:2,order:53,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","walls"],title:"\u53CC\u8272\u8DE8\u533A",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:2,category:"triangle"},{id:"c1",x:2,y:0,w:1,h:1,category:"circle"},{id:"c2",x:3,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:2,y:1,w:1,h:2,category:"circle",clue:9},{id:"c4",x:3,y:1,w:1,h:1,category:"circle"},{id:"c5",x:0,y:2,w:1,h:1,category:"circle"},{id:"c6",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c7",x:3,y:2,w:1,h:1,category:"triangle"},{id:"c8",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:3,w:1,h:1,category:"circle"},{id:"c10",x:2,y:3,w:1,h:1,category:"triangle"},{id:"c11",x:3,y:3,w:1,h:1,category:"circle"},{id:"c12",x:0,y:4,w:1,h:1,category:"circle"},{id:"c13",x:1,y:4,w:1,h:1,category:"triangle"},{id:"c14",x:2,y:4,w:1,h:1,clue:1,category:"circle"}],walls:[["c9","c10"],["c3","c6"]],previousId:"campaign200-068",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:44},{id:"r2-054",contentRevision:2,order:54,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls","rhythm-door"],title:"\u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:1},{id:"c1",x:2,y:0,w:1,h:1,clue:11},{id:"c2",x:3,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1,parity:"odd"},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:2},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:3,y:3,w:1,h:1},{id:"c14",x:0,y:4,w:1,h:1,clue:1}],doors:[{edge:["c1","c5"],initialOpen:!1}],walls:[["c3","c4"]],previousId:"campaign200-182",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:44},{id:"r2-055",contentRevision:2,order:55,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u4EA4\u9519",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:3,y:0,w:1,h:1,clue:1,category:"circle"},{id:"c1",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:1,y:0,w:1,h:1,category:"circle"},{id:"c3",x:0,y:0,w:1,h:1,category:"triangle",direction:"dr"},{id:"c4",x:3,y:1,w:1,h:2,category:"circle"},{id:"c5",x:2,y:1,w:1,h:1,category:"circle"},{id:"c6",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:0,y:1,w:1,h:1,category:"circle"},{id:"c8",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:2,w:1,h:2,category:"triangle"},{id:"c10",x:0,y:2,w:1,h:1,category:"triangle"},{id:"c11",x:3,y:3,w:1,h:1,category:"triangle"},{id:"c12",x:2,y:3,w:1,h:1,category:"circle"},{id:"c13",x:0,y:3,w:1,h:1,category:"circle"}],doors:[{edge:["c13","c10"],initialOpen:!1}],walls:[["c6","c7"]],previousId:"campaign200-138",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:39},{id:"r2-056",contentRevision:2,order:56,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls","rhythm-door"],title:"\u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1,clue:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1,parity:"odd"},{id:"c11",x:1,y:3,w:1,h:1}],doors:[{edge:["c7","c11"],initialOpen:!1}],walls:[["c3","c4"]],previousId:"campaign200-063",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:39},{id:"r2-057",contentRevision:2,order:57,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door"],title:"\u987A\u7740\u8282\u62CD\u6536\u5C3E",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:42,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:2,h:2},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1,clue:11},{id:"c13",x:0,y:4,w:1,h:1,clue:1}],doors:[{edge:["c7","c3"],initialOpen:!1}],previousId:"campaign200-058",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:38},{id:"r2-058",contentRevision:2,order:58,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076\u5206\u914D\u533A\u57DF",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u5CF0\u503C",targetDifficulty:50,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1,parity:"even"},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1,parity:"odd"},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:2,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:2,y:3,w:2,h:2,shape:[[0,0],[1,0],[0,1]]},{id:"c14",x:0,y:4,w:1,h:1},{id:"c15",x:1,y:4,w:1,h:1},{id:"c16",x:3,y:4,w:1,h:1,clue:1}],walls:[["c8","c9"],["c12","c15"]],previousId:"campaign200-077",playerBand:"\u9700\u8981\u63D0\u793A",estimatedBand:"\u9700\u8981\u63D0\u793A",objectiveScore:60},{id:"r2-059",contentRevision:2,order:59,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u5C0F\u5F84",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u56DE\u843D",targetDifficulty:32,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,direction:"lr"},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:1,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1,direction:"lu"},{id:"c9",x:0,y:3,w:1,h:1,clue:1}],doors:[{edge:["c1","c2"],initialOpen:!1}],walls:[["c6","c7"]],previousId:"campaign200-159",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:35},{id:"r2-060",contentRevision:2,order:60,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u5C0F\u5F84",chapter:6,chapterTitle:"\u7B2C6\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u6536\u675F",targetDifficulty:37,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,direction:"dr"},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:0,y:1,w:1,h:1,parity:"even"},{id:"c4",x:1,y:1,w:1,h:1,clue:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:2,clue:3},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:1,y:3,w:1,h:1},{id:"c10",x:2,y:3,w:1,h:1}],previousId:"campaign200-169",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:36},{id:"r2-061",contentRevision:2,order:61,mode:"campaign-200-r2",geometry:"blocks",features:["big","rhythm-door","direction"],title:"\u95E8 \xB7 \u901A\u9053\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]]},{id:"c1",x:2,y:0,w:1,h:1},{id:"c2",x:3,y:0,w:1,h:1,clue:1},{id:"c3",x:1,y:1,w:1,h:1},{id:"c4",x:2,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1,clue:7},{id:"c8",x:2,y:2,w:1,h:1,direction:"lr"},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1},{id:"c11",x:1,y:3,w:1,h:1,direction:"lu"}],doors:[{edge:["c9","c8"],initialOpen:!1}],previousId:"campaign200-045",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:57},{id:"r2-062",contentRevision:2,order:62,mode:"campaign-200-r2",geometry:"square",features:["direction","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u5899 \xB7 \u95E8\u7684\u4EA4\u9519",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:2,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:0,y:0,w:1,h:1},{id:"c3",x:3,y:1,w:1,h:1,clue:1},{id:"c4",x:2,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:0,y:1,w:1,h:1},{id:"c7",x:3,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:0,y:2,w:1,h:1},{id:"c11",x:3,y:3,w:1,h:1,direction:"lu"},{id:"c12",x:2,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1},{id:"c14",x:0,y:3,w:1,h:1},{id:"c15",x:2,y:4,w:1,h:1},{id:"c16",x:1,y:4,w:1,h:1}],doors:[{edge:["c15","c12"],initialOpen:!1}],walls:[["c8","c12"],["c5","c6"]],previousId:"campaign200-148",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:57},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:2,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:3,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c12",category:"circle"},{x:4,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c15",category:"circle"},{x:2,y:3,w:1,h:1,id:"c16",category:"circle"},{x:3,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c18",category:"circle"},{x:0,y:4,w:1,h:1,id:"c19",category:"circle"},{x:1,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c22",category:"circle",direction:"lu"},{x:4,y:4,w:1,h:1,id:"c23",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c17","c18"]],previousId:null,id:"r2-063",order:63,chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:57,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 63",caption:""},{id:"r2-064",contentRevision:2,order:64,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,parity:"odd"},{id:"c3",x:3,y:0,w:1,h:2},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1,parity:"odd"},{id:"c11",x:0,y:3,w:2,h:1},{id:"c12",x:2,y:3,w:1,h:1},{id:"c13",x:3,y:3,w:1,h:1,clue:1}],walls:[["c6","c9"],["c2","c6"]],previousId:"campaign200-176",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:56},{id:"r2-065",contentRevision:2,order:65,mode:"campaign-200-r2",geometry:"blocks",features:["big","alternation","parity"],title:"\u53CC\u8272 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c3",x:0,y:1,w:1,h:2,category:"circle"},{id:"c4",x:1,y:1,w:1,h:1,category:"circle",parity:"odd"},{id:"c5",x:2,y:1,w:1,h:1,category:"circle"},{id:"c6",x:1,y:2,w:1,h:1,category:"triangle"},{id:"c7",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c8",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c9",x:1,y:3,w:1,h:1,category:"circle"}],previousId:"campaign200-111",playerBand:"\u559C\u6B22\u7684\u672A\u77E5\u8D77\u70B9",estimatedBand:"\u559C\u6B22\u7684\u672A\u77E5\u8D77\u70B9",objectiveScore:60},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:1,r:0,clue:1,category:"circle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"triangle"},{id:"c10",q:2,r:0,category:"triangle"},{id:"c11",q:2,r:1,category:"circle"},{id:"c12",q:2,r:2,category:"triangle"},{id:"c13",q:2,r:3,category:"circle"},{id:"c14",q:2,r:4,category:"triangle"},{id:"c15",q:3,r:0,category:"circle"},{id:"c16",q:3,r:1,category:"triangle",clue:18},{id:"c17",q:3,r:2,category:"circle"},{id:"c18",q:3,r:3,category:"triangle"},{id:"c19",q:3,r:4,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c11","c12"]],previousId:null,id:"r2-066",order:66,chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:58,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 66",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14",direction:"lu"},{x:0,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17",clue:1},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21",direction:"ru"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"}],features:["direction","rhythm-door"],contentRevision:2,doors:[{edge:["c8","c7"],initialOpen:!1}],previousId:null,id:"r2-067",order:67,chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:58,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 67",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",clue:1},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",direction:"dr"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12",direction:"lu"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14",direction:"du"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"}],features:["direction","walls"],contentRevision:2,walls:[["c13","c18"],["c6","c11"]],previousId:null,id:"r2-068",order:68,chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u5CF0\u503C",targetDifficulty:65,objectiveScore:65,title:"\u65B9\u683C \xB7 \u4EA4\u9519\u6311\u6218 68",caption:""},{id:"r2-069",contentRevision:2,order:69,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls"],title:"\u5947\u5076 \xB7 \u5899\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u56DE\u843D",targetDifficulty:47,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,parity:"odd"},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1,clue:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1,clue:5},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]]},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:1,y:3,w:1,h:1}],walls:[["c1","c5"]],previousId:"campaign200-165",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:47},{id:"r2-070",contentRevision:2,order:70,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:7,chapterTitle:"\u7B2C7\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u6536\u675F",targetDifficulty:52,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:2},{id:"c2",x:2,y:0,w:2,h:1,parity:"odd"},{id:"c3",x:0,y:1,w:1,h:1},{id:"c4",x:2,y:1,w:1,h:1},{id:"c5",x:3,y:1,w:1,h:1},{id:"c6",x:0,y:2,w:1,h:1},{id:"c7",x:1,y:2,w:1,h:1},{id:"c8",x:2,y:2,w:1,h:1},{id:"c9",x:3,y:2,w:1,h:1},{id:"c10",x:0,y:3,w:1,h:1,clue:1},{id:"c11",x:1,y:3,w:1,h:1,parity:"odd"},{id:"c12",x:2,y:3,w:1,h:1},{id:"c13",x:3,y:3,w:1,h:1,direction:"lu"}],previousId:"campaign200-092",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:52},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:2,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",clue:1,category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:2,y:1,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c7",category:"circle"},{x:5,y:1,w:1,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c12",category:"circle"},{x:5,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c15",category:"circle",clue:17},{x:2,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c17",category:"circle"},{x:4,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c19",category:"circle"},{x:0,y:4,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c22",category:"circle"},{x:3,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c24",category:"circle"},{x:5,y:4,w:1,h:1,id:"c25",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c18","c24"],["c16","c22"],["c12","c18"]],previousId:null,id:"r2-071",order:71,chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:57,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 71",caption:""},{id:"r2-072",contentRevision:2,order:72,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u9009\u62E9",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c1",x:0,y:1,w:1,h:1,category:"circle"},{id:"c2",x:0,y:2,w:1,h:1,category:"triangle",direction:"dr"},{id:"c3",x:0,y:3,w:1,h:1,clue:1,category:"circle"},{id:"c4",x:1,y:0,w:1,h:1,category:"circle",direction:"lr"},{id:"c5",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c6",x:1,y:2,w:1,h:1,category:"circle"},{id:"c7",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c8",x:2,y:0,w:2,h:1,category:"triangle"},{id:"c9",x:2,y:1,w:1,h:1,category:"circle"},{id:"c10",x:2,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]],category:"circle"},{id:"c11",x:3,y:1,w:1,h:1,category:"triangle"}],doors:[{edge:["c1","c0"],initialOpen:!1}],walls:[["c5","c9"]],previousId:"campaign200-072",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:55},{id:"r2-073",contentRevision:2,order:73,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u9009\u62E9",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c1",x:1,y:0,w:2,h:1,category:"circle"},{id:"c2",x:3,y:0,w:1,h:1,category:"circle"},{id:"c3",x:0,y:1,w:1,h:1,category:"circle"},{id:"c4",x:1,y:1,w:1,h:1,category:"triangle"},{id:"c5",x:2,y:1,w:1,h:1,category:"circle"},{id:"c6",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:0,y:2,w:1,h:1,category:"triangle"},{id:"c8",x:1,y:2,w:1,h:1,category:"circle"},{id:"c9",x:2,y:2,w:1,h:1,category:"triangle",direction:"lu"},{id:"c10",x:3,y:2,w:1,h:1,category:"circle"},{id:"c11",x:0,y:3,w:1,h:1,clue:1,category:"circle"},{id:"c12",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c13",x:2,y:3,w:1,h:1,category:"circle"},{id:"c14",x:3,y:3,w:1,h:1,category:"triangle"}],previousId:"campaign200-101",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:55},{id:"r2-074",contentRevision:2,order:74,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","walls","rhythm-door"],title:"\u5947\u5076 \xB7 \u5899 \xB7 \u95E8\u7684\u4EA4\u9519",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u7EC3\u4E60",targetDifficulty:57,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1,clue:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:2,h:1},{id:"c6",x:3,y:1,w:1,h:1},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:2},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1},{id:"c11",x:0,y:3,w:1,h:1},{id:"c12",x:2,y:3,w:1,h:1,parity:"odd"},{id:"c13",x:3,y:3,w:1,h:1}],doors:[{edge:["c10","c6"],initialOpen:!1}],walls:[["c8","c12"]],previousId:"campaign200-118",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:55},{mode:"campaign-200-r2",geometry:"square",cells:[{x:1,y:0,w:1,h:1,id:"c0",clue:1},{x:2,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:1,id:"c9",direction:"ru"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12",clue:17},{x:4,y:2,w:1,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17"},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19",clue:8},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"}],features:["direction","walls"],contentRevision:2,walls:[["c1","c2"]],previousId:null,id:"r2-075",order:75,chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:59,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 75",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:12},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9",parity:"even"},{x:5,y:1,w:1,h:2,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12",clue:1},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:2,h:1,id:"c25"}],features:["big","parity","walls"],contentRevision:2,walls:[["c6","c12"],["c5","c6"]],previousId:null,id:"r2-076",order:76,chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:58,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 76",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:2,h:1,id:"c6",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c10",category:"circle"},{x:0,y:2,w:1,h:1,id:"c11",category:"circle"},{x:1,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c13",category:"circle"},{x:4,y:2,w:1,h:1,id:"c14",clue:1,category:"circle"},{x:5,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:0,y:3,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c16",category:"circle"},{x:2,y:3,w:1,h:1,id:"c17",category:"triangle",direction:"ru"},{x:3,y:3,w:1,h:1,id:"c18",category:"circle",clue:9},{x:4,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c22",category:"circle"},{x:3,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c24",category:"circle"},{x:5,y:4,w:1,h:1,id:"c25",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c22","c21"],initialOpen:!1}],previousId:null,id:"r2-077",order:77,chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:56,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 77",caption:""},{id:"r2-078",contentRevision:2,order:78,mode:"campaign-200-r2",geometry:"blocks",features:["big","parity","rhythm-door"],title:"\u5148\u5B9A\u5947\u5076\uFF0C\u518D\u5B9A\u8282\u62CD",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u5CF0\u503C",targetDifficulty:65,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1,parity:"odd"},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1,clue:8},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1,clue:1},{id:"c10",x:2,y:2,w:1,h:1,parity:"even"},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:2,h:2,shape:[[0,0],[1,0],[0,1]]},{id:"c13",x:2,y:3,w:1,h:1},{id:"c14",x:3,y:3,w:1,h:1},{id:"c15",x:1,y:4,w:1,h:1},{id:"c16",x:2,y:4,w:2,h:1}],doors:[{edge:["c3","c7"],initialOpen:!1}],previousId:"campaign200-085",playerBand:"\u9700\u8981\u63D0\u793A",estimatedBand:"\u9700\u8981\u63D0\u793A",objectiveScore:59},{id:"r2-079",contentRevision:2,order:79,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation"],title:"\u901A\u9053 \xB7 \u53CC\u8272\u7684\u4EA4\u9519",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u56DE\u843D",targetDifficulty:47,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,category:"triangle"},{id:"c1",x:1,y:0,w:1,h:1,category:"circle"},{id:"c2",x:2,y:0,w:1,h:1,category:"triangle",direction:"dr"},{id:"c3",x:3,y:0,w:1,h:1,category:"circle"},{id:"c4",x:0,y:1,w:2,h:1,category:"triangle"},{id:"c5",x:2,y:1,w:1,h:1,clue:1,category:"circle"},{id:"c6",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c7",x:0,y:2,w:1,h:1,category:"circle"},{id:"c8",x:1,y:2,w:2,h:1,category:"triangle"},{id:"c9",x:3,y:2,w:1,h:1,category:"circle"},{id:"c10",x:0,y:3,w:1,h:1,category:"triangle"},{id:"c11",x:1,y:3,w:1,h:1,category:"circle"},{id:"c12",x:2,y:3,w:1,h:1,category:"circle"},{id:"c13",x:3,y:3,w:1,h:1,category:"triangle"},{id:"c14",x:0,y:4,w:1,h:1,category:"circle"},{id:"c15",x:1,y:4,w:1,h:1,category:"triangle"}],previousId:"campaign200-178",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:47},{id:"r2-080",contentRevision:2,order:80,mode:"campaign-200-r2",geometry:"square",features:["direction","walls"],title:"\u901A\u9053 \xB7 \u5899\u7684\u4EA4\u9519",chapter:8,chapterTitle:"\u7B2C8\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",role:"\u6536\u675F",targetDifficulty:52,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1,clue:10},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:1},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:1,y:2,w:1,h:1},{id:"c10",x:2,y:2,w:1,h:1},{id:"c11",x:3,y:2,w:1,h:1},{id:"c12",x:0,y:3,w:1,h:1},{id:"c13",x:1,y:3,w:1,h:1},{id:"c14",x:2,y:3,w:1,h:1,direction:"lr"},{id:"c15",x:3,y:3,w:1,h:1,direction:"lu"},{id:"c16",x:0,y:4,w:1,h:1,clue:1}],walls:[["c4","c5"],["c6","c7"]],previousId:"campaign200-108",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",objectiveScore:52},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:1,y:2,w:1,h:1,id:"c9"},{x:2,y:2,w:1,h:1,id:"c10"},{x:3,y:2,w:1,h:1,id:"c11"},{x:4,y:2,w:1,h:1,id:"c12"},{x:0,y:3,w:1,h:1,id:"c13"},{x:1,y:3,w:1,h:1,id:"c14",direction:"dr"},{x:2,y:3,w:1,h:1,id:"c15"},{x:3,y:3,w:1,h:1,id:"c16"},{x:4,y:3,w:1,h:1,id:"c17"},{x:0,y:4,w:1,h:1,id:"c18"},{x:1,y:4,w:1,h:1,id:"c19"},{x:3,y:4,w:1,h:1,id:"c20"},{x:4,y:4,w:1,h:1,id:"c21"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c7","c11"],initialOpen:!1}],walls:[["c1","c2"]],previousId:null,id:"r2-081",order:81,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:54,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 81",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:1,y:0,w:1,h:1,id:"c0"},{x:2,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3",clue:1},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12",direction:"dl"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:1,h:1,id:"c25"}],features:["direction","walls"],contentRevision:2,walls:[["c4","c5"]],previousId:null,id:"r2-082",order:82,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:56,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 82",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:0,y:1,w:1,h:1,id:"c3"},{x:1,y:1,w:1,h:1,id:"c4"},{x:2,y:1,w:1,h:1,id:"c5"},{x:3,y:1,w:1,h:1,id:"c6"},{x:0,y:2,w:1,h:1,id:"c7",parity:"even"},{x:1,y:2,w:1,h:1,id:"c8"},{x:2,y:2,w:1,h:1,id:"c9"},{x:3,y:2,w:1,h:2,id:"c10"},{x:0,y:3,w:1,h:1,id:"c11"},{x:1,y:3,w:1,h:1,id:"c12",direction:"ru"},{x:2,y:3,w:1,h:1,id:"c13"},{x:4,y:3,w:1,h:1,id:"c14"},{x:0,y:4,w:1,h:1,id:"c15"},{x:1,y:4,w:1,h:1,id:"c16"},{x:2,y:4,w:1,h:1,id:"c17"},{x:3,y:4,w:1,h:1,id:"c18"},{x:4,y:4,w:1,h:1,id:"c19"}],features:["big","direction","parity","walls"],contentRevision:2,walls:[["c3","c7"]],previousId:null,id:"r2-083",order:83,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:54,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 83",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:2,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c2",category:"circle"},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c4",category:"circle"},{x:1,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c6",category:"circle",direction:"du"},{x:4,y:1,w:1,h:1,id:"c7",category:"circle"},{x:0,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c8",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c10",category:"circle"},{x:4,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c12",category:"circle"},{x:2,y:3,w:1,h:1,id:"c13",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c15",category:"circle"},{x:0,y:4,w:1,h:1,id:"c16",category:"circle"},{x:1,y:4,w:1,h:1,id:"c17",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c18",category:"circle"},{x:3,y:4,w:2,h:1,id:"c19",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c6","c1"],initialOpen:!1}],previousId:null,id:"r2-084",order:84,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:54,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 84",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:2,h:1,id:"c2",category:"circle"},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"circle"},{x:2,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"triangle",direction:"lu"},{x:2,y:2,w:1,h:1,id:"c11",clue:1,category:"circle"},{x:3,y:2,w:1,h:1,id:"c12",category:"circle"},{x:4,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c14",category:"circle",clue:21},{x:1,y:3,w:1,h:1,id:"c15",category:"triangle",clue:22},{x:2,y:3,w:1,h:1,id:"c16",category:"circle"},{x:3,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c18",category:"circle"},{x:0,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c20",category:"circle"},{x:2,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c22",category:"circle"},{x:4,y:4,w:1,h:1,id:"c23",category:"triangle"}],features:["big","direction","alternation"],contentRevision:2,previousId:null,id:"r2-085",order:85,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:54,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 85",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",clue:1,category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c5",category:"circle"},{x:1,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c7",category:"circle"},{x:3,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c9",category:"circle"},{x:0,y:2,w:1,h:1,id:"c10",category:"triangle",direction:"du"},{x:1,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c11",category:"circle"},{x:3,y:2,w:2,h:1,id:"c12",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c13",category:"circle"},{x:2,y:3,w:1,h:1,id:"c14",category:"circle"},{x:3,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c16",category:"circle"},{x:0,y:4,w:1,h:1,id:"c17",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c18",category:"circle"},{x:2,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c20",category:"circle"},{x:4,y:4,w:1,h:1,id:"c21",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c13","c10"],initialOpen:!1}],previousId:null,id:"r2-086",order:86,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 86",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7",parity:"even"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17",clue:3},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:2,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20",clue:1},{x:3,y:4,w:1,h:1,id:"c21"},{x:4,y:4,w:1,h:1,id:"c22"},{x:5,y:4,w:1,h:1,id:"c23"}],features:["big","parity","walls"],contentRevision:2,walls:[["c9","c10"]],previousId:null,id:"r2-087",order:87,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 87",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4,clue:20},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0,clue:1},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4,parity:"odd"},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1,clue:8},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3,clue:12},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5,clue:16}],features:["parity","walls"],contentRevision:2,walls:[["c3","c9"],["c19","c20"]],previousId:null,id:"r2-088",order:88,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u5CF0\u503C",targetDifficulty:65,objectiveScore:65,title:"\u516D\u8FB9 \xB7 \u4EA4\u9519\u6311\u6218 88",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c1",clue:1,category:"circle"},{x:4,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:5,y:0,w:1,h:2,id:"c3",category:"circle"},{x:0,y:1,w:2,h:1,id:"c4",category:"circle"},{x:2,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c8",category:"circle"},{x:1,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c10",category:"circle"},{x:3,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c12",category:"circle"},{x:5,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c15",category:"circle"},{x:2,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c17",category:"circle"},{x:4,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c19",category:"circle",clue:19},{x:0,y:4,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c23",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c4","c5"]],previousId:null,id:"r2-089",order:89,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u56DE\u843D",targetDifficulty:47,objectiveScore:47,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 89",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c3",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"circle"},{x:2,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c7",category:"circle"},{x:0,y:2,w:1,h:1,id:"c8",category:"circle"},{x:1,y:2,w:2,h:1,id:"c9",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c10",category:"circle"},{x:4,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c13",category:"circle"},{x:2,y:3,w:1,h:1,id:"c14",clue:1,category:"circle"},{x:3,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c16",category:"circle",direction:"du"},{x:0,y:4,w:1,h:1,id:"c17",category:"circle"},{x:1,y:4,w:1,h:1,id:"c18",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c20",category:"circle"},{x:4,y:4,w:1,h:1,id:"c21",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c8","c12"],initialOpen:!1}],previousId:null,id:"r2-090",order:90,chapter:9,chapterTitle:"\u7B2C9\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u6536\u675F",targetDifficulty:52,objectiveScore:53,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 90",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6",parity:"odd"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11",clue:1},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13",direction:"dr"},{x:3,y:2,w:1,h:1,id:"c14",direction:"lu"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:1,h:1,id:"c20"},{x:4,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:0,y:4,w:1,h:1,id:"c23"},{x:1,y:4,w:2,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-091",order:91,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:57,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 91",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1,category:"circle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"triangle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:1,category:"triangle"},{id:"c12",q:2,r:2,category:"circle"},{id:"c13",q:2,r:3,category:"triangle"},{id:"c14",q:2,r:4,category:"circle"},{id:"c15",q:2,r:5,category:"triangle"},{id:"c16",q:3,r:1,category:"circle"},{id:"c17",q:3,r:2,category:"triangle"},{id:"c18",q:3,r:3,category:"circle"},{id:"c19",q:3,r:4,category:"circle"},{id:"c20",q:3,r:5,category:"circle"},{id:"c21",q:4,r:0,category:"triangle"},{id:"c22",q:4,r:1,category:"circle"},{id:"c23",q:4,r:3,category:"triangle"},{id:"c24",q:4,r:4,category:"triangle"},{id:"c25",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c2","c6"]],previousId:null,id:"r2-092",order:92,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:55,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 92",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:2,category:"circle"},{id:"c2",q:0,r:3,category:"triangle"},{id:"c3",q:0,r:5,category:"triangle"},{id:"c4",q:1,r:0,category:"circle"},{id:"c5",q:1,r:1,category:"triangle"},{id:"c6",q:1,r:2,category:"circle"},{id:"c7",q:1,r:3,category:"triangle"},{id:"c8",q:1,r:4,category:"circle"},{id:"c9",q:1,r:5,category:"circle"},{id:"c10",q:2,r:1,category:"triangle"},{id:"c11",q:2,r:2,clue:1,category:"circle"},{id:"c12",q:2,r:3,category:"triangle"},{id:"c13",q:2,r:4,category:"circle"},{id:"c14",q:2,r:5,category:"triangle"},{id:"c15",q:3,r:0,category:"circle"},{id:"c16",q:3,r:1,category:"triangle"},{id:"c17",q:3,r:2,category:"circle"},{id:"c18",q:3,r:3,category:"triangle"},{id:"c19",q:3,r:4,category:"circle"},{id:"c20",q:3,r:5,category:"triangle"},{id:"c21",q:4,r:0,category:"circle"},{id:"c22",q:4,r:1,category:"triangle"},{id:"c23",q:4,r:2,category:"circle"},{id:"c24",q:4,r:3,category:"triangle"},{id:"c25",q:4,r:4,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c13","c12"],initialOpen:!1}],walls:[["c18","c23"]],previousId:null,id:"r2-093",order:93,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:59,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 93",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17",clue:13},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"},{x:0,y:4,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21",clue:1},{x:2,y:4,w:1,h:1,id:"c22",direction:"ru"},{x:3,y:4,w:1,h:1,id:"c23"}],features:["direction","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-094",order:94,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:61,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 94",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",direction:"lr"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",parity:"even"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12",clue:1},{x:3,y:2,w:2,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15",clue:7},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17"},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c1","c2"],initialOpen:!1}],previousId:null,id:"r2-095",order:95,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 95",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c1",category:"circle"},{x:3,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c3",category:"circle"},{x:0,y:1,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"circle"},{x:3,y:1,w:1,h:2,id:"c6",category:"triangle"},{x:4,y:1,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c7",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c8",category:"circle"},{x:1,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c10",category:"circle"},{x:5,y:2,w:1,h:1,id:"c11",clue:1,category:"circle"},{x:0,y:3,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c13",category:"circle"},{x:2,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c15",category:"circle"},{x:4,y:3,w:1,h:1,id:"c16",category:"triangle",clue:22},{x:5,y:3,w:1,h:1,id:"c17",category:"circle"},{x:0,y:4,w:1,h:1,id:"c18",category:"circle"},{x:1,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c20",category:"circle"},{x:3,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c22",category:"circle"},{x:5,y:4,w:1,h:1,id:"c23",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c16","c22"],["c13","c14"]],previousId:null,id:"r2-096",order:96,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 96",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:1,clue:26},{id:"c7",q:1,r:2,clue:24},{id:"c8",q:1,r:3},{id:"c9",q:1,r:4},{id:"c10",q:1,r:5},{id:"c11",q:2,r:0,clue:7},{id:"c12",q:2,r:1},{id:"c13",q:2,r:2},{id:"c14",q:2,r:3,clue:1},{id:"c15",q:2,r:4},{id:"c16",q:2,r:5},{id:"c17",q:3,r:0},{id:"c18",q:3,r:1},{id:"c19",q:3,r:2},{id:"c20",q:3,r:3},{id:"c21",q:3,r:4,clue:15},{id:"c22",q:3,r:5},{id:"c23",q:4,r:0,parity:"even"},{id:"c24",q:4,r:1},{id:"c25",q:4,r:3},{id:"c26",q:4,r:4},{id:"c27",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c14","c15"]],previousId:null,id:"r2-097",order:97,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u7EC3\u4E60",targetDifficulty:57,objectiveScore:56,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 97",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"circle"},{id:"c5",q:0,r:5,category:"triangle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"circle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"circle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"triangle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"triangle",clue:22},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,clue:1,category:"circle"},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"circle"},{id:"c21",q:3,r:3,category:"triangle"},{id:"c22",q:3,r:4,category:"circle"},{id:"c23",q:3,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c20","c21"],["c4","c10"]],previousId:null,id:"r2-098",order:98,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u5CF0\u503C",targetDifficulty:65,objectiveScore:64,title:"\u516D\u8FB9 \xB7 \u4EA4\u9519\u6311\u6218 98",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"circle"},{x:1,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c7",category:"circle"},{x:3,y:1,w:1,h:1,id:"c8",category:"triangle",clue:22},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c11",category:"circle"},{x:2,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c13",category:"circle"},{x:4,y:2,w:1,h:1,id:"c14",category:"circle"},{x:0,y:3,w:1,h:1,id:"c15",category:"circle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:3,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c21",category:"circle"},{x:2,y:4,w:2,h:1,id:"c22",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c23",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c16","c21"],["c12","c17"]],previousId:null,id:"r2-099",order:99,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u56DE\u843D",targetDifficulty:47,objectiveScore:50,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 99",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",direction:"lr"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6",clue:9},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16",clue:1},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"}],features:["direction","walls"],contentRevision:2,walls:[["c9","c14"]],previousId:null,id:"r2-100",order:100,chapter:10,chapterTitle:"\u7B2C10\u7AE0 \xB7 \u4EA4\u9519\u63A8\u7406",playerBand:null,estimatedBand:"\u6E10\u8FDB\u7EC3\u4E60",role:"\u6536\u675F",targetDifficulty:52,objectiveScore:51,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 100",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0"},{x:2,y:0,w:1,h:1,id:"c1"},{x:4,y:0,w:2,h:1,id:"c2"},{x:0,y:1,w:1,h:1,id:"c3"},{x:1,y:1,w:1,h:1,id:"c4"},{x:2,y:1,w:1,h:1,id:"c5"},{x:3,y:1,w:1,h:1,id:"c6"},{x:4,y:1,w:1,h:1,id:"c7",clue:1},{x:5,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:2,id:"c9"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13",direction:"dr"},{x:5,y:2,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17",parity:"even"},{x:4,y:3,w:1,h:1,id:"c18"},{x:5,y:3,w:1,h:1,id:"c19"},{x:0,y:4,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21"},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c3","c9"],initialOpen:!1}],previousId:null,id:"r2-101",order:101,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 101",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:3,category:"circle"},{id:"c3",q:0,r:4,category:"circle"},{id:"c4",q:0,r:5,category:"triangle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"triangle"},{id:"c11",q:2,r:0,clue:1,category:"circle"},{id:"c12",q:2,r:1,category:"triangle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"circle"},{id:"c15",q:2,r:4,category:"triangle",clue:24},{id:"c16",q:2,r:5,category:"circle"},{id:"c17",q:3,r:0,category:"circle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"triangle",clue:26},{id:"c20",q:3,r:3,category:"triangle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"triangle"},{id:"c23",q:4,r:0,category:"triangle"},{id:"c24",q:4,r:1,category:"circle"},{id:"c25",q:4,r:2,category:"circle"},{id:"c26",q:4,r:3,category:"triangle"},{id:"c27",q:4,r:4,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c20","c21"]],previousId:null,id:"r2-102",order:102,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 102",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3,clue:1},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:1},{id:"c7",q:1,r:2},{id:"c8",q:1,r:3},{id:"c9",q:1,r:4,parity:"odd"},{id:"c10",q:1,r:5},{id:"c11",q:2,r:0},{id:"c12",q:2,r:2,clue:9},{id:"c13",q:2,r:3,clue:7},{id:"c14",q:2,r:4},{id:"c15",q:2,r:5},{id:"c16",q:3,r:0},{id:"c17",q:3,r:1},{id:"c18",q:3,r:2},{id:"c19",q:3,r:3},{id:"c20",q:3,r:4},{id:"c21",q:3,r:5},{id:"c22",q:4,r:0},{id:"c23",q:4,r:1},{id:"c24",q:4,r:2},{id:"c25",q:4,r:3},{id:"c26",q:4,r:4},{id:"c27",q:4,r:5}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c20","c15"],initialOpen:!1}],walls:[["c5","c9"]],previousId:null,id:"r2-103",order:103,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 103",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle",clue:26},{id:"c2",q:0,r:3,category:"circle"},{id:"c3",q:0,r:4,category:"circle"},{id:"c4",q:0,r:5,category:"triangle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"triangle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:1,category:"circle"},{id:"c12",q:2,r:2,category:"triangle"},{id:"c13",q:2,r:3,category:"circle"},{id:"c14",q:2,r:4,category:"triangle"},{id:"c15",q:2,r:5,category:"circle"},{id:"c16",q:3,r:0,category:"circle"},{id:"c17",q:3,r:1,category:"triangle"},{id:"c18",q:3,r:2,category:"circle"},{id:"c19",q:3,r:3,category:"triangle"},{id:"c20",q:3,r:4,category:"circle"},{id:"c21",q:3,r:5,category:"triangle"},{id:"c22",q:4,r:0,category:"triangle"},{id:"c23",q:4,r:1,category:"circle"},{id:"c24",q:4,r:2,category:"triangle"},{id:"c25",q:4,r:3,clue:1,category:"circle"},{id:"c26",q:4,r:4,category:"triangle"},{id:"c27",q:4,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c3","c8"]],previousId:null,id:"r2-104",order:104,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 104",caption:""},{id:"r2-105",contentRevision:2,order:105,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u9009\u62E9",chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",role:"\u7EC3\u4E60",targetDifficulty:62,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1,parity:"even"},{id:"c1",x:1,y:0,w:1,h:2},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:2,y:1,w:1,h:1},{id:"c6",x:3,y:1,w:1,h:1,clue:12},{id:"c7",x:0,y:2,w:1,h:1},{id:"c8",x:1,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1},{id:"c10",x:3,y:2,w:1,h:1,direction:"dl"},{id:"c11",x:0,y:3,w:1,h:1,parity:"odd"},{id:"c12",x:1,y:3,w:2,h:1},{id:"c13",x:3,y:3,w:1,h:1}],previousId:"campaign200-136",playerBand:"\u559C\u6B22\u7684\u672A\u77E5\u8D77\u70B9",estimatedBand:"\u559C\u6B22\u7684\u672A\u77E5\u8D77\u70B9",objectiveScore:88},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle",clue:23},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c6",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c7",clue:1,category:"circle"},{x:4,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:2,y:2,w:1,h:1,id:"c11",category:"triangle",direction:"lr"},{x:3,y:2,w:1,h:2,id:"c12",category:"circle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:5,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c15",category:"circle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:4,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c19",category:"circle",clue:19},{x:0,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c21",category:"circle"},{x:2,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c24",category:"circle"},{x:5,y:4,w:1,h:1,id:"c25",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c4","c5"],initialOpen:!1}],previousId:null,id:"r2-106",order:106,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 106",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle",clue:24},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"circle",clue:3},{id:"c5",q:0,r:5,category:"triangle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,clue:1,category:"circle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"circle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"triangle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"triangle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"triangle"},{id:"c19",q:3,r:1,category:"circle"},{id:"c20",q:3,r:2,category:"circle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"triangle"},{id:"c24",q:4,r:0,category:"circle"},{id:"c25",q:4,r:1,category:"triangle"},{id:"c26",q:4,r:2,category:"triangle"},{id:"c27",q:4,r:4,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c19","c25"]],previousId:null,id:"r2-107",order:107,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 107",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:2,id:"c1",parity:"even"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",parity:"even"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",clue:15},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:2,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25",clue:1},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","parity","walls"],contentRevision:2,walls:[["c14","c20"]],previousId:null,id:"r2-108",order:108,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:82,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 108",caption:""},{id:"r2-109",contentRevision:2,order:109,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","alternation","walls","rhythm-door"],title:"\u901A\u9053 \xB7 \u53CC\u8272 \xB7 \u5899 \xB7 \u95E8\u7684\u5C0F\u5F84",chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",role:"\u56DE\u843D",targetDifficulty:56,caption:"",cells:[{id:"c0",x:3,y:0,w:1,h:1,category:"circle"},{id:"c1",x:2,y:0,w:1,h:1,category:"triangle"},{id:"c2",x:1,y:0,w:1,h:1,category:"circle"},{id:"c3",x:0,y:0,w:1,h:2,category:"triangle"},{id:"c4",x:3,y:1,w:1,h:1,category:"triangle"},{id:"c5",x:2,y:1,w:1,h:1,clue:1,category:"circle"},{id:"c6",x:1,y:1,w:1,h:1,category:"circle"},{id:"c7",x:3,y:2,w:1,h:1,category:"circle"},{id:"c8",x:2,y:2,w:1,h:1,category:"triangle"},{id:"c9",x:0,y:2,w:2,h:1,category:"triangle"},{id:"c10",x:3,y:3,w:1,h:1,category:"triangle",direction:"lu"},{id:"c11",x:2,y:3,w:1,h:1,category:"circle"},{id:"c12",x:1,y:3,w:1,h:1,category:"triangle"},{id:"c13",x:0,y:3,w:1,h:1,category:"circle"}],doors:[{edge:["c2","c3"],initialOpen:!1}],walls:[["c4","c5"]],previousId:"campaign200-149",playerBand:"\u7565\u96BE",estimatedBand:"\u7565\u96BE",objectiveScore:65},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1",clue:9},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",direction:"du"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:1,h:1,id:"c20"},{x:4,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:0,y:4,w:1,h:1,id:"c23"},{x:1,y:4,w:1,h:1,id:"c24",clue:1},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c1","c7"],["c9","c10"]],previousId:null,id:"r2-110",order:110,chapter:11,chapterTitle:"\u7B2C11\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:60,objectiveScore:60,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 110",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:1,r:0,clue:1,category:"circle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"triangle"},{id:"c11",q:2,r:0,category:"triangle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"triangle",clue:16},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"circle"},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"circle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle"},{id:"c20",q:3,r:3,category:"circle"},{id:"c21",q:3,r:4,category:"triangle"},{id:"c22",q:3,r:5,category:"circle"},{id:"c23",q:4,r:0,category:"triangle"},{id:"c24",q:4,r:1,category:"circle"},{id:"c25",q:4,r:3,category:"triangle",clue:26},{id:"c26",q:4,r:4,category:"circle",clue:25},{id:"c27",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-111",order:111,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 111",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:2,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5",clue:23},{x:1,y:1,w:1,h:1,id:"c6",direction:"ru"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",parity:"odd"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:2,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24",direction:"lr"},{x:5,y:4,w:1,h:1,id:"c25",clue:1}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-112",order:112,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 112",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5",clue:1},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7",direction:"du"},{x:4,y:1,w:1,h:1,id:"c8"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:2,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21"},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24",direction:"lr"},{x:5,y:4,w:1,h:1,id:"c25",parity:"odd"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c8","c14"],initialOpen:!1}],previousId:null,id:"r2-113",order:113,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:83,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 113",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1,clue:3},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3,clue:1},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1,clue:7},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5,clue:24},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3,parity:"odd"},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1,clue:11},{id:"c20",q:3,r:2,clue:16},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,clue:27},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0,clue:12},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c5","c10"]],previousId:null,id:"r2-114",order:114,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 114",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",parity:"odd"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:2,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17"},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21",clue:22},{x:3,y:4,w:1,h:1,id:"c22",clue:21},{x:4,y:4,w:1,h:1,id:"c23"}],features:["big","parity","walls"],contentRevision:2,walls:[["c7","c11"],["c20","c21"]],previousId:null,id:"r2-115",order:115,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 115",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",direction:"du"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9",clue:6},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13",clue:1},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:2,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:2,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:0,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26",parity:"odd"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-116",order:116,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 116",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,clue:1,category:"circle"},{id:"c5",q:0,r:5,category:"triangle"},{id:"c6",q:1,r:0,category:"circle",clue:9},{id:"c7",q:1,r:1,category:"circle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"circle"},{id:"c11",q:2,r:0,category:"triangle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"circle"},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"triangle"},{id:"c20",q:3,r:3,category:"circle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"triangle",clue:26},{id:"c23",q:4,r:0,category:"circle"},{id:"c24",q:4,r:1,category:"circle"},{id:"c25",q:4,r:2,category:"triangle"},{id:"c26",q:4,r:4,category:"triangle"},{id:"c27",q:4,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c19","c24"]],previousId:null,id:"r2-117",order:117,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:60,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 117",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1,clue:7},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0,parity:"even"},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3,clue:22},{id:"c16",q:2,r:4,clue:19},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c4","c10"],["c2","c8"]],previousId:null,id:"r2-118",order:118,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:83,title:"\u516D\u8FB9 \xB7 \u4EA4\u9519\u6311\u6218 118",caption:""},{id:"r2-119",contentRevision:2,order:119,mode:"campaign-200-r2",geometry:"blocks",features:["big","direction","parity"],title:"\u901A\u9053 \xB7 \u5947\u5076\u7684\u4EA4\u9519",chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",role:"\u56DE\u843D",targetDifficulty:56,caption:"",cells:[{id:"c0",x:0,y:0,w:1,h:1},{id:"c1",x:1,y:0,w:1,h:1},{id:"c2",x:2,y:0,w:1,h:1},{id:"c3",x:3,y:0,w:1,h:1},{id:"c4",x:0,y:1,w:1,h:1},{id:"c5",x:1,y:1,w:1,h:2},{id:"c6",x:2,y:1,w:1,h:1},{id:"c7",x:3,y:1,w:1,h:1,clue:10},{id:"c8",x:0,y:2,w:1,h:1},{id:"c9",x:2,y:2,w:1,h:1,clue:1},{id:"c10",x:3,y:2,w:1,h:2,parity:"odd"},{id:"c11",x:0,y:3,w:1,h:1,direction:"ru"},{id:"c12",x:1,y:3,w:1,h:1},{id:"c13",x:2,y:3,w:1,h:1}],previousId:"campaign200-158",playerBand:"\u7565\u96BE",estimatedBand:"\u7565\u96BE",objectiveScore:49},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:1,r:0,clue:19},{id:"c6",q:1,r:1},{id:"c7",q:1,r:2},{id:"c8",q:1,r:3,parity:"even"},{id:"c9",q:1,r:4},{id:"c10",q:2,r:0},{id:"c11",q:2,r:1},{id:"c12",q:2,r:2,clue:11},{id:"c13",q:2,r:3},{id:"c14",q:2,r:4},{id:"c15",q:2,r:5},{id:"c16",q:3,r:0},{id:"c17",q:3,r:1},{id:"c18",q:3,r:2,clue:9},{id:"c19",q:3,r:3},{id:"c20",q:3,r:4,clue:1},{id:"c21",q:3,r:5},{id:"c22",q:4,r:0},{id:"c23",q:4,r:1},{id:"c24",q:4,r:2},{id:"c25",q:4,r:3},{id:"c26",q:4,r:4,clue:4},{id:"c27",q:4,r:5}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c22","c16"],initialOpen:!1}],walls:[["c6","c10"]],previousId:null,id:"r2-120",order:120,chapter:12,chapterTitle:"\u7B2C12\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:60,objectiveScore:59,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 120",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,category:"triangle"},{id:"c7",q:1,r:1,category:"circle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,clue:1,category:"circle"},{id:"c13",q:2,r:1,category:"triangle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"triangle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"triangle"},{id:"c19",q:3,r:1,category:"circle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"circle"},{id:"c23",q:3,r:5,category:"triangle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c22","c16"],initialOpen:!1}],walls:[["c3","c9"]],previousId:null,id:"r2-121",order:121,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:64,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 121",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:2,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:0,y:1,w:1,h:1,id:"c4",direction:"ru"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:4,y:1,w:1,h:1,id:"c7"},{x:5,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:1,id:"c9"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12",direction:"lr"},{x:4,y:2,w:1,h:1,id:"c13"},{x:5,y:2,w:1,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25",clue:24}],features:["direction","rhythm-door"],contentRevision:2,doors:[{edge:["c24","c25"],initialOpen:!1}],previousId:null,id:"r2-122",order:122,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:64,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 122",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",direction:"ru"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9",clue:1},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20",clue:26},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c24","c18"],initialOpen:!1}],walls:[["c8","c9"]],previousId:null,id:"r2-123",order:123,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:82,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 123",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:2,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7",parity:"even"},{x:4,y:1,w:1,h:1,id:"c8",direction:"lu"},{x:0,y:2,w:1,h:1,id:"c9",clue:1},{x:1,y:2,w:1,h:1,id:"c10",clue:19},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17"},{x:4,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-124",order:124,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 124",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle",clue:28},{x:2,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c2",category:"circle"},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"circle"},{x:3,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c7",category:"circle"},{x:5,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c10",category:"circle"},{x:3,y:2,w:1,h:1,id:"c11",clue:1,category:"circle"},{x:5,y:2,w:1,h:1,id:"c12",category:"circle"},{x:0,y:3,w:1,h:1,id:"c13",category:"circle"},{x:1,y:3,w:1,h:2,id:"c14",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c17",category:"circle"},{x:5,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c19",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c20",category:"circle"},{x:3,y:4,w:1,h:1,id:"c21",category:"circle"},{x:4,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c23",category:"circle"},{x:0,y:5,w:1,h:1,id:"c24",category:"circle"},{x:1,y:5,w:1,h:1,id:"c25",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c26",category:"circle"},{x:3,y:5,w:1,h:1,id:"c27",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c28",category:"circle"},{x:5,y:5,w:1,h:1,id:"c29",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c1","c5"],["c22","c28"]],previousId:null,id:"r2-125",order:125,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 125",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,clue:1,category:"circle"},{id:"c7",q:1,r:1,category:"circle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"circle"},{id:"c11",q:1,r:5,category:"triangle",clue:8},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"triangle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"triangle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"circle",clue:21},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"circle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"triangle"},{id:"c24",q:4,r:0,category:"triangle"},{id:"c25",q:4,r:1,category:"circle"},{id:"c26",q:4,r:2,category:"triangle"},{id:"c27",q:4,r:3,category:"circle"},{id:"c28",q:4,r:4,category:"triangle"},{id:"c29",q:4,r:5,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c7","c8"],initialOpen:!1}],walls:[["c17","c22"],["c20","c26"]],previousId:null,id:"r2-126",order:126,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:63,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 126",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,clue:1,category:"circle"},{id:"c7",q:1,r:1,category:"circle",clue:27},{id:"c8",q:1,r:2,category:"triangle",clue:28},{id:"c9",q:1,r:3,category:"circle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"triangle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"triangle"},{id:"c16",q:2,r:4,category:"circle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"circle"},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"triangle"},{id:"c24",q:4,r:0,category:"circle"},{id:"c25",q:4,r:1,category:"triangle"},{id:"c26",q:4,r:2,category:"circle"},{id:"c27",q:4,r:3,category:"circle"},{id:"c28",q:4,r:4,category:"triangle",clue:12},{id:"c29",q:4,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c14","c19"]],previousId:null,id:"r2-127",order:127,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:63,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 127",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1,clue:22},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2,clue:16},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5,parity:"odd"},{id:"c18",q:3,r:0,clue:19},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3,clue:9},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5,clue:1}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c20","c14"],initialOpen:!1}],walls:[["c1","c6"],["c14","c15"]],previousId:null,id:"r2-128",order:128,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:80,title:"\u516D\u8FB9 \xB7 \u4EA4\u9519\u6311\u6218 128",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",clue:1,category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"circle",clue:13},{x:5,y:1,w:1,h:1,id:"c11",category:"triangle"},{x:0,y:2,w:1,h:2,id:"c12",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c13",category:"circle"},{x:2,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c15",category:"circle"},{x:4,y:2,w:1,h:1,id:"c16",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c17",category:"circle"},{x:1,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:2,y:3,w:1,h:2,id:"c19",category:"circle"},{x:3,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle"},{x:5,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c23",category:"circle"},{x:1,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c25",category:"circle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c0","c1"]],previousId:null,id:"r2-129",order:129,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:56,objectiveScore:58,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 129",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7",clue:1},{x:3,y:1,w:1,h:1,id:"c8",direction:"du"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17",direction:"dr"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c0","c1"]],previousId:null,id:"r2-130",order:130,chapter:13,chapterTitle:"\u7B2C13\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:60,objectiveScore:59,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 130",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6",clue:1},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:1,id:"c9"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13"},{x:5,y:2,w:1,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17",clue:23},{x:3,y:3,w:1,h:1,id:"c18",direction:"du"},{x:4,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:1,h:1,id:"c25"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c24","c25"],initialOpen:!1}],walls:[["c4","c5"],["c5","c6"]],previousId:null,id:"r2-131",order:131,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 131",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2,clue:1},{id:"c3",q:0,r:3,clue:7},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4,parity:"even"},{id:"c11",q:1,r:5,clue:11},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1,clue:24},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4},{id:"c17",q:3,r:0,clue:26},{id:"c18",q:3,r:1},{id:"c19",q:3,r:2},{id:"c20",q:3,r:3,clue:19},{id:"c21",q:3,r:4},{id:"c22",q:3,r:5},{id:"c23",q:4,r:0},{id:"c24",q:4,r:2},{id:"c25",q:4,r:3},{id:"c26",q:4,r:4},{id:"c27",q:4,r:5}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c11","c10"],initialOpen:!1}],walls:[["c17","c18"]],previousId:null,id:"r2-132",order:132,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 132",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2,clue:25},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5,clue:13},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3,clue:17},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0,clue:28},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4,clue:11},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2,clue:1},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,clue:9},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2,parity:"odd"},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c3","c8"],["c21","c22"]],previousId:null,id:"r2-133",order:133,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:81,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 133",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:23},{x:1,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15",clue:1},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23",direction:"lr"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c6","c7"]],previousId:null,id:"r2-134",order:134,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 134",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0"},{x:3,y:0,w:1,h:1,id:"c1"},{x:4,y:0,w:1,h:1,id:"c2"},{x:5,y:0,w:1,h:1,id:"c3"},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8",parity:"even"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13",clue:1},{x:4,y:2,w:2,h:1,id:"c14"},{x:0,y:3,w:1,h:1,id:"c15"},{x:1,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"}],features:["big","parity","walls"],contentRevision:2,walls:[["c16","c17"]],previousId:null,id:"r2-135",order:135,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 135",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c1",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c2",category:"circle"},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"circle"},{x:2,y:1,w:1,h:1,id:"c6",category:"circle",direction:"dr"},{x:3,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c8",category:"circle"},{x:5,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c11",category:"circle"},{x:2,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c13",category:"circle"},{x:4,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c15",clue:1,category:"circle"},{x:0,y:3,w:1,h:1,id:"c16",category:"circle"},{x:1,y:3,w:1,h:2,id:"c17",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c18",category:"circle"},{x:3,y:3,w:1,h:1,id:"c19",category:"triangle",direction:"du"},{x:4,y:3,w:1,h:1,id:"c20",category:"circle"},{x:5,y:3,w:1,h:1,id:"c21",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c22",category:"triangle",clue:18},{x:3,y:4,w:1,h:1,id:"c23",category:"circle"},{x:4,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c25",category:"circle"}],features:["big","direction","alternation"],contentRevision:2,previousId:null,id:"r2-136",order:136,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 136",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",clue:1},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13",parity:"even"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:2,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:4,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:0,y:4,w:1,h:1,id:"c23"},{x:1,y:4,w:1,h:1,id:"c24"},{x:2,y:4,w:1,h:1,id:"c25"},{x:3,y:4,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"},{x:0,y:5,w:1,h:1,id:"c28"},{x:2,y:5,w:1,h:1,id:"c29"},{x:4,y:5,w:1,h:1,id:"c30"},{x:5,y:5,w:1,h:1,id:"c31"}],features:["big","parity","walls"],contentRevision:2,walls:[["c16","c17"],["c9","c15"],["c18","c23"]],previousId:null,id:"r2-137",order:137,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:62,objectiveScore:62,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 137",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",clue:21},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9",direction:"lu"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c13",parity:"odd"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:4,y:3,w:1,h:1,id:"c19"},{x:5,y:3,w:1,h:2,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:1,h:1,id:"c25"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c23","c24"],initialOpen:!1}],previousId:null,id:"r2-138",order:138,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:79,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 138",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:2,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",parity:"even"},{x:2,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:2,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:0,y:4,w:1,h:1,id:"c21",clue:1},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"}],features:["big","parity","walls"],contentRevision:2,walls:[["c8","c13"]],previousId:null,id:"r2-139",order:139,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:56,objectiveScore:53,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 139",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16",clue:1},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18",clue:26},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20",direction:"lu"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29",clue:4}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c12","c18"],initialOpen:!1}],walls:[["c9","c15"]],previousId:null,id:"r2-140",order:140,chapter:14,chapterTitle:"\u7B2C14\u7AE0 \xB7 \u533A\u57DF\u89C4\u5212",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:60,objectiveScore:60,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 140",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"circle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,clue:1,category:"circle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"triangle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"circle"},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"circle"},{id:"c19",q:3,r:2,category:"triangle"},{id:"c20",q:3,r:3,category:"triangle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:4,r:0,category:"circle"},{id:"c23",q:4,r:1,category:"triangle"},{id:"c24",q:4,r:2,category:"triangle"},{id:"c25",q:4,r:3,category:"circle"},{id:"c26",q:4,r:4,category:"circle"},{id:"c27",q:4,r:5,category:"triangle",clue:30},{id:"c28",q:5,r:1,category:"circle"},{id:"c29",q:5,r:3,category:"triangle"},{id:"c30",q:5,r:4,category:"triangle"},{id:"c31",q:5,r:5,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c6","c7"],initialOpen:!1}],walls:[["c6","c12"]],previousId:null,id:"r2-141",order:141,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:67,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 141",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1,category:"circle"},{id:"c1",q:0,r:2,category:"circle"},{id:"c2",q:0,r:3,category:"circle"},{id:"c3",q:0,r:4,category:"triangle"},{id:"c4",q:0,r:5,category:"circle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"triangle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"circle"},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle"},{id:"c20",q:3,r:3,category:"triangle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"circle"},{id:"c23",q:4,r:0,category:"circle"},{id:"c24",q:4,r:1,category:"triangle"},{id:"c25",q:4,r:2,category:"circle"},{id:"c26",q:4,r:3,category:"triangle"},{id:"c27",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c6","c11"]],previousId:null,id:"r2-142",order:142,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:67,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 142",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2",clue:1},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",direction:"lr"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22",clue:26},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:3,y:4,w:1,h:1,id:"c26"},{x:4,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c15","c16"]],previousId:null,id:"r2-143",order:143,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:67,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 143",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"circle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"triangle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"circle"},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"circle"},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"circle"},{id:"c21",q:3,r:3,category:"triangle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,clue:1,category:"circle"},{id:"c24",q:4,r:0,category:"circle"},{id:"c25",q:4,r:1,category:"triangle"},{id:"c26",q:4,r:4,category:"circle"},{id:"c27",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-144",order:144,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 144",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:2,y:0,w:2,h:1,id:"c0"},{x:4,y:0,w:1,h:1,id:"c1"},{x:0,y:1,w:1,h:1,id:"c2"},{x:1,y:1,w:1,h:1,id:"c3"},{x:2,y:1,w:1,h:1,id:"c4"},{x:3,y:1,w:1,h:1,id:"c5",direction:"lr"},{x:4,y:1,w:1,h:1,id:"c6"},{x:0,y:2,w:2,h:1,id:"c7"},{x:2,y:2,w:1,h:1,id:"c8"},{x:3,y:2,w:1,h:1,id:"c9"},{x:4,y:2,w:1,h:1,id:"c10"},{x:0,y:3,w:1,h:1,id:"c11"},{x:1,y:3,w:1,h:1,id:"c12"},{x:2,y:3,w:1,h:1,id:"c13"},{x:3,y:3,w:1,h:1,id:"c14"},{x:4,y:3,w:1,h:1,id:"c15"},{x:0,y:4,w:1,h:1,id:"c16"},{x:1,y:4,w:1,h:1,id:"c17",parity:"odd"},{x:2,y:4,w:1,h:1,id:"c18"},{x:3,y:4,w:1,h:1,id:"c19"}],features:["big","direction","parity","walls"],contentRevision:2,walls:[["c2","c7"]],previousId:null,id:"r2-145",order:145,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:"\u672A\u77E5\u8D77\u70B9\u5019\u9009",estimatedBand:"\u672A\u77E5\u8D77\u70B9\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:84,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 145",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c12"},{x:5,y:2,w:1,h:1,id:"c13",clue:1},{x:0,y:3,w:1,h:1,id:"c14",parity:"odd"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:4,y:3,w:1,h:2,id:"c17"},{x:5,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:5,y:4,w:1,h:1,id:"c23"},{x:0,y:5,w:1,h:1,id:"c24"},{x:1,y:5,w:1,h:1,id:"c25"},{x:2,y:5,w:1,h:1,id:"c26"},{x:3,y:5,w:1,h:1,id:"c27"}],features:["big","parity","walls"],contentRevision:2,walls:[["c20","c25"]],previousId:null,id:"r2-146",order:146,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 146",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:1,category:"triangle"},{id:"c1",q:0,r:2,clue:1,category:"circle"},{id:"c2",q:0,r:3,category:"circle"},{id:"c3",q:0,r:4,category:"triangle"},{id:"c4",q:0,r:5,category:"triangle"},{id:"c5",q:1,r:0,category:"circle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:0,category:"triangle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"triangle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"triangle",clue:18},{id:"c16",q:2,r:5,category:"triangle"},{id:"c17",q:3,r:0,category:"circle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle"},{id:"c20",q:3,r:3,category:"circle"},{id:"c21",q:3,r:4,category:"triangle"},{id:"c22",q:3,r:5,category:"circle"},{id:"c23",q:4,r:1,category:"circle"},{id:"c24",q:4,r:2,category:"triangle"},{id:"c25",q:4,r:3,category:"circle"},{id:"c26",q:4,r:4,category:"circle"},{id:"c27",q:4,r:5,category:"triangle"}],features:["alternation","walls"],contentRevision:2,walls:[["c7","c13"]],previousId:null,id:"r2-147",order:147,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 147",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle",direction:"dl"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c9",category:"circle"},{x:0,y:2,w:1,h:1,id:"c10",category:"circle"},{x:1,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:2,y:2,w:2,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:5,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c15",category:"circle"},{x:2,y:3,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c16",category:"circle"},{x:4,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c18",category:"circle"},{x:0,y:4,w:1,h:1,id:"c19",category:"circle"},{x:1,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c22",category:"circle"},{x:5,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c24",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c25",category:"circle"},{x:2,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle",direction:"ru"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c29","c28"],initialOpen:!1}],previousId:null,id:"r2-148",order:148,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:80,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 148",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:2,h:1,id:"c0"},{x:3,y:0,w:1,h:1,id:"c1"},{x:4,y:0,w:1,h:1,id:"c2"},{x:5,y:0,w:1,h:1,id:"c3",clue:1},{x:0,y:1,w:1,h:1,id:"c4"},{x:1,y:1,w:1,h:1,id:"c5"},{x:2,y:1,w:1,h:1,id:"c6"},{x:3,y:1,w:1,h:1,id:"c7"},{x:4,y:1,w:1,h:1,id:"c8"},{x:5,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15",clue:9},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17",clue:24},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:2,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25",parity:"even"},{x:5,y:4,w:1,h:1,id:"c26"},{x:1,y:5,w:1,h:1,id:"c27"},{x:2,y:5,w:1,h:1,id:"c28"},{x:3,y:5,w:1,h:1,id:"c29"},{x:4,y:5,w:1,h:1,id:"c30"},{x:5,y:5,w:1,h:1,id:"c31"}],features:["big","parity","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-149",order:149,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 149",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:2,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c3",category:"circle"},{x:5,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:2,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:4,y:2,w:1,h:1,id:"c11",category:"circle"},{x:5,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c13",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c14",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c15",category:"circle"},{x:3,y:3,w:1,h:1,id:"c16",clue:1,category:"circle"},{x:4,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c18",category:"circle"},{x:0,y:4,w:1,h:1,id:"c19",category:"circle"},{x:2,y:4,w:1,h:1,id:"c20",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c22",category:"circle"},{x:5,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c24",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c25",category:"circle"},{x:2,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c27","c28"]],previousId:null,id:"r2-150",order:150,chapter:15,chapterTitle:"\u7B2C15\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 150",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3",clue:1},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8",direction:"du"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11",clue:8},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20",clue:17},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c25","c19"],initialOpen:!1}],walls:[["c6","c7"]],previousId:null,id:"r2-151",order:151,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 151",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle",clue:3},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",clue:1,category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"circle"},{x:5,y:1,w:1,h:1,id:"c11",category:"triangle",direction:"lu"},{x:0,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c13",category:"circle"},{x:2,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c15",category:"circle"},{x:4,y:2,w:1,h:1,id:"c16",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c17",category:"circle"},{x:1,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c19",category:"circle"},{x:3,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle",direction:"du"},{x:0,y:4,w:2,h:1,id:"c22",category:"circle"},{x:2,y:4,w:1,h:1,id:"c23",category:"circle"},{x:3,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c26",category:"circle"},{x:0,y:5,w:1,h:1,id:"c27",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c28",category:"circle"},{x:2,y:5,w:1,h:1,id:"c29",category:"triangle"},{x:3,y:5,w:2,h:1,id:"c30",category:"circle"},{x:5,y:5,w:1,h:1,id:"c31",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c9","c10"]],previousId:null,id:"r2-152",order:152,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 152",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,clue:1,category:"circle"},{id:"c3",q:0,r:4,category:"triangle"},{id:"c4",q:0,r:5,category:"circle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"triangle"},{id:"c8",q:1,r:3,category:"circle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"triangle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"triangle"},{id:"c16",q:2,r:5,category:"circle",clue:27},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle",clue:19},{id:"c20",q:3,r:3,category:"circle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"triangle"},{id:"c23",q:4,r:0,category:"circle"},{id:"c24",q:4,r:1,category:"triangle"},{id:"c25",q:4,r:2,category:"triangle"},{id:"c26",q:4,r:3,category:"triangle"},{id:"c27",q:4,r:4,category:"circle"},{id:"c28",q:5,r:1,category:"circle"},{id:"c29",q:5,r:2,category:"triangle"},{id:"c30",q:5,r:3,category:"circle"},{id:"c31",q:5,r:4,category:"triangle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c30","c31"],initialOpen:!1}],walls:[["c19","c25"]],previousId:null,id:"r2-153",order:153,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:80,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 153",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:2,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12",parity:"even"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:2,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18",clue:8},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:1,y:4,w:1,h:1,id:"c22"},{x:2,y:4,w:1,h:1,id:"c23"},{x:3,y:4,w:1,h:1,id:"c24"},{x:4,y:4,w:1,h:1,id:"c25",clue:1},{x:5,y:4,w:1,h:1,id:"c26"},{x:0,y:5,w:1,h:1,id:"c27"},{x:1,y:5,w:1,h:1,id:"c28"},{x:3,y:5,w:1,h:1,id:"c29"},{x:4,y:5,w:1,h:1,id:"c30"},{x:5,y:5,w:1,h:1,id:"c31"}],features:["big","parity","walls"],contentRevision:2,walls:[["c9","c15"]],previousId:null,id:"r2-154",order:154,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:68,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 154",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:3,category:"triangle"},{id:"c3",q:0,r:4,category:"circle"},{id:"c4",q:0,r:5,category:"triangle",clue:24},{id:"c5",q:1,r:0,category:"circle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"circle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"triangle"},{id:"c13",q:2,r:2,category:"circle"},{id:"c14",q:2,r:3,category:"triangle"},{id:"c15",q:2,r:4,category:"triangle"},{id:"c16",q:3,r:0,category:"triangle"},{id:"c17",q:3,r:1,category:"circle"},{id:"c18",q:3,r:2,category:"triangle",clue:10},{id:"c19",q:3,r:3,category:"circle"},{id:"c20",q:3,r:4,category:"circle"},{id:"c21",q:3,r:5,category:"triangle"},{id:"c22",q:4,r:0,category:"circle"},{id:"c23",q:4,r:1,category:"triangle"},{id:"c24",q:4,r:2,category:"circle"},{id:"c25",q:4,r:3,category:"triangle"},{id:"c26",q:4,r:4,category:"triangle",clue:30},{id:"c27",q:4,r:5,category:"circle"},{id:"c28",q:5,r:2,category:"triangle"},{id:"c29",q:5,r:3,category:"circle"},{id:"c30",q:5,r:4,category:"circle"},{id:"c31",q:5,r:5,category:"triangle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c9","c8"],initialOpen:!1}],walls:[["c12","c17"]],previousId:null,id:"r2-155",order:155,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:68,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 155",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,clue:1,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"circle"},{id:"c5",q:0,r:5,category:"triangle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"circle"},{id:"c10",q:1,r:4,category:"triangle",clue:16},{id:"c11",q:1,r:5,category:"circle"},{id:"c12",q:2,r:0,category:"circle"},{id:"c13",q:2,r:1,category:"circle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"triangle"},{id:"c16",q:2,r:4,category:"triangle",clue:26},{id:"c17",q:2,r:5,category:"circle"},{id:"c18",q:3,r:0,category:"triangle"},{id:"c19",q:3,r:1,category:"triangle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"triangle"},{id:"c24",q:4,r:0,category:"circle"},{id:"c25",q:4,r:2,category:"circle"},{id:"c26",q:4,r:3,category:"triangle"},{id:"c27",q:4,r:4,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c22","c27"]],previousId:null,id:"r2-156",order:156,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:68,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 156",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2",clue:14},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17",clue:1},{x:0,y:3,w:1,h:2,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19",parity:"odd"},{x:2,y:3,w:2,h:1,id:"c20"},{x:4,y:3,w:1,h:1,id:"c21",clue:26},{x:5,y:3,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","parity","walls"],contentRevision:2,walls:[["c2","c8"],["c11","c17"]],previousId:null,id:"r2-157",order:157,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:68,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 157",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",parity:"even"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:2,h:1,id:"c13"},{x:3,y:2,w:2,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17",clue:1},{x:2,y:3,w:1,h:1,id:"c18",direction:"dl"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25",clue:26},{x:4,y:4,w:1,h:1,id:"c26",clue:25},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c5","c11"],initialOpen:!1}],previousId:null,id:"r2-158",order:158,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:85,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 158",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle",clue:21},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"circle"},{x:5,y:1,w:1,h:1,id:"c11",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:2,w:2,h:1,id:"c13",category:"circle"},{x:3,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c15",category:"triangle",direction:"du"},{x:5,y:2,w:1,h:1,id:"c16",category:"circle"},{x:0,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c18",category:"circle"},{x:2,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c20",category:"circle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle"},{x:5,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c23",category:"circle"},{x:1,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:2,y:4,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c25",category:"circle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"},{x:0,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c29",category:"circle"},{x:3,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c31",clue:1,category:"circle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c5","c11"],initialOpen:!1}],previousId:null,id:"r2-159",order:159,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:62,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 159",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",clue:28},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10",parity:"odd"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c13"},{x:3,y:2,w:1,h:1,id:"c14",clue:11},{x:4,y:2,w:1,h:2,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:2,y:3,w:1,h:1,id:"c17"},{x:3,y:3,w:1,h:1,id:"c18"},{x:5,y:3,w:1,h:1,id:"c19"},{x:0,y:4,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21",clue:1},{x:2,y:4,w:1,h:1,id:"c22"},{x:3,y:4,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"},{x:0,y:5,w:1,h:1,id:"c26"},{x:1,y:5,w:1,h:1,id:"c27"},{x:2,y:5,w:1,h:1,id:"c28"},{x:3,y:5,w:1,h:1,id:"c29"},{x:4,y:5,w:1,h:1,id:"c30"},{x:5,y:5,w:1,h:1,id:"c31"}],features:["big","parity","walls"],contentRevision:2,walls:[["c8","c13"]],previousId:null,id:"r2-160",order:160,chapter:16,chapterTitle:"\u7B2C16\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 160",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",direction:"dl"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13",clue:1},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15",clue:9},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","rhythm-door"],contentRevision:2,doors:[{edge:["c10","c16"],initialOpen:!1}],previousId:null,id:"r2-161",order:161,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 161",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1,clue:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3,clue:19},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1,clue:10},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3,clue:23},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0,parity:"odd"},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3,clue:27},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c10","c15"],["c28","c29"]],previousId:null,id:"r2-162",order:162,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:69,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 162",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:0,y:1,w:1,h:1,id:"c3",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c4",category:"circle"},{x:2,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:5,y:1,w:2,h:1,id:"c8",category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"circle"},{x:1,y:2,w:1,h:1,id:"c10",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c11",category:"circle"},{x:3,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:5,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:6,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c17",category:"circle",clue:19},{x:2,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c19",category:"circle"},{x:4,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c21",clue:1,category:"circle"},{x:6,y:3,w:1,h:1,id:"c22",category:"circle"},{x:0,y:4,w:1,h:1,id:"c23",category:"circle"},{x:1,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c25",category:"circle"},{x:3,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c27",category:"circle"},{x:5,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:6,y:4,w:1,h:1,id:"c29",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c31",category:"circle"},{x:2,y:5,w:1,h:1,id:"c32",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c33",category:"circle"},{x:4,y:5,w:1,h:1,id:"c34",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c35",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c3","c4"],["c27","c28"]],previousId:null,id:"r2-163",order:163,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:82,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 163",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",clue:1,category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c10",category:"circle"},{x:0,y:2,w:1,h:1,id:"c11",category:"circle"},{x:1,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c13",category:"circle"},{x:3,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c15",category:"circle",direction:"lr"},{x:5,y:2,w:1,h:1,id:"c16",category:"triangle"},{x:0,y:3,w:1,h:2,id:"c17",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c18",category:"circle"},{x:2,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c20",category:"circle"},{x:4,y:3,w:1,h:1,id:"c21",category:"triangle",clue:16},{x:5,y:3,w:1,h:1,id:"c22",category:"circle"},{x:1,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:2,y:4,w:2,h:1,id:"c24",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c25",category:"circle"},{x:5,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c27",category:"circle"},{x:1,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c29",category:"circle"},{x:4,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c31",category:"circle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c18","c19"]],previousId:null,id:"r2-164",order:164,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:65,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 164",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",clue:24},{x:2,y:0,w:1,h:1,id:"c1"},{x:5,y:0,w:1,h:1,id:"c2"},{x:0,y:1,w:1,h:1,id:"c3",clue:1},{x:1,y:1,w:1,h:1,id:"c4"},{x:2,y:1,w:1,h:1,id:"c5"},{x:3,y:1,w:1,h:1,id:"c6"},{x:4,y:1,w:1,h:1,id:"c7"},{x:5,y:1,w:1,h:1,id:"c8"},{x:0,y:2,w:1,h:1,id:"c9"},{x:1,y:2,w:1,h:1,id:"c10"},{x:2,y:2,w:1,h:1,id:"c11"},{x:3,y:2,w:1,h:1,id:"c12"},{x:4,y:2,w:1,h:1,id:"c13"},{x:0,y:3,w:1,h:1,id:"c14"},{x:1,y:3,w:1,h:1,id:"c15"},{x:2,y:3,w:1,h:1,id:"c16"},{x:3,y:3,w:1,h:1,id:"c17",parity:"even"},{x:4,y:3,w:1,h:1,id:"c18"},{x:5,y:3,w:1,h:1,id:"c19"},{x:0,y:4,w:1,h:1,id:"c20"},{x:1,y:4,w:1,h:1,id:"c21"},{x:2,y:4,w:1,h:1,id:"c22",direction:"dr"},{x:3,y:4,w:2,h:1,id:"c23"},{x:5,y:4,w:1,h:2,id:"c24"},{x:0,y:5,w:1,h:1,id:"c25"},{x:1,y:5,w:1,h:1,id:"c26"},{x:2,y:5,w:1,h:1,id:"c27"},{x:3,y:5,w:1,h:1,id:"c28"},{x:4,y:5,w:1,h:1,id:"c29"}],features:["big","direction","parity"],contentRevision:2,previousId:null,id:"r2-165",order:165,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:69,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 165",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9",direction:"du"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18",clue:1},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22",clue:26},{x:1,y:4,w:1,h:1,id:"c23",clue:25},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25",direction:"lr"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","rhythm-door"],contentRevision:2,doors:[{edge:["c27","c21"],initialOpen:!1}],previousId:null,id:"r2-166",order:166,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:69,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 166",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8",clue:15},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17",clue:1},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:1,h:1,id:"c20",clue:24},{x:4,y:3,w:1,h:1,id:"c21"},{x:5,y:3,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24",direction:"lu"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c12","c13"]],previousId:null,id:"r2-167",order:167,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:70,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 167",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:1,y:0,w:1,h:1,id:"c0",clue:1},{x:2,y:0,w:1,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:4,y:0,w:1,h:1,id:"c3"},{x:5,y:0,w:1,h:1,id:"c4",parity:"odd"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:2,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8",clue:23},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12"},{x:3,y:2,w:1,h:1,id:"c13",clue:26},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","parity","walls"],contentRevision:2,walls:[["c18","c24"]],previousId:null,id:"r2-168",order:168,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:86,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 168",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:1,category:"triangle"},{id:"c1",q:0,r:2,category:"circle"},{id:"c2",q:0,r:3,category:"triangle"},{id:"c3",q:0,r:4,category:"circle"},{id:"c4",q:0,r:5,category:"triangle"},{id:"c5",q:1,r:0,clue:1,category:"circle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:4,category:"circle"},{id:"c9",q:1,r:5,category:"triangle"},{id:"c10",q:2,r:0,category:"triangle"},{id:"c11",q:2,r:1,category:"circle"},{id:"c12",q:2,r:2,category:"triangle"},{id:"c13",q:2,r:3,category:"circle"},{id:"c14",q:2,r:4,category:"circle"},{id:"c15",q:2,r:5,category:"triangle"},{id:"c16",q:3,r:0,category:"circle"},{id:"c17",q:3,r:1,category:"triangle"},{id:"c18",q:3,r:2,category:"triangle"},{id:"c19",q:3,r:4,category:"triangle"},{id:"c20",q:3,r:5,category:"circle"},{id:"c21",q:4,r:0,category:"circle"},{id:"c22",q:4,r:1,category:"triangle"},{id:"c23",q:4,r:2,category:"circle"},{id:"c24",q:4,r:3,category:"triangle"},{id:"c25",q:4,r:4,category:"circle"},{id:"c26",q:4,r:5,category:"triangle"},{id:"c27",q:5,r:0,category:"circle"},{id:"c28",q:5,r:1,category:"triangle"},{id:"c29",q:5,r:3,category:"circle"},{id:"c30",q:5,r:4,category:"triangle"},{id:"c31",q:5,r:5,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c21","c22"],initialOpen:!1}],walls:[["c1","c6"]],previousId:null,id:"r2-169",order:169,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:60,title:"\u516D\u8FB9 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 169",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",clue:15},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8",direction:"lu"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:4,y:4,w:1,h:1,id:"c24"},{x:5,y:4,w:1,h:1,id:"c25"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c11","c17"],initialOpen:!1}],walls:[["c10","c11"]],previousId:null,id:"r2-170",order:170,chapter:17,chapterTitle:"\u7B2C17\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:66,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 170",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c6",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:2,y:2,w:1,h:1,id:"c11",category:"circle"},{x:3,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:0,y:3,w:1,h:1,id:"c14",category:"circle"},{x:1,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c17",category:"circle"},{x:4,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c19",category:"circle"},{x:0,y:4,w:2,h:1,id:"c20",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c21",category:"circle"},{x:3,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c23",category:"circle"},{x:5,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c25",clue:1,category:"circle"},{x:2,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c17","c18"],["c8","c9"],["c18","c23"]],previousId:null,id:"r2-171",order:171,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 171",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:2,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:3,y:0,w:1,h:2,id:"c1",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c3",category:"circle"},{x:0,y:1,w:1,h:1,id:"c4",category:"circle"},{x:1,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"circle"},{x:5,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:2,y:2,w:1,h:1,id:"c11",category:"triangle",direction:"lu"},{x:3,y:2,w:1,h:1,id:"c12",category:"circle"},{x:4,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c14",category:"circle"},{x:0,y:3,w:1,h:1,id:"c15",category:"circle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:3,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c19",category:"circle"},{x:5,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c21",category:"triangle",clue:30},{x:1,y:4,w:1,h:1,id:"c22",category:"circle"},{x:2,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c24",category:"circle"},{x:4,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c26",category:"circle"},{x:0,y:5,w:1,h:1,id:"c27",category:"circle"},{x:1,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c29",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c30",category:"circle"},{x:5,y:5,w:1,h:1,id:"c31",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c17","c23"]],previousId:null,id:"r2-172",order:172,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 172",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:2,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:2,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6",clue:26},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:0,y:2,w:1,h:1,id:"c10"},{x:1,y:2,w:1,h:1,id:"c11"},{x:2,y:2,w:1,h:1,id:"c12",parity:"odd"},{x:3,y:2,w:1,h:1,id:"c13",direction:"dr"},{x:4,y:2,w:1,h:1,id:"c14"},{x:5,y:2,w:1,h:1,id:"c15",clue:1},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23",clue:20},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c14","c13"],initialOpen:!1}],previousId:null,id:"r2-173",order:173,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:78,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 173",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1",direction:"lr"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5",clue:1},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11",clue:26},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:0,y:3,w:1,h:1,id:"c16"},{x:1,y:3,w:1,h:1,id:"c17"},{x:2,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22",clue:24},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["direction","walls"],contentRevision:2,walls:[["c15","c20"],["c9","c10"]],previousId:null,id:"r2-174",order:174,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:70,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 174",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle",clue:6},{x:2,y:0,w:1,h:1,id:"c2",category:"circle",direction:"dl"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c7",clue:1,category:"circle"},{x:2,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c9",category:"circle"},{x:4,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c11",category:"circle"},{x:0,y:2,w:1,h:1,id:"c12",category:"circle"},{x:1,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c14",category:"circle"},{x:3,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c16",category:"circle"},{x:5,y:2,w:1,h:1,id:"c17",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c18",category:"circle"},{x:1,y:3,w:1,h:1,id:"c19",category:"triangle",clue:24},{x:2,y:3,w:2,h:1,id:"c20",category:"circle"},{x:4,y:3,w:1,h:1,id:"c21",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c22",category:"circle"},{x:0,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c24",category:"circle"},{x:2,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c26",category:"circle"},{x:4,y:4,w:2,h:1,id:"c27",category:"triangle"}],features:["big","direction","alternation"],contentRevision:2,previousId:null,id:"r2-175",order:175,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:70,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 175",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c7",category:"circle"},{x:2,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:3,y:1,w:1,h:2,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"triangle",clue:26},{x:5,y:1,w:1,h:1,id:"c11",category:"circle"},{x:0,y:2,w:1,h:1,id:"c12",category:"circle"},{x:1,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c14",category:"circle"},{x:4,y:2,w:1,h:1,id:"c15",category:"circle"},{x:5,y:2,w:1,h:1,id:"c16",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c18",category:"circle"},{x:2,y:3,w:1,h:1,id:"c19",category:"triangle",clue:6},{x:3,y:3,w:1,h:1,id:"c20",category:"circle"},{x:4,y:3,w:2,h:1,id:"c21",clue:1,category:"circle"},{x:0,y:4,w:1,h:1,id:"c22",category:"circle"},{x:1,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c24",category:"circle"},{x:3,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c26",category:"circle"},{x:5,y:4,w:1,h:1,id:"c27",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c1","c7"]],previousId:null,id:"r2-176",order:176,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:71,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 176",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c10",category:"circle"},{x:0,y:2,w:1,h:1,id:"c11",category:"circle"},{x:1,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c13",category:"circle"},{x:3,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c15",clue:1,category:"circle"},{x:5,y:2,w:1,h:2,id:"c16",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c17",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c18",category:"circle",direction:"lr"},{x:2,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle"},{x:0,y:4,w:1,h:1,id:"c22",category:"circle"},{x:1,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c24",category:"circle"},{x:3,y:4,w:1,h:2,id:"c25",category:"circle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"},{x:0,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c29",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c30",category:"circle"},{x:5,y:5,w:1,h:1,id:"c31",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c2","c3"]],previousId:null,id:"r2-177",order:177,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:71,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 177",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4",parity:"even"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",clue:1},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:2,id:"c13"},{x:2,y:2,w:1,h:2,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15",direction:"lu"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19",clue:18},{x:4,y:3,w:1,h:1,id:"c20"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c20","c19"],initialOpen:!1}],previousId:null,id:"r2-178",order:178,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:86,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 178",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c3"},{x:1,y:1,w:1,h:1,id:"c4"},{x:2,y:1,w:1,h:1,id:"c5"},{x:5,y:1,w:1,h:1,id:"c6",clue:1},{x:0,y:2,w:1,h:1,id:"c7"},{x:1,y:2,w:1,h:1,id:"c8"},{x:2,y:2,w:1,h:1,id:"c9"},{x:3,y:2,w:1,h:1,id:"c10"},{x:4,y:2,w:1,h:1,id:"c11"},{x:5,y:2,w:1,h:1,id:"c12"},{x:0,y:3,w:1,h:1,id:"c13"},{x:1,y:3,w:1,h:1,id:"c14"},{x:2,y:3,w:1,h:1,id:"c15"},{x:3,y:3,w:1,h:1,id:"c16"},{x:4,y:3,w:1,h:1,id:"c17"},{x:5,y:3,w:1,h:1,id:"c18"},{x:0,y:4,w:1,h:1,id:"c19"},{x:1,y:4,w:1,h:1,id:"c20"},{x:2,y:4,w:1,h:1,id:"c21"},{x:3,y:4,w:1,h:1,id:"c22"},{x:4,y:4,w:1,h:1,id:"c23"},{x:5,y:4,w:1,h:2,id:"c24",parity:"odd"},{x:0,y:5,w:1,h:1,id:"c25"},{x:1,y:5,w:1,h:1,id:"c26"},{x:2,y:5,w:1,h:1,id:"c27"},{x:3,y:5,w:1,h:1,id:"c28"},{x:4,y:5,w:1,h:1,id:"c29"}],features:["big","parity","walls"],contentRevision:2,walls:[["c27","c28"]],previousId:null,id:"r2-179",order:179,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 179",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"circle"},{id:"c1",q:0,r:1,category:"triangle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:4,category:"triangle"},{id:"c4",q:0,r:5,category:"circle"},{id:"c5",q:1,r:0,category:"triangle"},{id:"c6",q:1,r:1,category:"triangle"},{id:"c7",q:1,r:2,category:"circle"},{id:"c8",q:1,r:3,category:"triangle"},{id:"c9",q:1,r:4,category:"circle"},{id:"c10",q:1,r:5,category:"triangle"},{id:"c11",q:2,r:0,category:"circle"},{id:"c12",q:2,r:1,category:"circle"},{id:"c13",q:2,r:2,category:"triangle"},{id:"c14",q:2,r:3,category:"circle"},{id:"c15",q:2,r:4,category:"triangle"},{id:"c16",q:2,r:5,category:"circle"},{id:"c17",q:3,r:0,category:"triangle"},{id:"c18",q:3,r:1,category:"triangle"},{id:"c19",q:3,r:2,category:"circle"},{id:"c20",q:3,r:3,category:"triangle"},{id:"c21",q:3,r:4,category:"circle"},{id:"c22",q:3,r:5,category:"triangle"},{id:"c23",q:4,r:0,clue:1,category:"circle"},{id:"c24",q:4,r:4,category:"triangle",clue:14},{id:"c25",q:4,r:5,category:"circle"}],features:["alternation","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c7","c8"],initialOpen:!1}],walls:[["c9","c10"],["c9","c15"]],previousId:null,id:"r2-180",order:180,chapter:18,chapterTitle:"\u7B2C18\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:66,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 180",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",clue:1,category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"circle"},{x:5,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:6,y:1,w:1,h:1,id:"c11",category:"circle"},{x:0,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c13",category:"circle"},{x:2,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c14",category:"circle"},{x:4,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c16",category:"circle"},{x:6,y:2,w:1,h:1,id:"c17",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c18",category:"circle"},{x:1,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c21",category:"circle"},{x:5,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:6,y:3,w:1,h:1,id:"c23",category:"circle"},{x:0,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:1,y:4,w:2,h:1,id:"c25",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"},{x:6,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c29",category:"circle"},{x:1,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c31",category:"circle"},{x:3,y:5,w:1,h:1,id:"c32",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c33",category:"circle"},{x:5,y:5,w:1,h:1,id:"c34",category:"triangle",clue:22},{x:6,y:5,w:1,h:1,id:"c35",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c22","c23"]],previousId:null,id:"r2-181",order:181,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:66,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 181",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7",clue:23},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16",clue:1},{x:5,y:2,w:1,h:1,id:"c17",direction:"dl"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22"},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24"},{x:1,y:4,w:1,h:1,id:"c25"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c12","c18"],initialOpen:!1}],walls:[["c1","c7"]],previousId:null,id:"r2-182",order:182,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:72,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 182",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4,clue:12},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2,clue:17},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1,clue:18},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3},{id:"c16",q:2,r:4,parity:"odd"},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2,clue:1},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,clue:7},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c15","c16"]],previousId:null,id:"r2-183",order:183,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:72,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 183",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c5",category:"triangle",clue:32},{x:2,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c7",clue:1,category:"circle"},{x:4,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c9",category:"circle"},{x:6,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c11",category:"circle"},{x:2,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:2,h:1,id:"c13",category:"triangle"},{x:6,y:2,w:1,h:1,id:"c14",category:"circle"},{x:0,y:3,w:1,h:1,id:"c15",category:"circle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:3,y:3,w:1,h:1,id:"c18",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c19",category:"circle"},{x:5,y:3,w:1,h:1,id:"c20",category:"triangle"},{x:6,y:3,w:1,h:1,id:"c21",category:"circle"},{x:0,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:1,y:4,w:1,h:1,id:"c23",category:"circle"},{x:2,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c25",category:"circle"},{x:4,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c27",category:"circle"},{x:6,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c29",category:"circle"},{x:1,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c31",category:"circle"},{x:3,y:5,w:1,h:1,id:"c32",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c33",category:"circle"},{x:5,y:5,w:1,h:1,id:"c34",category:"triangle"},{x:6,y:5,w:1,h:1,id:"c35",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c15","c16"],["c24","c31"]],previousId:null,id:"r2-184",order:184,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:69,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 184",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0,clue:18},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2,parity:"even"},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0,clue:20},{id:"c13",q:2,r:1,clue:22},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3,clue:11},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4},{id:"c23",q:3,r:5,clue:4}],features:["parity","walls","rhythm-door"],contentRevision:2,doors:[{edge:["c5","c4"],initialOpen:!1}],walls:[["c13","c14"]],previousId:null,id:"r2-185",order:185,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:"\u672A\u77E5\u8D77\u70B9\u5019\u9009",estimatedBand:"\u672A\u77E5\u8D77\u70B9\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:81,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 185",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2,clue:13},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1},{id:"c8",q:1,r:2},{id:"c9",q:1,r:3,clue:17},{id:"c10",q:1,r:4},{id:"c11",q:1,r:5},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2},{id:"c15",q:2,r:3,parity:"odd"},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1,clue:5},{id:"c20",q:3,r:2,clue:1},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,clue:28},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c19","c24"],["c1","c2"]],previousId:null,id:"r2-186",order:186,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:72,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 186",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",clue:1,category:"circle"},{x:3,y:0,w:1,h:1,id:"c2",category:"circle",clue:11},{x:4,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c4",category:"circle"},{x:6,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"circle"},{x:5,y:1,w:1,h:1,id:"c11",category:"triangle"},{x:6,y:1,w:1,h:1,id:"c12",category:"circle",direction:"lu"},{x:0,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c14",category:"circle"},{x:2,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c16",category:"circle"},{x:4,y:2,w:1,h:1,id:"c17",category:"triangle"},{x:5,y:2,w:1,h:1,id:"c18",category:"circle"},{x:6,y:2,w:1,h:1,id:"c19",category:"triangle"},{x:0,y:3,w:1,h:2,id:"c20",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c21",category:"circle"},{x:4,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:5,y:3,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c23",category:"circle"},{x:1,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c25",category:"circle"},{x:3,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c27",category:"circle"},{x:6,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c29",category:"circle"},{x:1,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c31",category:"circle"},{x:3,y:5,w:1,h:1,id:"c32",category:"triangle"},{x:4,y:5,w:1,h:1,id:"c33",category:"circle"},{x:5,y:5,w:1,h:1,id:"c34",category:"triangle"},{x:6,y:5,w:1,h:1,id:"c35",category:"circle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c31","c30"],initialOpen:!1}],previousId:null,id:"r2-187",order:187,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 187",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:2,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:1,y:2,w:1,h:1,id:"c12",clue:20},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14",direction:"du"},{x:4,y:2,w:1,h:1,id:"c15",clue:1},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19"},{x:3,y:3,w:1,h:1,id:"c20",parity:"odd"},{x:4,y:3,w:2,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24",direction:"lr"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c24","c23"],initialOpen:!1}],previousId:null,id:"r2-188",order:188,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:78,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 188",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c1",category:"circle"},{x:3,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c3",category:"circle"},{x:0,y:1,w:1,h:1,id:"c4",category:"circle"},{x:2,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c6",category:"circle"},{x:4,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c8",clue:1,category:"circle"},{x:0,y:2,w:1,h:1,id:"c9",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c10",category:"circle"},{x:2,y:2,w:1,h:1,id:"c11",category:"circle"},{x:3,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c13",category:"circle"},{x:5,y:2,w:1,h:1,id:"c14",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:2,y:3,w:1,h:1,id:"c17",category:"circle"},{x:3,y:3,w:1,h:1,id:"c18",category:"circle"},{x:4,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c20",category:"circle"},{x:0,y:4,w:1,h:1,id:"c21",category:"circle"},{x:1,y:4,w:2,h:1,id:"c22",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c23",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:0,y:5,w:1,h:1,id:"c25",category:"triangle"},{x:1,y:5,w:1,h:1,id:"c26",category:"circle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c1","c2"]],previousId:null,id:"r2-189",order:189,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:60,title:"\u62FC\u5757 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 189",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"circle"},{id:"c3",q:0,r:3,category:"triangle"},{id:"c4",q:0,r:4,category:"circle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,category:"circle"},{id:"c7",q:1,r:1,category:"triangle"},{id:"c8",q:1,r:2,category:"circle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"triangle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"triangle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"triangle"},{id:"c16",q:2,r:4,category:"circle"},{id:"c17",q:2,r:5,category:"triangle"},{id:"c18",q:3,r:0,category:"circle"},{id:"c19",q:3,r:1,clue:1,category:"circle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"circle"},{id:"c22",q:3,r:4,category:"triangle"},{id:"c23",q:3,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c13","c14"],["c11","c16"]],previousId:null,id:"r2-190",order:190,chapter:19,chapterTitle:"\u7B2C19\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:66,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 190",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:6,y:0,w:1,h:1,id:"c6",category:"circle"},{x:0,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c8",category:"circle"},{x:2,y:1,w:1,h:1,id:"c9",category:"triangle",clue:16},{x:3,y:1,w:1,h:1,id:"c10",category:"circle"},{x:4,y:1,w:1,h:1,id:"c11",category:"triangle",clue:14},{x:5,y:1,w:1,h:1,id:"c12",category:"circle"},{x:6,y:1,w:1,h:1,id:"c13",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c14",category:"circle"},{x:1,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c16",category:"circle"},{x:3,y:2,w:1,h:1,id:"c17",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c18",category:"circle"},{x:5,y:2,w:1,h:1,id:"c19",category:"triangle",direction:"lu"},{x:6,y:2,w:1,h:1,id:"c20",category:"circle"},{x:1,y:3,w:1,h:1,id:"c21",category:"circle"},{x:2,y:3,w:1,h:1,id:"c22",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c23",category:"circle"},{x:4,y:3,w:1,h:1,id:"c24",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c25",category:"circle"},{x:6,y:3,w:1,h:1,id:"c26",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c27",category:"circle"},{x:1,y:4,w:1,h:1,id:"c28",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c29",category:"circle"},{x:3,y:4,w:1,h:1,id:"c30",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c31",category:"circle"},{x:5,y:4,w:1,h:1,id:"c32",category:"triangle"},{x:0,y:5,w:2,h:1,id:"c33",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c34",category:"circle"},{x:4,y:5,w:1,h:1,id:"c35",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c21","c22"],initialOpen:!1}],previousId:null,id:"r2-191",order:191,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:64,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 191",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:2,h:1,id:"c1"},{x:3,y:0,w:1,h:1,id:"c2"},{x:5,y:0,w:1,h:1,id:"c3"},{x:6,y:0,w:1,h:1,id:"c4"},{x:0,y:1,w:1,h:1,id:"c5"},{x:1,y:1,w:1,h:1,id:"c6"},{x:2,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9"},{x:5,y:1,w:1,h:1,id:"c10"},{x:6,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12",direction:"du"},{x:2,y:2,w:1,h:1,id:"c13"},{x:3,y:2,w:1,h:1,id:"c14",clue:1},{x:4,y:2,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c15",parity:"odd"},{x:6,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:2,y:3,w:1,h:1,id:"c19",direction:"lu"},{x:3,y:3,w:1,h:1,id:"c20"},{x:6,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"},{x:6,y:4,w:1,h:1,id:"c28"},{x:0,y:5,w:1,h:1,id:"c29"},{x:1,y:5,w:1,h:1,id:"c30"},{x:2,y:5,w:1,h:1,id:"c31"},{x:3,y:5,w:1,h:1,id:"c32",direction:"ru"},{x:4,y:5,w:1,h:1,id:"c33"},{x:5,y:5,w:1,h:1,id:"c34"},{x:6,y:5,w:1,h:1,id:"c35"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c23","c24"],initialOpen:!1}],previousId:null,id:"r2-192",order:192,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:71,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 192",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:2,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:5,y:0,w:1,h:1,id:"c5",category:"triangle"},{x:0,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c7",category:"circle"},{x:3,y:1,w:1,h:1,id:"c8",category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c10",category:"circle"},{x:1,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c12",category:"circle"},{x:3,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c14",category:"circle"},{x:5,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c17",category:"circle"},{x:2,y:3,w:1,h:1,id:"c18",category:"triangle",clue:28},{x:3,y:3,w:2,h:2,shape:[[0,0],[0,1],[1,0]],id:"c19",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c20",category:"circle"},{x:0,y:4,w:1,h:1,id:"c21",category:"circle"},{x:1,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c23",category:"circle"},{x:4,y:4,w:1,h:1,id:"c24",category:"circle"},{x:5,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:3,y:5,w:1,h:1,id:"c27",category:"circle"},{x:4,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"circle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c19","c20"],["c3","c8"]],previousId:null,id:"r2-193",order:193,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:82,objectiveScore:78,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 193",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0},{id:"c1",q:0,r:1},{id:"c2",q:0,r:2},{id:"c3",q:0,r:3},{id:"c4",q:0,r:4},{id:"c5",q:0,r:5},{id:"c6",q:1,r:0},{id:"c7",q:1,r:1,clue:27},{id:"c8",q:1,r:2,clue:1},{id:"c9",q:1,r:3},{id:"c10",q:1,r:4,clue:12},{id:"c11",q:1,r:5,clue:22},{id:"c12",q:2,r:0},{id:"c13",q:2,r:1},{id:"c14",q:2,r:2,clue:9},{id:"c15",q:2,r:3,clue:11},{id:"c16",q:2,r:4},{id:"c17",q:2,r:5},{id:"c18",q:3,r:0},{id:"c19",q:3,r:1},{id:"c20",q:3,r:2},{id:"c21",q:3,r:3},{id:"c22",q:3,r:4,parity:"odd"},{id:"c23",q:3,r:5},{id:"c24",q:4,r:0},{id:"c25",q:4,r:1},{id:"c26",q:4,r:2},{id:"c27",q:4,r:3},{id:"c28",q:4,r:4},{id:"c29",q:4,r:5}],features:["parity","walls"],contentRevision:2,walls:[["c0","c1"],["c20","c25"]],previousId:null,id:"r2-194",order:194,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:59,title:"\u516D\u8FB9 \xB7 \u51FA\u53E3\u5E03\u5C40 194",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",clue:1,category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:2,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:4,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:5,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c7",category:"circle"},{x:3,y:1,w:1,h:1,id:"c8",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c9",category:"circle"},{x:5,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c11",category:"circle"},{x:1,y:2,w:1,h:1,id:"c12",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c14",category:"circle"},{x:4,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c16",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c17",category:"circle"},{x:2,y:3,w:1,h:1,id:"c18",category:"circle"},{x:3,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:4,y:3,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"circle"},{x:2,y:4,w:1,h:1,id:"c22",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c23",category:"circle"},{x:4,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:5,y:4,w:1,h:1,id:"c25",category:"circle"},{x:1,y:5,w:1,h:1,id:"c26",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c27",category:"circle"},{x:3,y:5,w:1,h:1,id:"c28",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c29",category:"triangle"}],features:["big","alternation","walls"],contentRevision:2,walls:[["c19","c20"]],previousId:null,id:"r2-195",order:195,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:59,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 195",caption:""},{mode:"campaign-200-r2",geometry:"square",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:1,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6",clue:1},{x:1,y:1,w:1,h:1,id:"c7"},{x:2,y:1,w:1,h:1,id:"c8"},{x:3,y:1,w:1,h:1,id:"c9"},{x:4,y:1,w:1,h:1,id:"c10"},{x:5,y:1,w:1,h:1,id:"c11"},{x:0,y:2,w:1,h:1,id:"c12"},{x:1,y:2,w:1,h:1,id:"c13"},{x:2,y:2,w:1,h:1,id:"c14"},{x:3,y:2,w:1,h:1,id:"c15"},{x:4,y:2,w:1,h:1,id:"c16"},{x:5,y:2,w:1,h:1,id:"c17"},{x:0,y:3,w:1,h:1,id:"c18"},{x:1,y:3,w:1,h:1,id:"c19"},{x:2,y:3,w:1,h:1,id:"c20"},{x:3,y:3,w:1,h:1,id:"c21"},{x:4,y:3,w:1,h:1,id:"c22",clue:23},{x:5,y:3,w:1,h:1,id:"c23"},{x:0,y:4,w:1,h:1,id:"c24",clue:4},{x:1,y:4,w:1,h:1,id:"c25",direction:"lu"},{x:2,y:4,w:1,h:1,id:"c26"},{x:3,y:4,w:1,h:1,id:"c27"},{x:4,y:4,w:1,h:1,id:"c28"},{x:5,y:4,w:1,h:1,id:"c29"}],features:["direction","walls"],contentRevision:2,walls:[["c13","c14"]],previousId:null,id:"r2-196",order:196,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:59,title:"\u65B9\u683C \xB7 \u51FA\u53E3\u5E03\u5C40 196",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"triangle"},{x:1,y:0,w:1,h:1,id:"c1",clue:1,category:"circle"},{x:2,y:0,w:1,h:1,id:"c2",category:"triangle"},{x:3,y:0,w:1,h:1,id:"c3",category:"circle"},{x:5,y:0,w:1,h:1,id:"c4",category:"triangle"},{x:6,y:0,w:1,h:1,id:"c5",category:"circle"},{x:0,y:1,w:1,h:1,id:"c6",category:"circle"},{x:1,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:2,y:1,w:1,h:1,id:"c8",category:"circle"},{x:3,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:4,y:1,w:1,h:1,id:"c10",category:"triangle"},{x:5,y:1,w:1,h:1,id:"c11",category:"circle"},{x:6,y:1,w:1,h:1,id:"c12",category:"triangle",clue:34},{x:0,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:1,y:2,w:1,h:1,id:"c14",category:"circle"},{x:2,y:2,w:1,h:1,id:"c15",category:"triangle"},{x:3,y:2,w:1,h:1,id:"c16",category:"circle",direction:"du"},{x:4,y:2,w:1,h:1,id:"c17",category:"circle"},{x:5,y:2,w:1,h:1,id:"c18",category:"triangle"},{x:0,y:3,w:1,h:1,id:"c19",category:"circle"},{x:1,y:3,w:2,h:2,shape:[[0,0],[1,0],[0,1]],id:"c20",category:"circle"},{x:3,y:3,w:2,h:1,id:"c21",category:"triangle"},{x:5,y:3,w:1,h:1,id:"c22",category:"circle"},{x:6,y:3,w:1,h:1,id:"c23",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c24",category:"triangle"},{x:2,y:4,w:1,h:1,id:"c25",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c26",category:"triangle"},{x:4,y:4,w:1,h:1,id:"c27",category:"circle"},{x:6,y:4,w:1,h:1,id:"c28",category:"circle"},{x:0,y:5,w:1,h:1,id:"c29",category:"circle"},{x:1,y:5,w:1,h:1,id:"c30",category:"triangle"},{x:2,y:5,w:1,h:1,id:"c31",category:"circle"},{x:3,y:5,w:1,h:1,id:"c32",category:"circle"},{x:4,y:5,w:1,h:1,id:"c33",category:"triangle"},{x:5,y:5,w:1,h:1,id:"c34",category:"circle"},{x:6,y:5,w:1,h:1,id:"c35",category:"triangle"}],features:["big","direction","alternation","rhythm-door"],contentRevision:2,doors:[{edge:["c14","c7"],initialOpen:!1}],previousId:null,id:"r2-197",order:197,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u7EC3\u4E60",targetDifficulty:67,objectiveScore:61,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 197",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0"},{x:1,y:0,w:1,h:1,id:"c1"},{x:2,y:0,w:1,h:2,id:"c2"},{x:3,y:0,w:1,h:1,id:"c3"},{x:4,y:0,w:1,h:1,id:"c4"},{x:5,y:0,w:1,h:1,id:"c5"},{x:0,y:1,w:1,h:1,id:"c6"},{x:1,y:1,w:1,h:1,id:"c7"},{x:3,y:1,w:1,h:1,id:"c8"},{x:4,y:1,w:1,h:1,id:"c9",clue:26},{x:5,y:1,w:1,h:1,id:"c10"},{x:0,y:2,w:1,h:1,id:"c11",parity:"even"},{x:1,y:2,w:1,h:1,id:"c12"},{x:2,y:2,w:1,h:2,id:"c13",clue:1},{x:3,y:2,w:1,h:1,id:"c14"},{x:4,y:2,w:1,h:1,id:"c15"},{x:5,y:2,w:1,h:1,id:"c16"},{x:0,y:3,w:1,h:1,id:"c17"},{x:1,y:3,w:1,h:1,id:"c18"},{x:3,y:3,w:1,h:1,id:"c19"},{x:4,y:3,w:1,h:1,id:"c20",direction:"du"},{x:5,y:3,w:1,h:1,id:"c21"},{x:0,y:4,w:1,h:1,id:"c22"},{x:1,y:4,w:1,h:1,id:"c23"},{x:2,y:4,w:1,h:1,id:"c24"},{x:3,y:4,w:1,h:1,id:"c25"},{x:4,y:4,w:1,h:1,id:"c26"},{x:5,y:4,w:1,h:1,id:"c27"}],features:["big","direction","parity","rhythm-door"],contentRevision:2,doors:[{edge:["c21","c16"],initialOpen:!1}],previousId:null,id:"r2-198",order:198,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u6DF1\u60F3\u5019\u9009",role:"\u5CF0\u503C",targetDifficulty:82,objectiveScore:78,title:"\u62FC\u5757 \xB7 \u4EA4\u9519\u6311\u6218 198",caption:""},{mode:"campaign-200-r2",geometry:"hex",cells:[{id:"c0",q:0,r:0,category:"triangle"},{id:"c1",q:0,r:1,category:"circle"},{id:"c2",q:0,r:2,category:"triangle"},{id:"c3",q:0,r:3,category:"circle"},{id:"c4",q:0,r:4,category:"triangle"},{id:"c5",q:0,r:5,category:"circle"},{id:"c6",q:1,r:0,clue:1,category:"circle"},{id:"c7",q:1,r:1,category:"circle"},{id:"c8",q:1,r:2,category:"triangle"},{id:"c9",q:1,r:3,category:"triangle"},{id:"c10",q:1,r:4,category:"circle"},{id:"c11",q:1,r:5,category:"triangle"},{id:"c12",q:2,r:0,category:"triangle"},{id:"c13",q:2,r:1,category:"triangle"},{id:"c14",q:2,r:2,category:"circle"},{id:"c15",q:2,r:3,category:"circle"},{id:"c16",q:2,r:4,category:"circle"},{id:"c17",q:2,r:5,category:"triangle"},{id:"c18",q:3,r:0,category:"circle"},{id:"c19",q:3,r:1,category:"circle"},{id:"c20",q:3,r:2,category:"triangle"},{id:"c21",q:3,r:3,category:"triangle"},{id:"c22",q:3,r:4,category:"triangle",clue:22},{id:"c23",q:3,r:5,category:"circle"}],features:["alternation","walls"],contentRevision:2,walls:[["c15","c20"]],previousId:null,id:"r2-199",order:199,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u56DE\u843D",targetDifficulty:61,objectiveScore:68,title:"\u516D\u8FB9 \xB7 \u6362\u4E00\u79CD\u601D\u8DEF 199",caption:""},{mode:"campaign-200-r2",geometry:"blocks",cells:[{x:0,y:0,w:1,h:1,id:"c0",category:"circle"},{x:1,y:0,w:1,h:1,id:"c1",category:"triangle"},{x:2,y:0,w:1,h:1,id:"c2",category:"circle"},{x:3,y:0,w:1,h:1,id:"c3",category:"triangle"},{x:4,y:0,w:1,h:1,id:"c4",category:"circle"},{x:0,y:1,w:1,h:1,id:"c5",category:"triangle"},{x:1,y:1,w:1,h:1,id:"c6",category:"circle"},{x:2,y:1,w:1,h:1,id:"c7",category:"triangle"},{x:3,y:1,w:1,h:1,id:"c8",clue:1,category:"circle"},{x:4,y:1,w:1,h:1,id:"c9",category:"triangle"},{x:0,y:2,w:1,h:1,id:"c10",category:"circle"},{x:1,y:2,w:1,h:1,id:"c11",category:"triangle"},{x:2,y:2,w:1,h:1,id:"c12",category:"circle",direction:"ru"},{x:3,y:2,w:1,h:1,id:"c13",category:"triangle"},{x:4,y:2,w:1,h:1,id:"c14",category:"circle"},{x:0,y:3,w:1,h:1,id:"c15",category:"triangle"},{x:1,y:3,w:1,h:1,id:"c16",category:"circle"},{x:2,y:3,w:1,h:2,id:"c17",category:"triangle"},{x:3,y:3,w:1,h:1,id:"c18",category:"circle"},{x:4,y:3,w:1,h:1,id:"c19",category:"triangle"},{x:0,y:4,w:1,h:1,id:"c20",category:"circle"},{x:1,y:4,w:1,h:1,id:"c21",category:"triangle"},{x:3,y:4,w:1,h:1,id:"c22",category:"circle"},{x:4,y:4,w:1,h:1,id:"c23",category:"triangle"}],features:["big","direction","alternation","walls"],contentRevision:2,walls:[["c5","c10"],["c3","c8"]],previousId:null,id:"r2-200",order:200,chapter:20,chapterTitle:"\u7B2C20\u7AE0 \xB7 \u7EFC\u5408\u6311\u6218",playerBand:null,estimatedBand:"\u7565\u96BE\u5019\u9009",role:"\u6536\u675F",targetDifficulty:65,objectiveScore:68,title:"\u62FC\u5757 \xB7 \u51FA\u53E3\u5E03\u5C40 200",caption:""}],playOrder:["r2-001","r2-002","r2-003","r2-004","r2-005","r2-006","r2-007","r2-008","r2-009","r2-010","r2-011","r2-012","r2-013","r2-014","r2-015","r2-016","r2-017","r2-018","r2-019","r2-020","r2-021","r2-022","r2-023","r2-024","r2-025","r2-026","r2-027","r2-028","r2-029","r2-030","r2-031","r2-032","r2-033","r2-034","r2-035","r2-036","r2-037","r2-038","r2-039","r2-040","r2-041","r2-042","r2-043","r2-044","r2-045","r2-046","r2-047","r2-048","r2-049","r2-050","r2-051","r2-052","r2-053","r2-054","r2-055","r2-056","r2-057","r2-058","r2-059","r2-060","r2-061","r2-062","r2-063","r2-064","r2-065","r2-066","r2-067","r2-068","r2-069","r2-070","r2-071","r2-072","r2-073","r2-074","r2-075","r2-076","r2-077","r2-078","r2-079","r2-080","r2-081","r2-082","r2-083","r2-084","r2-085","r2-086","r2-087","r2-088","r2-089","r2-090","r2-091","r2-092","r2-093","r2-094","r2-095","r2-096","r2-097","r2-098","r2-099","r2-100","r2-101","r2-102","r2-103","r2-104","r2-105","r2-106","r2-107","r2-108","r2-109","r2-110","r2-111","r2-112","r2-113","r2-114","r2-115","r2-116","r2-117","r2-118","r2-119","r2-120","r2-121","r2-122","r2-123","r2-124","r2-125","r2-126","r2-127","r2-128","r2-129","r2-130","r2-131","r2-132","r2-133","r2-134","r2-135","r2-136","r2-137","r2-138","r2-139","r2-140","r2-141","r2-142","r2-143","r2-144","r2-145","r2-146","r2-147","r2-148","r2-149","r2-150","r2-151","r2-152","r2-153","r2-154","r2-155","r2-156","r2-157","r2-158","r2-159","r2-160","r2-161","r2-162","r2-163","r2-164","r2-165","r2-166","r2-167","r2-168","r2-169","r2-170","r2-171","r2-172","r2-173","r2-174","r2-175","r2-176","r2-177","r2-178","r2-179","r2-180","r2-181","r2-182","r2-183","r2-184","r2-185","r2-186","r2-187","r2-188","r2-189","r2-190","r2-191","r2-192","r2-193","r2-194","r2-195","r2-196","r2-197","r2-198","r2-199","r2-200"]};var Me={basic:"\u4ECE\u6570\u5B57 1 \u5F00\u59CB\uFF0C\u6309\u4F4F\u6ED1\u52A8\uFF0C\u628A\u6240\u6709\u683C\u5B50\u8FDE\u8D77\u6765\u3002\u53EA\u80FD\u8D70\u5230\u8FB9\u6328\u7740\u8FB9\u7684\u683C\u5B50\uFF0C\u4E0D\u80FD\u659C\u7740\u8D70\u3002\u6BCF\u683C\u53EA\u80FD\u7ECF\u8FC7\u4E00\u6B21\u3002",walls:"\u9ED1\u9EC4\u6761\u7EB9\u662F\u4E00\u5835\u5899\uFF0C\u4E0D\u80FD\u76F4\u63A5\u7A7F\u8FC7\u53BB\u3002\u8BF7\u4ECE\u522B\u7684\u683C\u5B50\u7ED5\u5230\u5899\u7684\u53E6\u4E00\u8FB9\u3002",straight:"\u753B\u7740\u6A2A\u7EBF\u7684\u683C\u5B50\u53EA\u80FD\u6A2A\u7740\u7A7F\u8FC7\uFF1A\u4ECE\u5DE6\u8FB9\u8FDB\u3001\u53F3\u8FB9\u51FA\uFF0C\u4E5F\u53EF\u4EE5\u53CD\u8FC7\u6765\u3002\u4E0D\u80FD\u5728\u91CC\u9762\u8F6C\u5F2F\uFF0C\u4E5F\u4E0D\u80FD\u4F5C\u4E3A\u8D77\u70B9\u6216\u7EC8\u70B9\u3002",vertical:"\u753B\u7740\u7AD6\u7EBF\u7684\u683C\u5B50\u53EA\u80FD\u7AD6\u7740\u7A7F\u8FC7\uFF1A\u4ECE\u4E0A\u8FB9\u8FDB\u3001\u4E0B\u8FB9\u51FA\uFF0C\u4E5F\u53EF\u4EE5\u53CD\u8FC7\u6765\u3002\u4E0D\u80FD\u5728\u91CC\u9762\u8F6C\u5F2F\uFF0C\u4E5F\u4E0D\u80FD\u4F5C\u4E3A\u8D77\u70B9\u6216\u7EC8\u70B9\u3002",corner:"\u8FD9\u4E2A\u683C\u5B50\u91CC\u753B\u7740\u4E00\u6761\u8F6C\u5F2F\u7684\u7EBF\u3002\u6CBF\u8FD9\u6761\u7EBF\uFF0C\u4ECE\u4E00\u7AEF\u8FDB\u5165\u3001\u53E6\u4E00\u7AEF\u79BB\u5F00\uFF1B\u6B63\u7740\u8D70\u3001\u53CD\u7740\u8D70\u90FD\u53EF\u4EE5\u3002\u4E0D\u80FD\u4F5C\u4E3A\u8D77\u70B9\u6216\u7EC8\u70B9\u3002",colour:"\u6BCF\u8D70\u4E00\u6B65\u90FD\u8981\u6362\u989C\u8272\uFF1A\u84DD\u8272 \u2192 \u6A59\u8272 \u2192 \u84DD\u8272\u3002\u540C\u4E00\u79CD\u989C\u8272\u7684\u4E24\u4E2A\u683C\u5B50\uFF0C\u5373\u4F7F\u6328\u7740\uFF0C\u4E5F\u4E0D\u80FD\u8FDE\u7EED\u8D70\u3002",parity:"\u4ECE\u8D77\u70B9\u5F00\u59CB\u6570\uFF0C\u7B2C\u4E00\u4E2A\u683C\u5B50\u7B97\u7B2C 1 \u6B65\u3002\u201C\u5947\u201D\u683C\u5FC5\u987B\u5728\u7B2C 1\u30013\u30015\u2026\u6B65\u7ECF\u8FC7\uFF1B\u201C\u5076\u201D\u683C\u5FC5\u987B\u5728\u7B2C 2\u30014\u30016\u2026\u6B65\u7ECF\u8FC7\u3002","rhythm-door":"\u95E8\u4E00\u5F00\u59CB\u662F\u5173\u7740\u7684\u3002\u6BCF\u8D70\u8FDB\u4E00\u4E2A\u683C\u5B50\uFF0C\u95E8\u5C31\u5F00\u3001\u5173\u5207\u6362\u4E00\u6B21\uFF1B\u8D77\u70B9\u4E5F\u7B97\u4E00\u6B65\u3002\u53EA\u6709\u663E\u793A\u201C\u5F00\u201D\u65F6\u624D\u80FD\u7A7F\u8FC7\u3002\u7A7F\u8FC7\u540E\uFF0C\u95E8\u4F1A\u4FDD\u6301\u6253\u5F00\uFF1B\u5982\u679C\u9000\u56DE\u5230\u7A7F\u95E8\u4E4B\u524D\uFF0C\u95E8\u53C8\u4F1A\u7EE7\u7EED\u5207\u6362\u3002",hex:"\u516D\u8FB9\u5F62\u7684\u6BCF\u6761\u8FB9\u65C1\u8FB9\u90FD\u53EF\u80FD\u6709\u4E00\u4E2A\u683C\u5B50\u3002\u53EA\u8981\u4E24\u4E2A\u683C\u5B50\u6709\u4E00\u6574\u6761\u8FB9\u6328\u5728\u4E00\u8D77\uFF0C\u5C31\u80FD\u76F4\u63A5\u8D70\u8FC7\u53BB\u3002\u6BCF\u7ECF\u8FC7\u4E00\u4E2A\u683C\u5B50\u7B97\u4E00\u6B65\u3002","unknown-start":"\u8FD9\u4E00\u5173\u6CA1\u6709\u6570\u5B57 1\uFF0C\u53EF\u4EE5\u81EA\u5DF1\u9009\u8D77\u70B9\u3002\u5148\u770B\u770B\u5176\u4ED6\u6570\u5B57\uFF0C\u8BD5\u7740\u627E\u51FA\u4ECE\u54EA\u91CC\u5F00\u59CB\uFF0C\u624D\u80FD\u6309\u6B63\u786E\u7684\u6B65\u6570\u5230\u8FBE\u5B83\u4EEC\u3002"};function Wc(e){let i=["\u6309\u4F4F\u6ED1\u52A8\uFF0C\u628A\u6240\u6709\u683C\u5B50\u8FDE\u6210\u4E00\u6761\u7EBF\u3002\u6BCF\u4E2A\u683C\u5B50\u53EA\u80FD\u7ECF\u8FC7\u4E00\u6B21\u3002",e.geometry==="hex"?"\u516D\u8FB9\u5F62\u4E4B\u95F4\uFF0C\u6709\u4E00\u6574\u6761\u8FB9\u6328\u5728\u4E00\u8D77\u624D\u80FD\u8D70\u8FC7\u53BB\u3002":"\u53EA\u80FD\u8D70\u5230\u8FB9\u6328\u7740\u8FB9\u7684\u683C\u5B50\uFF0C\u4E0D\u80FD\u659C\u7740\u8D70\u3002","\u683C\u5B50\u91CC\u7684\u6570\u5B57\u8868\u793A\u7B2C\u51E0\u6B65\u5230\u8FD9\u91CC\u3002\u4F8B\u5982\u6570\u5B57 5\uFF0C\u5FC5\u987B\u5728\u7B2C 5 \u6B65\u8D70\u5230\u5B83\u3002"];e.geometry==="blocks"&&i.push("\u4E00\u4E2A\u5927\u683C\u6216\u4E0D\u89C4\u5219\u5F62\u72B6\u7684\u683C\u5B50\uFF0C\u6574\u4E2A\u7B97\u4E00\u6B65\u3002");for(let[c,a]of[["direction","corner"],["alternation","colour"],["parity","parity"],["walls","walls"],["rhythm-door","rhythm-door"]])e.features.includes(c)&&i.push(c==="direction"?"\u6709\u7EBF\u6761\u7684\u683C\u5B50\uFF0C\u8981\u6CBF\u56FE\u4E2D\u7684\u7EBF\u4ECE\u4E00\u7AEF\u8FDB\u5165\u3001\u53E6\u4E00\u7AEF\u79BB\u5F00\uFF1B\u4E0D\u80FD\u4F5C\u4E3A\u8D77\u70B9\u6216\u7EC8\u70B9\u3002":Me[a]);return e.cells.some(c=>c.clue===1)||i.push(Me["unknown-start"]),i.push("\u8D70\u9519\u4E86\uFF0C\u53EF\u4EE5\u6CBF\u521A\u624D\u7684\u8DEF\u7EBF\u5F80\u56DE\u9000\uFF1B\u4E5F\u53EF\u4EE5\u70B9\u201C\u64A4\u9500\u201D\u9000\u4E00\u6B65\uFF0C\u70B9\u201C\u91CD\u5F00\u201D\u91CD\u65B0\u5F00\u59CB\u3002"),i.join(` +`)}var X1={\u56FA\u5B9A\u6570\u5B57\u6B65\u53F7\u4E0D\u7B26:"\u5230\u8FBE\u6570\u5B57\u683C\u7684\u6B65\u6570\u4E0D\u5BF9",\u8BE5\u683C\u6B65\u53F7\u5947\u5076\u4E0D\u7B26:"\u8D70\u5230\u201C\u5947\u201D\u683C\u8981\u6570\u5230 1\u30013\u30015\u2026\uFF1B\u8D70\u5230\u201C\u5076\u201D\u683C\u8981\u6570\u5230 2\u30014\u30016\u2026",\u8FDB\u51FA\u65B9\u5411\u4E0D\u7B26:"\u8BF7\u6CBF\u683C\u5B50\u91CC\u753B\u7684\u7EBF\uFF0C\u4ECE\u4E00\u7AEF\u8FDB\u5165\u3001\u53E6\u4E00\u7AEF\u79BB\u5F00",\u8FD9\u4E00\u6B65\u95E8\u662F\u5173\u95ED\u7684:"\u95E8\u73B0\u5728\u5173\u7740\uFF0C\u8BF7\u5148\u8D70\u5230\u522B\u7684\u683C\u5B50\uFF0C\u8BA9\u95E8\u5207\u6362\u5230\u201C\u5F00\u201D",\u84DD\u6A59\u989C\u8272\u5FC5\u987B\u4EA4\u66FF:"\u6BCF\u4E00\u6B65\u90FD\u8981\u6362\u989C\u8272\uFF1A\u84DD\u8272\u548C\u6A59\u8272\u4EA4\u66FF\u8D70","\u89C4\u5219\u4E0D\u7B26\uFF0C\u8BF7\u6CBF\u6765\u65F6\u8DEF\u9000\u56DE\u4E0A\u4E00\u683C\u518D\u8BD5\u3002":"\u8FD9\u4E00\u6B65\u4E0D\u7B26\u5408\u89C4\u5219\uFF0C\u8BF7\u6CBF\u521A\u624D\u7684\u8DEF\u7EBF\u9000\u56DE\u4E0A\u4E00\u683C\u518D\u8BD5\u3002","\u4E0B\u4E00\u6B65\u5728\u9EC4\u8272\u8FB9\u6846\u683C\uFF1B\u63D0\u793A\u4E0D\u4F1A\u81EA\u52A8\u753B\u8DEF\u3002":"\u4E0B\u4E00\u6B65\u8D70\u5230\u9EC4\u8272\u8FB9\u6846\u7684\u683C\u5B50\uFF0C\u8BF7\u81EA\u5DF1\u8FDE\u8FC7\u53BB\u3002","\u8BF7\u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u9000\u56DE\u9EC4\u8272\u8FB9\u6846\u683C\uFF0C\u518D\u7EE7\u7EED\u3002":"\u8BF7\u6CBF\u521A\u624D\u7684\u8DEF\u7EBF\uFF0C\u4E00\u683C\u4E00\u683C\u9000\u56DE\u9EC4\u8272\u8FB9\u6846\u5904\uFF0C\u518D\u8BD5\u53E6\u4E00\u6761\u8DEF\u3002","\u8D77\u70B9\u9700\u8981\u8C03\u6574\uFF0C\u8BF7\u91CD\u5F00\u5E76\u4ECE\u9EC4\u8272\u8FB9\u6846\u683C\u5F00\u59CB\u3002":"\u8D77\u70B9\u9009\u9519\u4E86\u3002\u8BF7\u70B9\u201C\u91CD\u5F00\u201D\uFF0C\u4ECE\u9EC4\u8272\u8FB9\u6846\u7684\u683C\u5B50\u5F00\u59CB\u3002","\u95E8\u73B0\u5728\u5173\u95ED\uFF1B\u7ED5\u884C\u843D\u683C\u540E\u4F1A\u5207\u6362\u3002":"\u95E8\u73B0\u5728\u5173\u7740\u3002\u5148\u8D70\u5230\u522B\u7684\u683C\u5B50\uFF0C\u95E8\u5C31\u4F1A\u5F00\u3001\u5173\u5207\u6362\u4E00\u6B21\u3002","\u9ED1\u9EC4\u5899\u4E0D\u80FD\u7A7F\u8FC7\uFF0C\u8BF7\u4ECE\u53E6\u4E00\u4FA7\u7ED5\u884C\u3002":Me.walls,"\u540C\u8272\u683C\u4E0D\u80FD\u8FDE\u7EED\u7ECF\u8FC7\uFF0C\u8BF7\u6362\u53E6\u4E00\u79CD\u989C\u8272\u3002":"\u4E0B\u4E00\u6B65\u8981\u6362\u989C\u8272\uFF1A\u84DD\u683C\u4E4B\u540E\u8D70\u6A59\u683C\uFF0C\u6A59\u683C\u4E4B\u540E\u8D70\u84DD\u683C\u3002"};function Xi(e){let i=String(e);for(let[c,a]of Object.entries(X1))i=i.split(c).join(a);return i.replaceAll("\uFF0C\u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u9000\u56DE\u3002","\u3002\u8BF7\u6CBF\u521A\u624D\u7684\u8DEF\u7EBF\u9000\u56DE\u3002").replaceAll("\u8BBF\u95EE\u6B65\u53F7","\u7B2C\u51E0\u6B65\u7ECF\u8FC7").replaceAll("\u6B65\u53F7","\u6B65\u6570").replaceAll("\u8BA4\u6E05\u5F02\u5F62\u5171\u8FB9","\u627E\u51FA\u4E0D\u89C4\u5219\u683C\u5B50\u65C1\u8FB9\u80FD\u8D70\u7684\u683C\u5B50").replaceAll("\u516D\u5411\u5171\u8FB9","\u516D\u8FB9\u5F62\u600E\u4E48\u8D70").replaceAll("\u5171\u8FB9","\u8FB9\u6328\u7740\u8FB9")}for(let e of je.levels)e.tutorial&&(e.caption=Me[e.tutorial]||e.caption),e.title=Xi(e.title);var di=wx.getPerformance?wx.getPerformance():{now:()=>Date.now()};Array.prototype.at||Object.defineProperty(Array.prototype,"at",{value:function(e){return e=Math.trunc(e)||0,this[e<0?this.length+e:e]},configurable:!0,writable:!0});var Pe=wx.createCanvas(),oi=wx.createCanvas(),Qi=new Map,ai=()=>{};function Lc(e){ai=e}var Ti=class{constructor(i=""){this.id=i,this.children=[],this.handlers={},this.value="",this.style={},this.className="",this.textContent="",this.hidden=!1,this.disabled=!1}set textContent(i){let c=Xi(i);c!==this._text&&(this._text=c,ai())}get textContent(){return this._text||""}set className(i){i!==this._className&&(this._className=i,ai())}get className(){return this._className||""}set hidden(i){i!==this._hidden&&(this._hidden=i,ai())}get hidden(){return this._hidden||!1}set disabled(i){i!==this._disabled&&(this._disabled=i,ai())}get disabled(){return this._disabled||!1}replaceChildren(...i){this.children=i}append(...i){this.children.push(...i)}addEventListener(i,c){this.handlers[i]=c}setAttribute(){}setPointerCapture(){}getBoundingClientRect(){return{left:0,top:0,width:this.clientWidth,height:this.clientHeight}}click(){this.disabled||this.onclick?.()}},ee={getElementById(e){return Qi.has(e)||Qi.set(e,new Ti(e)),Qi.get(e)},createElement(){return new Ti}},Ii=ee.getElementById("board");Ii.getContext=()=>oi.getContext("2d");for(let e of["width","height"])Object.defineProperty(Ii,e,{get:()=>oi[e],set:i=>{oi[e]=i}});Ii.clientWidth=375;Ii.clientHeight=440;ee.getElementById("screen-play").className="screen hidden";ee.getElementById("rules-sheet").hidden=!0;ee.getElementById("feedback-sheet").hidden=!0;var ge={getItem(e){try{return wx.getStorageSync(e)||null}catch{return null}},setItem(e,i){try{wx.setStorageSync(e,String(i))}catch{}},removeItem(e){wx.removeStorageSync(e)}},G={devicePixelRatio:1,handlers:{},addEventListener(e,i){this.handlers[e]=i},AudioContext:wx.createWebAudioContext?function(){return wx.createWebAudioContext()}:void 0};function Hc(e){let i=wx.env.USER_DATA_PATH+"/NumberSwipe-campaign-200-r2-records.json";try{wx.getFileSystemManager().writeFileSync(i,JSON.stringify(e,null,2),"utf8"),wx.shareFileMessage?wx.shareFileMessage({filePath:i,fileName:"NumberSwipe-r2-\u8BD5\u73A9\u8BB0\u5F55.json"}):wx.showModal({title:"\u8BB0\u5F55\u5DF2\u4FDD\u5B58",content:i,showCancel:!1})}catch{wx.showToast({title:"\u8BB0\u5F55\u5BFC\u51FA\u5931\u8D25",icon:"none"})}}function _c(e,i,c,a,d){let r=e.filter(n=>n.id===i),t=n=>{let s=!1;for(let g=0,w=n.length-1;ga!=k>a&&c<(m-x)*(a-u)/(k-u)+x&&(s=!s)}return s};if(!r.some(n=>t(n.p)))return!1;let o=[];for(let n of r)for(let s=0;sMath.hypot(n[0]-s[0],n[1]-s[1])<.01,y=o.filter(([n,s],g)=>!o.some(([w,x],u)=>g!==u&&l(n,x)&&l(s,w))),h=Math.min(3,.06*d);return y.every(([n,s])=>{let g=s[0]-n[0],w=s[1]-n[1],x=g*g+w*w,u=x?Math.max(0,Math.min(1,((c-n[0])*g+(a-n[1])*w)/x)):0;return Math.hypot(c-n[0]-g*u,a-n[1]-w*u)>=h})}var Ce=new Map,Zi=0,Q1=4*1024*1024;function Gc(e,i,c,a,d,r){Re(e,d,800,!0),e.textAlign="left",e.textBaseline="alphabetic";let t=String(i),o=Vi(e,t,d),l=r===p.onPrimary;if(!Number.isFinite(o.actualBoundingBoxAscent)||!Number.isFinite(o.actualBoundingBoxRight)||typeof wx>"u"){e.save(),l&&(e.shadowColor="rgba(255,255,255,.5)",e.shadowBlur=2),ce(e,t,c,a,d,r,800,!0),e.restore();return}let y=[t,d.toFixed(3),r,e.font].join("|"),h=Ce.get(y);if(h)Ce.delete(y),Ce.set(y,h);else{let s=o.actualBoundingBoxLeft+o.actualBoundingBoxRight,g=o.actualBoundingBoxAscent+o.actualBoundingBoxDescent,w=l?Math.max(.8,Math.min(2.6,d*.055)):0,x=Math.ceil(w*3+3),u=wx.createCanvas();u.width=Math.ceil((s+2*x)*2),u.height=Math.ceil((g+2*x)*2);let m=u.getContext("2d");m.setTransform(2,0,0,2,0,0),Re(m,d,800,!0),m.textAlign="left",m.textBaseline="alphabetic";let k=m.createLinearGradient(0,x,0,x+g);if(k&&typeof k.addColorStop=="function"?(k.addColorStop(0,l?"#FFFFFF":"#65583F"),k.addColorStop(.48,l?"#FFFDFE":r),k.addColorStop(1,l?"#F0EEFF":"#4C402D"),m.fillStyle=k):m.fillStyle=r,m.fillText(t,x+o.actualBoundingBoxLeft,x+o.actualBoundingBoxAscent),!l)try{let b=m.getImageData(0,0,u.width,u.height);if(b?.data){for(let D=0;D>>0)%17-8;for(let A=0;A<3;A++)b.data[f+A]+=T*.32}m.putImageData(b,0,0)}}catch{}let q=wx.createCanvas();q.width=u.width,q.height=u.height;let B=q.getContext("2d");for(l&&(B.shadowColor="rgba(61,43,146,.46)",B.shadowBlur=1.2*2,B.shadowOffsetY=.7*2,B.drawImage(u,0,0),B.shadowColor="rgba(255,255,255,.58)",B.shadowBlur=w*2,B.shadowOffsetY=0,B.drawImage(u,0,0),B.shadowColor="rgba(0,0,0,0)",B.shadowBlur=0),B.drawImage(u,0,0),h={canvas:q,pad:x,w:s,h:g,res:2},Ce.set(y,h),Zi+=q.width*q.height*4;Zi>Q1&&Ce.size>1;){let b=Ce.keys().next().value,D=Ce.get(b);Ce.delete(b),Zi-=D.canvas.width*D.canvas.height*4}}e.drawImage(h.canvas,c-h.w/2-h.pad,a-h.h/2-h.pad,h.canvas.width/h.res,h.canvas.height/h.res)}var Kc=new WeakMap,K={reducedMotion:!1},Z1=e=>new Set(e.flatMap(i=>i.cells));function er(e,i,c){let a=e.category!==void 0;return{fill:a?e.category==="circle"?p.categoryBlueFace:p.categoryOrangeFace:c?p.danger:i?p.primary:p.cellFace,depth:a||!i&&!c?p.cellDepth:c?p.dangerDepth:p.primaryDepth,ink:!a&&(i||c)?p.onPrimary:p.ink,category:a}}function Jc(e,i,c,a=!1){if(a)return;e.save();let d=c.slice(1).map((r,t)=>({a:c[t],b:r}));if(N.enhanced&&!K.reducedMotion)for(let r of i.feedbackEvents||[])r.kind==="undo"&&r.from&&i.now-r.timet.a===r.from&&t.b===r.cell)&&d.push({a:r.from,b:r.cell,undo:r});for(let r of d){let t=vi(i,r.a,r.b);if(!t)continue;let[o,l]=t.segments[0],y=L(o,l),h=(l[0]-o[0])/y,n=(l[1]-o[1])/y,s=-n,g=h,[w,x]=t.entry,u=Math.min(i.pitch*J.referenceMatch.bridgeRatio,y*.6)/2,m=(i.feedbackEvents||[]).findLast(M=>M.from===r.a&&M.cell===r.b&&["move","checkpoint"].includes(M.kind)),k=!N.enhanced||K.reducedMotion?1:r.undo?1-U(0,(i.now-r.undo.time)/W.undoMs,1):m?U(0,(i.now-m.time)/W.bridgeMs,1):1,q=(i.inset+1.2)*k;if(q<.01)continue;let B=e.createLinearGradient(w-h*u,x-n*u,w+h*u,x+n*u);B?.addColorStop&&(B.addColorStop(0,"#7D70EF"),B.addColorStop(.12,"#9386F8"),B.addColorStop(.34,"#ABA0FF"),B.addColorStop(.55,"#978BFA"),B.addColorStop(.8,p.primary),B.addColorStop(1,"#786BEC")),e.fillStyle=B?.addColorStop?B:p.primary;let b=24,D=q*2/b;for(let M=0;Mn[1]),h=e.createLinearGradient(0,Math.min(...y),0,Math.max(...y));if(h&&typeof h.addColorStop=="function"){let n=s=>"#"+[1,3,5].map(g=>U(0,parseInt(c.fill.slice(g,g+2),16)+s,255).toString(16).padStart(2,"0")).join("");h.addColorStop(0,n(3)),h.addColorStop(.25,c.fill),h.addColorStop(.75,c.fill),h.addColorStop(1,n(-3)),i.paints.set(c.fill,h)}else i.paints.set(c.fill,c.fill)}Se(e,i.rings,i.radius),e.fillStyle=i.paints.get(c.fill),e.fill(),e.save(),Se(e,i.rings,i.radius),e.clip(),e.lineCap="round",e.lineWidth=J.material.bevelWidth,e.strokeStyle=a.steps.has(i.cell.id)&&!c.category?p.primaryEdge:p.cellBevel;for(let y of i.rings)for(let h=0;h=-.25)continue;let u=Math.min(i.radius,g*.3);e.beginPath(),e.moveTo(n[0]+(s[0]-n[0])*u/g-w*.7,n[1]+(s[1]-n[1])*u/g-x*.7),e.lineTo(s[0]-(s[0]-n[0])*u/g-w*.7,s[1]-(s[1]-n[1])*u/g-x*.7),e.stroke()}e.restore()}e.restore()}}function Di(e,i,c,a,d,r,t,o=800,l=!1){e.save(),l?Gc(e,c,a,d,r,t):ce(e,c,a,d,r,t,o);let y=e.measureText(String(c)).width;e.restore(),i.keepouts.push({x:a-y/2-3,y:d-r*.6-2,w:y+6,h:r*1.2+4})}function ir(e,i,c,a){let d=i.indexOf(c.id);if(d<0)return"idle";if(d===0||a.has(c.id))return"error";let r=Ke(e,c.id,i[d-1]);return!c.direction.includes(r)||du[q]);if(e.beginPath(),e.moveTo(s+m[0]*w,g+m[1]*w),e.lineTo(s,g),e.lineTo(s+k[0]*w,g+k[1]*w),e.lineCap="round",e.lineJoin="round",e.lineWidth=U(7,l*.17,10),e.strokeStyle=x==="error"?p.dangerSoft:y?p.primaryEdge:p.surfaceMuted,e.stroke(),e.lineWidth=U(3.5,l*.085,5),e.strokeStyle=x==="error"?p.danger:n,e.stroke(),i.channels.push({cell:r.id,kind:r.direction,center:[s,g],radius:w,state:x}),i.keepouts.push({x:s-w-4,y:g-w-4,w:w*2+8,h:w*2+8}),h){let q=String(h).length>1,B=Math.min(l*(q?.22:.26),q?18:21),b=B*(q?1.35:.85),D=Math.min(1.8,l*.018),M=t+l*.21,f=o-l*.25;xe(e,M-b/2-D,f-B*.55-D,b+D*2,B*1.1+D*2,Math.min(4,l*.05)),e.fillStyle=y&&!a.category?p.primaryPressed:p.surface,e.fill(),Di(e,i,h,M,f,B,n,800,!0)}}else{let s=h?l*(h>=10?.44:.5):l*.42,g=o+(!a.category&&r.parity&&h?-l*.1:0);h&&Di(e,i,h,t,g,s,n,800,!0),r.parity&&Di(e,i,r.parity==="odd"?"\u5947":"\u5076",t,h?o+l*.26:o,h?U(11,l*.2,13):s,n,700)}if(i.errors.has(r.id)){let s=t-l*.32,g=o-l*.31;e.beginPath(),e.arc(s,g,7,0,Math.PI*2),e.fillStyle=p.danger,e.fill(),Di(e,i,"!",s,g,11,p.onPrimary,800)}}function Uc(e,i){if(!e)return 0;let c=K.reducedMotion?1:U(0,(i-e.started)/J.motionMs.door,1);return e.from+(e.to-e.from)*(1-(1-c)**3)}function ec(e,i,c,a=Date.now()){e.save();let d=(r,t)=>{let o=vi(i,...r);if(!o)return;let l=t==="open"||t==="latched";for(let[y,h]of o.segments){let n=L(y,h),s=x=>[y[0]+(h[0]-y[0])*x,y[1]+(h[1]-y[1])*x];e.lineCap="butt",e.lineWidth=U(5,i.pitch*.13,8),e.strokeStyle=t==="wall"?p.wallInk:l?p.doorOpen:p.doorClosed,e.beginPath();let g=i.doorTransitions?.get(r.join("|")),w=t==="wall"?0:Uc(g,a)*.5;if(w>0?(e.moveTo(...s(.06)),e.lineTo(...s(.5-w/2)),e.moveTo(...s(.5+w/2)),e.lineTo(...s(.94))):(e.moveTo(...s(.06)),e.lineTo(...s(.94))),e.stroke(),t==="wall"){let x=-(h[1]-y[1])/n,u=(h[0]-y[0])/n,m=(h[0]-y[0])/n,k=(h[1]-y[1])/n;e.strokeStyle=p.wallStripe,e.lineWidth=2;for(let q=7;q(l.feedbackSequence||0)){if(n.kind==="complete")l.bursts=[];else if(n.kind==="undo")l.bursts=l.bursts.filter(s=>s.cell!==n.cell);else if(n.kind==="checkpoint"&&!K.reducedMotion){let s=l.byId.get(n.cell);s&&l.bursts.push({cell:n.cell,point:s.center,started:n.time,seed:n.step})}l.feedbackSequence=n.sequence}l.bursts=l.bursts.slice(-W.maxRibbons)}l.bursts||(l.bursts=[]);let h=l.lastPath||[];if(!N.enhanced&&!t&&!K.reducedMotion&&c.length===h.length+1&&h.every((n,s)=>n===c[s])){let n=l.byId.get(c.at(-1));n?.cell.clue>1&&n.cell.clue===c.length&&!se(i,c).length&&l.bursts.push({cell:n.cell.id,point:n.center,started:r,seed:c.length})}l.lastPath=[...c],l.bursts=l.bursts.filter(n=>r-n.started[n,s+1])),l.errors=Z1(se(i,c)),l.keepouts=[],l.channels=[],l.views=l.cells.map(n=>({cell:n.cell.id,...er(n.cell,l.steps.get(n.cell.id),l.errors.has(n.cell.id)),error:l.errors.has(n.cell.id),category:n.cell.category||null,cellUnit:l.pitch})),e.clearRect(0,0,a,d),e.save();for(let n=0;nYc(e,l.cells[n],l.views[n],l));Jc(e,l,c);for(let n=0;n0||l.feedbackEvents.some(n=>r-n.time<(n.kind==="move"?W.moveMs:n.kind==="undo"?W.undoMs:0))||[...l.doorTransitions.values()].some(n=>n.from!==n.to&&r-n.startedi.includes(o.cell.id)).map(o=>({rings:o.rings,radius:o.radius,depth:e.depth,maskPad:U(3,e.pitch*.065,7)+1})),reducedMotion:K.reducedMotion};return zc.set(e,{key:a,keepouts:e.keepouts,value:t}),t}function rr(e,i,c){if(K.reducedMotion)return;let a=["#FF986B","#A093FF","#FFD45C","#B9DBB2","#FFF9E8"];e.save(),e.lineCap="round";for(let d of i.bursts){let r=Math.max(0,(c-d.started)/W.ribbonMs),t=1-(1-r)**2;for(let o=0;o<22;o++){let l=o/22*Math.PI*2,y=i.pitch*(.38+o%5*.12),h=d.point[0]+Math.cos(l)*y*t,n=d.point[1]+Math.sin(l)*y*t+i.pitch*.16*r*r;e.globalAlpha=Math.min(1,(1-r)*2.2),e.strokeStyle=a[(o+d.seed)%a.length],e.lineWidth=Math.max(2,i.pitch*.035),e.beginPath(),e.moveTo(h-2,n-3),e.quadraticCurveTo(h+Math.sin(o+r*8)*4,n,h+2,n+3),e.stroke()}}e.restore()}function tr(e,i=!1){return i||e<=0||e>=W.checkpointMs?1:1+(W.checkpointMaxScale-1)*Math.sin(Math.PI*e/W.checkpointMs)}function ar(e,i,c,a,d){let r=[...i.bursts].reverse().find(l=>l.cell===c.cell.id),t=N.enhanced&&i.feedbackEvents.findLast(l=>l.cell===c.cell.id&&l.kind==="move"),o=K.reducedMotion?1:r&&i.steps.has(c.cell.id)?tr(a-r.started):t&&i.steps.has(c.cell.id)?or(a-t.time):1;if(o===1){d();return}e.save(),e.translate(...c.center),e.scale(o,o),e.translate(-c.center[0],-c.center[1]),d(),e.restore()}function or(e){return e<0||e>=W.moveMs?1:1-(1-W.moveMinScale)*Math.sin(Math.PI*e/W.moveMs)}var cc="variant:campaign-200-r2:v1:resume";function Ri(e){try{let i=JSON.parse(e.getItem(cc)||"null");return i?.version===1&&typeof i.levelId=="string"?i:null}catch{return null}}function ji(e,i,c,a){let d=new Set(i),r=e.findIndex(l=>l.id===c?.levelId),t=e.findIndex(l=>l.id===a);if(r>=0&&!d.has(e[r].id))return{index:r,path:Array.isArray(c.path)?c.path:[]};let o=r>=0?r:t;if(o>=0&&!d.has(e[o].id))return{index:o,path:[]};for(let l=1;l<=e.length;l++){let y=(Math.max(-1,o)+l)%e.length;if(!d.has(e[y].id))return{index:y,path:[]}}return{index:Math.max(0,o),path:[]}}function rc(e,i,c){if(!Array.isArray(i)||i.length>e.cells.length)return[];let a=[];for(let d of i){if(typeof d!="string"||!c(e,a,d))return[];a.push(d)}return a}function $c(e,i,c,a,d,r){let t=Ri(e),o=new Set(c);if(o.has(a.id)&&!r&&t&&!o.has(t.levelId)&&i.some(h=>h.id===t.levelId))return;let l=r||o.has(a.id)?ji(i,c,null,a.id):{index:i.indexOf(a),path:[...d]},y=JSON.stringify({version:1,levelId:i[l.index].id,path:l.path});try{e.getItem(cc)!==y&&e.setItem(cc,y)}catch{}}function Xc(e,i,c){let a=new Map(e.cells.map(t=>[t.id,t])),d=i.flatMap((t,o)=>{let l=a.get(t);return o===0||o===i.length-1||l.clue!==void 0||l.direction||l.parity?[o]:[]}),r=0;for(;re.end)return e=null,null;let t=Xc(c,a,d);return t&&t.startc[g]);if(o.some(g=>!g))return;let l=new Set(r),y=i.route.slice(1).map((g,w)=>{let x=i.route[w];return r.some((u,m)=>m>0&&(r[m-1]===x&&u===g||r[m-1]===g&&u===x))}),h=Math.max(4,Math.min(9,a*.13)),n=d%Math.max(1200,(o.length-1)*240)/Math.max(1200,(o.length-1)*240)*(o.length-1);e.save(),e.lineCap="round",e.lineJoin="round";let s=(g,w,x)=>{y[g]||(e.beginPath(),e.moveTo(...o[g]),e.lineTo(...o[g+1]),e.strokeStyle=w,e.lineWidth=x,e.stroke())};for(let g=0;g=0;g--){let w=n-g*.045;if(w<0)continue;let x=Math.min(Math.floor(w),o.length-2),u=w-x;if(y[x])continue;let m=o[x],k=o[x+1],q=m[0]+(k[0]-m[0])*u,B=m[1]+(k[1]-m[1])*u;e.beginPath(),e.arc(q,B,h*(.45+(10-g)*.035),0,Math.PI*2),e.fillStyle=`rgba(255,255,255,${.12+(10-g)*.075})`,e.fill(),g===0&&(e.strokeStyle="rgba(35,36,58,.9)",e.lineWidth=2,e.stroke())}for(let g of[0,o.length-1])l.has(i.route[g])||(e.beginPath(),e.arc(...o[g],Math.max(8,a*.23),0,Math.PI*2),e.strokeStyle="rgba(35,36,58,.72)",e.lineWidth=7,e.stroke(),e.strokeStyle="rgba(255,255,255,.92)",e.lineWidth=3,e.stroke());e.globalCompositeOperation="destination-out",e.fillStyle="#000000";for(let g of i.visitedPolygons||[]){e.beginPath(),e.moveTo(...g[0]);for(let w of g.slice(1))e.lineTo(...w);e.closePath(),e.fill()}e.restore()}var Qc=new WeakMap;function Zc(e,i,c){let a=JSON.stringify([i,c]),d=Qc.get(e.guides)||new Map;if(d.has(a))return d.get(a);let r=(s,g)=>c.some((w,x)=>x>0&&(c[x-1]===s&&w===g||c[x-1]===g&&w===s)),t=e.guides.filter(s=>!r(s.a,s.b)),o=nr(t,i*.16),l=Math.max(4,Math.min(8,i*.12)),y=0,h=o.flatMap(s=>s.slice(1).map((g,w)=>({a:s[w],b:g,length:L(s[w],g)}))).filter(s=>s.length>.01).map(s=>({...s,start:y,end:y+=s.length})),n={guides:t,runs:o,width:l,segments:h,total:y};return d.set(a,n),d.size>4&&d.delete(d.keys().next().value),Qc.set(e.guides,d),n}function dr(e,i){let{segments:c}=e;if(!c.length)return null;let a=0,d=c.length-1;for(;a>1;c[o].end{e.strokeStyle=g,e.lineWidth=w;for(let x of l)if(x.length){e.beginPath(),e.moveTo(...x[0]);for(let u of x.slice(1))e.lineTo(...u);e.stroke()}};if(e.shadowColor="rgba(148,99,55,.18)",e.shadowBlur=c*.045,e.shadowOffsetY=1.2,n(p.hintRibbonLight,y+5),e.shadowBlur=0,e.shadowOffsetY=0,n(p.hintRibbon,y),e.globalAlpha=.28,n(p.hintRibbonLight,y*.48),e.globalAlpha=1,e.setLineDash([]),!i.reducedMotion){let g=r?Zc(i,c,[]):t,w=0,x=l[0]?.[0];if(x&&r){let q=1/0;for(let B of g.segments){let b=L(B.a,x);b=0;B--){let b=q-B*Math.max(.9,y*.3);if(b<0)continue;let D=dr(r?g:t,b);if(D){let{segment:M,x:f,y:T}=D;e.globalAlpha=(1-B/18)*.85,e.shadowColor="rgba(255,245,215,.65)",e.shadowBlur=B===0?y*1.2:0,e.beginPath(),e.arc(f,T,y*(.23+(16-B)/16*.4),0,Math.PI*2),e.fillStyle=p.hintSpark,e.fill(),B===0&&(e.globalAlpha=1,e.shadowBlur=0,e1(e,M.a,M.b,f,T,y))}}e.globalAlpha=1,e.shadowBlur=0}if(i.reducedMotion)for(let g of o){let w=g.points.at(-1),x=g.points.at(-2);x&&w&&e1(e,x,w,(x[0]+w[0])/2,(x[1]+w[1])/2,y)}e.save(),e.globalCompositeOperation="destination-out";for(let g of[l[0]?.[0],l.at(-1)?.at(-1)]){if(!g)continue;let w=Math.max(17,c*.46),[x,u]=g,m=e.createRadialGradient(x,u,0,x,u,w);m?.addColorStop&&(m.addColorStop(0,"rgba(0,0,0,1)"),m.addColorStop(.55,"rgba(0,0,0,1)"),m.addColorStop(1,"rgba(0,0,0,0)"),e.fillStyle=m,e.fillRect(x-w,u-w,w*2,w*2))}e.restore();let s=l.at(-1)?.at(-1);if(s){let g=Math.max(9,c*.25);e.beginPath(),e.arc(...s,g,0,Math.PI*2),e.strokeStyle=p.hintRibbonLight,e.lineWidth=5,e.stroke(),e.strokeStyle=p.hintRibbon,e.lineWidth=2.5,e.stroke()}e.globalCompositeOperation="destination-out",e.fillStyle="#000",e.strokeStyle="#000";for(let g of i.visitedShapes||[])for(let w of[0,g.depth])Se(e,g.rings,g.radius,w),e.fill(),e.lineWidth=g.maskPad?g.maskPad*2:3,e.stroke();for(let g of i.keepouts||[])e.fillRect(g.x,g.y,g.w,g.h);e.restore()}function e1(e,i,c,a,d,r){let t=L(i,c);if(t<1)return;let o=(c[0]-i[0])/t,l=(c[1]-i[1])/t,y=r*.65;e.beginPath(),e.moveTo(a-o*y-l*y,d-l*y+o*y),e.lineTo(a+o*y,d+l*y),e.lineTo(a-o*y+l*y,d-l*y-o*y),e.strokeStyle=p.hintRibbonDepth,e.lineWidth=Math.max(2,r*.38),e.stroke()}function nr(e,i){let c=[],a;for(let d of e)d.points.length&&(a&&a.b===d.a&&L(c.at(-1).at(-1),d.points[0])<.1?c.at(-1).push(...d.points.slice(1)):c.push([...d.points]),a=d);return c.map(d=>{let r=d.filter((o,l)=>!l||L(o,d[l-1])>.01);if(r.length<3)return r;let t=[r[0]];for(let o=1;oe.id)).map(e=>Ne.levels.find(i=>i.id===e)),ac=V.length;var tc=null,li=[],ni=[],a1="mouse",R=e=>ee.getElementById(e),$=R("board"),We=$.getContext("2d"),Ei=!1,v,Le,S=[],Fe=0;var $e=[],Ve=new Map,Xe=1,Te=[],dc=!1,yi=null,Q=!1,He="variant:campaign-200-r2:v1",ue=new Mi(G,ge,He+":sound"),re=[];try{re=JSON.parse(ge.getItem(He)||"[]")}catch{}N.attach(ue,wx,ge);var Ci=new Map,Oi=0,Fi=null,X=null,Ae=[];try{Ae=JSON.parse(ge.getItem(He+":records")||"[]")}catch{}function Qe(){if(!X)return;X.reasoning=R("reasoning").value,X.elapsedSeconds=Math.round((di.now()-Oi)/1e3),X.completed=Q;let e={...X,endedAt:new Date().toISOString()},i=Ae.findIndex(c=>c.attemptId===e.attemptId);i>=0?Ae[i]=e:Ae.push(e);try{ge.setItem(He+":records",JSON.stringify(Ae.slice(-500)))}catch{}}function me(e){R("status").textContent=e,R("status").className="toast show",tc&&clearTimeout(tc),tc=setTimeout(()=>{R("status").className="toast"},1800)}function Pi(){v.tutorial&&!re.includes(v.id)&&!S.length&&(R("rule-text").textContent=v.caption,R("rules-sheet").hidden=!1),R("screen-select").className="screen hidden",R("screen-play").className="screen enter",le()}function yr(){Qe(),R("screen-select").className="screen enter",R("screen-play").className="screen hidden",lc(),R("status").className="toast"}function hr(){Ci.clear();let e=[...(v.relations||[]).flatMap(i=>[i.from,i.to]),...(v.orderChains||[]).flat()];for(let i of e)Ci.has(i)||Ci.set(i,String.fromCharCode(65+Ci.size))}function sr(){return{attemptId:Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8),mode:Ne.mode,level:v.id,contentRevision:v.contentRevision,order:v.order,chapter:v.chapter,title:v.title,startedAt:new Date().toISOString(),thinkingBeforeFirstDrawSeconds:null,elapsedSeconds:0,firstError:null,backtracks:0,restarts:0,hints:0,completed:!1,reasoning:""}}function Ai(e,i=!0){if(N.reset(),oc.clear(),X&&Qe(),Fe=e,v=V[e],Le=qi(v)[0],!Le)throw Error("\u6CA1\u6709\u5408\u6CD5\u8DEF\u7EBF");S=[],Te=[],Q=!1,Oi=di.now(),Fi=null,X=sr(),R("reasoning").value="",hr(),R("goal").textContent=v.title,R("caption").textContent=v.caption||"\u5148\u89C2\u5BDF\uFF0C\u518D\u753B\uFF1B\u9519\u4E86\u53EF\u4EE5\u9000\u56DE\u3002",R("title").textContent="\u6570\u5B57\u4E00\u7B14",R("rule-text").textContent=gr(v);try{ge.setItem(He+":current",v.id)}catch{}me(""),o1(),lc(),i&&Pi(),le()}function lc(){let e=R("pack-list");e.replaceChildren();for(let i of Ne.chapters){let c=ee.createElement("section");c.className="pack";let a=ee.createElement("div");a.className="pack-title";let d=ee.createElement("span");d.textContent=i.title;let r=ee.createElement("span");r.className="pack-progress";let t=V.filter(l=>l.chapter===i.id);r.textContent=t.filter(l=>re.includes(l.id)).length+" / "+t.length,a.append(d,r);let o=ee.createElement("div");o.className="level-grid";for(let l of t){let y=V.indexOf(l),h=ee.createElement("button");h.levelId=l.id,h.textContent=String(V.indexOf(l)+1),h.title=l.title,h.className="level-tile"+(re.includes(l.id)?" cleared":"")+(y===Fe?" current":""),h.onclick=()=>Ai(y),o.append(h)}c.append(a,o),e.append(c)}R("position").textContent=v.chapter+"-"+(V.filter(i=>i.chapter===v.chapter).indexOf(v)+1),R("level-sub").textContent=v.chapterTitle+" \xB7 \u7B2C"+(Fe+1)+"\u5173"+(v.tutorial?" \xB7 \u5F15\u5BFC":""),R("progress").textContent=re.filter(i=>V.some(c=>c.id===i)).length+" / "+ac,R("overall-fill").style.width=re.filter(i=>V.some(c=>c.id===i)).length/ac*100+"%",R("btn-continue").textContent="\u7EE7\u7EED \xB7 "+v.chapter+"-"+(V.filter(i=>i.chapter===v.chapter).indexOf(v)+1),R("level-progress").replaceChildren();for(let i of V.filter(c=>c.chapter===v.chapter)){let c=ee.createElement("i");c.className=(re.includes(i.id)?"cleared ":"")+(i.id===v.id?"current":""),R("level-progress").append(c)}}var gr=Wc;function o1(){R("constraints").replaceChildren()}function le(){if(!v)return;let e=$.clientWidth,i=$.clientHeight;if(!e||!i)return;let c=G.devicePixelRatio||1;$.width!==Math.round(e*c)&&($.width=Math.round(e*c)),$.height!==Math.round(i*c)&&($.height=Math.round(i*c)),We.setTransform(c,0,0,c,0,0),we=ic(We,v,S,e,i,{preview:Ei}),{polygons:$e,centers:Ve,unit:Xe}=we,li=we.channels,ni=we.views;let a=se(v,S);Ei||(w1(),xr(a),R("remaining-n").textContent=Q?"\u5B8C\u6210":String(v.cells.length-S.length),R("remaining").className="remaining"+(Q?" done":""),v.doors?.length&&o1(),a.length&&me(a[0].message+"\uFF0C\u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u9000\u56DE\u3002"),R("undo").disabled=!S.length,R("next").hidden=!Q||Fe===V.length-1)}function r1(e,i,c){let a=!1;for(let d=0,r=c.length-1;di!=y>i&&e<(l-t)*(i-o)/(y-o)+t&&(a=!a)}return a}function d1(e,i){return $e.find(c=>{if(v.geometry!=="hex")return r1(e,i,c.p);let[a,d]=Ve.get(c.id),r=a1==="touch"?.92:.86;return r1(e,i,c.p.map(([t,o])=>[a+(t-a)*r,d+(o-d)*r]))})?.id}function t1(e,i){N.emit("error",v,e,S.at(-1)===e?S.length:S.length+1),X.firstError||(X.firstError={step:S.length+1,cell:e,message:i}),me(i)}function l1(e){if(!e||Q)return;let i=S.indexOf(e);if(i!==-1){if(S.length>=2&&i===S.length-2){X.backtracks++;let a=S.pop();N.emit("undo",v,a,S.length,{from:S.at(-1)}),Te=[],me("\u5DF2\u56DE\u9000\uFF0C\u7EE7\u7EED\u89C2\u5BDF\u5269\u4F59\u683C\u3002"),le()}return}if(!mi(v,S,e)){let a=Je(v);(S.length&&a.adj[a.ids.get(S.at(-1))].includes(a.ids.get(e))||!S.length)&&t1(e,S.length?v.walls?.some(r=>r.includes(S.at(-1))&&r.includes(e))?"\u8FD9\u662F\u6C38\u4E45\u5899\uFF0C\u4E0D\u80FD\u7A7F\u8FC7\u3002":v.doors?.some(r=>r.edge.includes(S.at(-1))&&r.edge.includes(e))?"\u95E8\u73B0\u5728\u5173\u95ED\uFF1B\u7ED5\u884C\u843D\u683C\u540E\u4F1A\u5207\u6362\u3002":"\u540C\u8272\u683C\u4E0D\u80FD\u8FDE\u7EED\u7ECF\u8FC7\uFF0C\u8BF7\u6362\u53E6\u4E00\u79CD\u989C\u8272\u3002":"\u8BF7\u4ECE\u6570\u5B57 1 \u5F00\u59CB\u3002");return}Fi===null&&(Fi=di.now(),X.thinkingBeforeFirstDrawSeconds=Math.round((Fi-Oi)/1e3)),S.push(e),Te=[];let c=se(v,S);if(c.length)t1(e,c[0].message);else{let a=v.cells.find(d=>d.id===e);S.length1&&a.clue===S.length?"checkpoint":"move",v,e,S.length,{from:S.at(-2)}),me("")}if(S.length===v.cells.length&&!c.length){if(Q=!0,X.completed=!0,X.elapsedSeconds=Math.round((di.now()-Oi)/1e3),!re.includes(v.id)){re.push(v.id);try{ge.setItem(He,JSON.stringify(re))}catch{}}me(Fe===V.length-1?ac+"\u5173\u5B8C\u6210\uFF01":"\u5B8C\u6210\uFF01"),N.emit("complete",v,e,S.length,{from:S.at(-2)}),Qe(),lc()}le()}function n1(e){let i=$.getBoundingClientRect();return[e.clientX-i.left,e.clientY-i.top]}$.addEventListener("pointerdown",e=>{N.begin();try{e.preventDefault(),ue.unlock(),a1=e.pointerType||"mouse",dc=!0,$.setPointerCapture(e.pointerId),yi=n1(e),l1(d1(...yi))}finally{N.end()}});$.addEventListener("pointermove",e=>{N.begin();try{if(!dc)return;e.preventDefault();let i=n1(e),c=yi||i,a=Math.hypot(i[0]-c[0],i[1]-c[1]),d=Math.ceil(a/Math.max(3,Xe*.1));for(let r=1;r<=d;r++)ur(c[0]+(i[0]-c[0])*r/d,c[1]+(i[1]-c[1])*r/d);yi=i}finally{N.end()}});function y1(){dc=!1,yi=null}$.addEventListener("pointerup",y1);$.addEventListener("pointercancel",y1);R("undo").onclick=()=>{if(ue.unlock(),S.length){let e=S.pop();N.emit("undo",v,e,S.length,{from:S.at(-1)}),X.backtracks++,X.completed=!1,Q=!1,Te=[],me("\u5DF2\u64A4\u9500\u4E00\u6B65\u3002"),le()}};R("restart").onclick=()=>{N.reset(),ue.unlock(),ue.play("restart"),S=[],Q=!1,Te=[],X.restarts++,X.completed=!1,me("\u5DF2\u91CD\u5F00\u3002"),le()};R("hint").onclick=()=>{X.hints++,Te=[];let e=oc.request(v,Le,S);me(e?"\u6CBF\u5F15\u5BFC\u5E26\u8FDE\u63A5\u4E24\u7AEF\uFF1B\u8D70\u504F\u53EF\u64A4\u9500\u6216\u91CD\u5F00\uFF0C\u6B63\u786E\u5230\u8FBE\u540E\u63D0\u793A\u6D88\u5931\u3002":"\u5DF2\u7ECF\u5B8C\u6210\u3002"),le()};R("next").onclick=()=>{Fe+1{Qe(),Hc({version:Ne.version,exportedAt:new Date().toISOString(),clearedIds:re,records:Ae}),me("\u5DF2\u4FDD\u5B58\u8BD5\u73A9\u8BB0\u5F55\u3002")};G.addEventListener("pagehide",()=>{Qe(),w1()});R("btn-back").onclick=()=>{N.reset(),yr()};R("btn-continue").onclick=Pi;R("btn-rules").onclick=()=>{R("rules-sheet").hidden=!1};R("close-rules").onclick=()=>{R("rules-sheet").hidden=!0};R("btn-feedback").onclick=()=>{R("feedback-sheet").hidden=!1};R("close-feedback").onclick=()=>{Qe(),R("feedback-sheet").hidden=!0};G.addEventListener("resize",le);G.visualViewport?.addEventListener("resize",le);G.addEventListener("orientationchange",le);var nc=null;try{nc=ge.getItem(He+":current")}catch{}var Mt=V.findIndex(e=>e.id===nc),wr=Ri(ge),h1=ji(V,re,wr,nc);Ai(h1.index,!1);S=rc(v,h1.path,mi);S.length===v.cells.length&&!se(v,S).length&&(S=[]);le();Pi();function s1(){R("btn-sound").textContent=ue.enabled?"\u97F3\u6548\u5F00":"\u97F3\u6548\u5173",R("btn-sound").title=ue.enabled?"\u5173\u95ED\u97F3\u6548":"\u5F00\u542F\u97F3\u6548",R("btn-sound").setAttribute?.("aria-pressed",String(ue.enabled))}R("btn-sound").onclick=()=>{ue.toggle(),s1()};s1();function xr(e){if(!v.tutorial)return;let i=v.caption;if(e.length)i="\u89C4\u5219\u4E0D\u7B26\uFF0C\u8BF7\u6CBF\u6765\u65F6\u8DEF\u9000\u56DE\u4E0A\u4E00\u683C\u518D\u8BD5\u3002";else if(Q)i="\u5B66\u4F1A\u4E86\uFF01\u63A5\u4E0B\u6765\u8BD5\u8BD5\u6B63\u5F0F\u5173\u5361\u3002";else if(v.tutorial==="colour")i=S.length===1?"\u4E0B\u4E00\u6B65\u53BB\u6A59\u8272\u5757\uFF1B\u540C\u8272\u84DD\u5757\u4E0D\u80FD\u8FDE\u7EED\u8D70\u3002":S.length===2?"\u518D\u6362\u56DE\u84DD\u8272\uFF0C\u5B8C\u6210\u84DD \u2192 \u6A59 \u2192 \u84DD\u3002":v.caption;else if(["straight","vertical","corner"].includes(v.tutorial)){let c=v.cells.find(d=>d.direction),a=S.indexOf(c.id);a>=0&&a===S.length-1&&(i=v.tutorial==="straight"?"\u6CBF\u6A2A\u7EBF\u4ECE\u53E6\u4E00\u4FA7\u79BB\u5F00\uFF0C\u4E0D\u80FD\u62D0\u5F2F\u3002":v.tutorial==="vertical"?"\u6CBF\u7AD6\u7EBF\u4ECE\u53E6\u4E00\u4FA7\u79BB\u5F00\uFF0C\u4E0D\u80FD\u5411\u5DE6\u53F3\u8D70\u3002":"\u6CBF\u56FE\u4E2D\u62D0\u89D2\u8FDE\u63A5\u7684\u53E6\u4E00\u4FA7\u79BB\u5F00\u3002")}R("caption").textContent=i}G.variantSnapshot=()=>({mode:Ne.mode,level:v.id,order:v.order,displayOrder:Fe+1,tutorial:v.tutorial||null,soundEnabled:ue.enabled,lastSound:ue.lastEvent,chapter:v.chapter,records:Ae.length,cellViews:ni,geometry:v.geometry,directionMarkers:li,screen:R("screen-play").className.includes("hidden")?"select":"play",path:[...S],violations:se(v,S),cleared:Q,centers:Object.fromEntries(Ve),unit:Xe,openedGates:(v.gates||[]).map(e=>S.includes(e.switchCell)),doors:(v.doors||[]).map(e=>ke(e,S)),latchedDoors:(v.doors||[]).map(e=>De(e,S))});function hi(){let e=oc.view(v,Le,S);return e?{...e,visitedPolygons:$e.filter(i=>S.includes(i.id)).map(i=>i.p.map(c=>[...c])),...Vc(we,S,e.route)}:null}function g1(e,i,c,a,d){let r={canvas:$,ctx:We,level:v,solution:Le,path:S,polygons:$e,centers:Ve,unit:Xe,focus:Te,cleared:Q,channelViews:li,cellViews:ni,brightScene:we};try{return $={clientWidth:a,clientHeight:d,get width(){return e.width},set width(t){e.width=t},get height(){return e.height},set height(t){e.height=t}},We=e.getContext("2d"),v={...i,tutorial:null},Le=[],S=c,Te=[],Q=!1,Ei=!0,le(),{centers:Object.fromEntries(Ve),channels:li,cells:ni}}finally{({canvas:$,ctx:We,level:v,solution:Le,path:S,polygons:$e,centers:Ve,unit:Xe,focus:Te,cleared:Q,channelViews:li,cellViews:ni,brightScene:we}=r),Ei=!1}}function w1(){v&&$c(ge,V,re,v,S,Q)}function x1(){let e=Ri(ge),i=ji(V,re,e,v.id);(v.id!==V[i.index].id||Q)&&(Ai(i.index,!1),S=rc(v,i.path,mi),le()),Pi()}function u1(e){if(!we?.animating)return;let i=G.devicePixelRatio||1;We.setTransform(i,0,0,i,0,0),we=ic(We,v,S,$.clientWidth,$.clientHeight,{now:e})}function p1(e){we&&ec(e,we,S)}function yc(){return!!we?.animating}function ur(e,i){let c=d1(e,i);S.length>=2&&c===S.at(-2)&&!_c($e,c,e,i,Xe)||l1(c)}function f1(e){if(e.tutorial)return[e.tutorial];let i=["basic"];e.features.includes("walls")&&i.push("walls");for(let[c,a]of[["straight","lr"],["vertical","du"]])e.cells.some(d=>d.direction===a)&&i.push(c);return e.cells.some(c=>c.direction&&!["lr","du"].includes(c.direction))&&i.push("corner"),e.features.includes("alternation")&&i.push("colour"),e.features.includes("parity")&&i.push("parity"),e.doors?.length&&i.push("rhythm-door"),e.geometry==="hex"&&i.push("hex"),e.cells.some(c=>c.clue===1)||i.push("unknown-start"),i}function m1(e,i){let c=e.levels.find(y=>y.tutorial===i);if(!c)throw Error("\u7F3A\u5C11\u6559\u5B66\u5173 "+i);let a=qi(c)[0],d=Array.from({length:a.length+1},(y,h)=>a.slice(0,h));if(i==="rhythm-door")for(let y=a.length-1;y>=0;y--)d.push(a.slice(0,y));let r=[],t=Je(c);if(i==="walls"&&r.push({after:1,route:a.slice(0,1),blocked:c.walls[0],message:"\u8BD5\u7740\u7A7F\u5899\uFF1A\u8FD9\u6761\u8FB9\u88AB\u6321\u4F4F\uFF0C\u9700\u8981\u7ED5\u884C"}),i==="colour"){let y=c.cells.find(n=>n.id===a[0]),h=t.adj[t.ids.get(y.id)].map(n=>t.cells[n]).find(n=>n.category===y.category);h&&r.push({after:1,route:a.slice(0,1),blocked:[y.id,h.id],message:"\u540C\u8272\u4E0D\u80FD\u8FDE\u7EED\u8D70\uFF1B\u6539\u8D70\u65C1\u8FB9\u7684\u6A59\u8272\u683C"})}if(["straight","vertical","corner","parity"].includes(i))for(let y=1;yt.cells[s].id).find(s=>!h.includes(s)&&se(c,[...h,s]).some(g=>g.key.startsWith((i==="parity"?"parity":"direction")+":")));if(n){r.push({after:y,route:[...h,n],message:i==="parity"?"\u9519\u8BEF\u793A\u4F8B\uFF1A\u5947\u5076\u4E0E\u5F53\u524D\u6B65\u6570\u4E0D\u7B26\uFF0C\u683C\u5B50\u53D8\u7EA2":"\u9519\u8BEF\u793A\u4F8B\uFF1A\u6CA1\u6709\u6CBF\u56FE\u4E2D\u7684\u4E24\u7AEF\u8FDB\u51FA\uFF0C\u56FE\u6807\u53D8\u7EA2"});break}}if(i==="parity"){let y=a[0];for(let h of t.adj[t.ids.get(y)])for(let n of t.adj[h]){let s=[y,t.cells[h].id,t.cells[n].id];new Set(s).size===3&&se(c,s).some(g=>g.key.startsWith("parity:"))&&!r.length&&r.push({after:1,route:s,message:"\u9519\u8BEF\u793A\u4F8B\uFF1A\u7B2C 3 \u6B65\u8D70\u5230\u201C\u5076\u201D\u683C\uFF0C\u683C\u5B50\u53D8\u7EA2"})}}let o=[];d.forEach((y,h)=>{if(o.push({route:y}),hs.after===h)){o.push(n);for(let s=n.route.length-1;s>y.length;s--)o.push({route:n.route.slice(0,s),message:"\u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u9000\u56DE\uFF0C\u518D\u6309\u89C4\u5219\u8D70"});o.push({route:y,message:n.blocked?"\u6539\u8D70\u7B26\u5408\u89C4\u5219\u7684\u76F8\u90BB\u683C\u5B50":"\u6CBF\u6765\u65F6\u8DEF\u9000\u56DE\uFF0C\u91CD\u65B0\u6309\u89C4\u5219\u8D70"})}});let l=[];for(let y of o){let h=l.at(-1);if(!(h&&JSON.stringify(h.route)===JSON.stringify(y.route)&&!y.blocked&&!h.blocked)){if(h&&y.route.length>h.route.length+1)for(let n=h.route.length+1;ng.id===o.at(-1)),s=y?"\u7B2C "+y+" \u6B65":"\u5148\u89C2\u5BDF\u683C\u5B50\uFF0C\u518D\u5F00\u59CB\u8FDE\u7EBF";if(h==="basic"&&(s=y?"\u7B2C "+y+" \u6B65 \xB7 \u6BCF\u4E2A\u683C\u5B50\u53EA\u7ECF\u8FC7\u4E00\u6B21":"\u4ECE\u6570\u5B57 1 \u5F00\u59CB"),h==="colour"&&y&&(s+=" \xB7 "+(n.category==="circle"?"\u84DD\u8272\uFF1B\u4E0B\u4E00\u6B65\u6362\u6A59\u8272":"\u6A59\u8272\uFF1B\u4E0B\u4E00\u6B65\u6362\u84DD\u8272")),h==="parity"&&y&&(s+=" \xB7 "+(y%2?"\u5947\u6570\u6B65\uFF1A1\u30013\u30015\u2026":"\u5076\u6570\u6B65\uFF1A2\u30014\u30016\u2026")),["straight","vertical","corner"].includes(h)){let g=o.findIndex(w=>e.level.cells.find(x=>x.id===w)?.direction);s=g<0?"\u89C2\u5BDF\u7EBF\u6761\u8FDE\u63A5\u7684\u4E24\u7AEF":g===y-1?"\u4ECE\u7EBF\u7684\u4E00\u7AEF\u8FDB\u5165\uFF0C\u4E0B\u4E00\u6B65\u6CBF\u53E6\u4E00\u7AEF\u79BB\u5F00":"\u6CBF\u6307\u5B9A\u7684\u7EBF\u7A7F\u8FC7\uFF0C\u56FE\u6807\u4EAE\u8D77"}if(h==="rhythm-door"){let g=e.level.doors[0];s+=" \xB7 "+(De(g,o)?"\u5DF2\u7ECF\u7A7F\u8FC7\uFF1A\u95E8\u4FDD\u6301\u6253\u5F00":ke(g,o)?"\u95E8\u5F00\uFF1A\u73B0\u5728\u53EF\u4EE5\u7A7F\u8FC7":"\u95E8\u5173\uFF1A\u6B64\u65F6\u4E0D\u80FD\u7A7F\u8FC7"),l.length>y&&(s="\u56DE\u9000\u5230\u7B2C "+y+" \u6B65 \xB7 "+(De(g,o)?"\u5C1A\u672A\u9000\u8FC7\u95E8\uFF0C\u4FDD\u6301\u6253\u5F00":"\u5DF2\u64A4\u9500\u7A7F\u95E8\uFF0C\u6062\u590D\u5F00\u5173\u5207\u6362"))}return h==="walls"&&(s=y?"\u6CBF\u5176\u4ED6\u683C\u5B50\u7ED5\u8FC7\u53BB\uFF0C\u9ED1\u9EC4\u5899\u59CB\u7EC8\u4E0D\u80FD\u7A7F\u8D8A":"\u627E\u5230\u9ED1\u9EC4\u5899\uFF1A\u8FD9\u6761\u8FB9\u4E0D\u80FD\u8D70"),h==="hex"&&(s=y?"\u7B2C "+y+" \u6B65 \xB7 \u6CBF\u76F8\u90BB\u7684\u6574\u6761\u8FB9\u79FB\u52A8":"\u89C2\u5BDF\u516D\u8FB9\u5F62\u76F8\u90BB\u7684\u8FB9"),h==="unknown-start"&&(s=y?"\u7B2C "+y+" \u6B65 \xB7 \u6838\u5BF9\u662F\u5426\u6309\u65F6\u5230\u8FBE\u6570\u5B57\u683C":"\u6CA1\u6709\u6570\u5B57 1\uFF1A\u89C2\u5BDF\u5176\u4ED6\u6570\u5B57\uFF0C\u9009\u62E9\u8D77\u70B9"),s=t.message||s,{route:o,previous:l,message:s,blocked:t.blocked,progress:i>=c?1:d-Math.floor(d),finished:i>=c,index:r}}var pr=1e3;function b1(e,i){let c=e.duration+pr;return Math.min(e.duration,Math.max(0,i)%c)}function v1(e,i,c,a=!1){let d=e.createLinearGradient(0,0,i,c);d&&typeof d.addColorStop=="function"?(d.addColorStop(0,"#FFE898"),d.addColorStop(.45,p.background),d.addColorStop(1,p.backgroundBottom),e.fillStyle=d):e.fillStyle=p.background,e.fillRect(0,0,i,c),!a&&(e.save(),e.strokeStyle=p.pattern,e.globalAlpha=.3,e.lineWidth=3,e.lineJoin="round",e.beginPath(),e.arc(8,c*.18,37,0,Math.PI*2),e.stroke(),e.beginPath(),e.moveTo(i-24,c*.1),e.lineTo(i+9,c*.18),e.lineTo(i-56,c*.16),e.closePath(),e.stroke(),e.save(),e.translate(8,c*.73),e.rotate(-.3),xe(e,-20,-20,44,44,8),e.stroke(),e.restore(),e.beginPath(),e.arc(i+2,c*.87,27,0,Math.PI*1.65),e.stroke(),e.restore())}function fr(e,i,c,a,d,r){if(e.save(),e.translate(c,a),e.scale(d/28,d/28),r||(e.globalAlpha=.38),e.lineCap="round",e.lineJoin="round",e.shadowColor="rgba(130,79,23,.22)",e.shadowBlur=1.5,e.shadowOffsetY=.8,i==="\u6307\u8DEF"){e.strokeStyle="#FFD74E",e.lineWidth=2,e.beginPath();for(let t of[-3.05,-2.45,-1.8,-1.12,-.5,.15])e.moveTo(Math.cos(t)*9.4,-2+Math.sin(t)*9.4),e.lineTo(Math.cos(t)*12.2,-2+Math.sin(t)*12.2);e.stroke(),e.beginPath(),e.arc(0,-2,6.8,0,Math.PI*2),e.fillStyle="#FFD34B",e.fill(),e.shadowBlur=0,e.strokeStyle="#F0B330",e.lineWidth=.75,e.stroke(),e.beginPath(),e.arc(-.8,-2.8,4.4,Math.PI*1.05,Math.PI*1.65),e.strokeStyle="#FFF4BD",e.lineWidth=1.6,e.stroke(),xe(e,-3.2,3.5,6.4,4.8,1.3),e.fillStyle="#FFFAE4",e.fill(),e.beginPath(),e.moveTo(-2.3,6),e.lineTo(2.3,6),e.strokeStyle="#D8D4C9",e.lineWidth=.8,e.stroke(),xe(e,-2.3,8,4.6,1.8,.8),e.fillStyle="#D5CEC5",e.fill()}else if(i==="\u91CD\u5F00"){let t=()=>{e.beginPath(),e.arc(0,0,7.1,-Math.PI*.28,Math.PI*1.25)};t(),e.lineWidth=5.1,e.strokeStyle="#EB633A",e.stroke(),e.shadowBlur=0,e.save(),e.translate(0,-.55),t(),e.lineWidth=4.3,e.strokeStyle="#FF8557",e.stroke(),e.restore(),e.beginPath(),e.moveTo(-4.8,-10.4),e.quadraticCurveTo(-5.6,-11,-6.4,-10.1),e.lineTo(-10,-5.8),e.quadraticCurveTo(-10.7,-4.8,-9.4,-4.3),e.lineTo(-3.7,-2.8),e.quadraticCurveTo(-2.6,-2.7,-2.8,-4),e.closePath(),e.fillStyle="#FF8355",e.fill(),e.strokeStyle="#FFAA7A",e.lineWidth=.65,e.stroke()}else i==="\u64A4\u9500"&&(e.beginPath(),e.moveTo(-10,-2),e.lineTo(-3,-8),e.quadraticCurveTo(-1.5,-9,-1.5,-6),e.lineTo(-1.5,-4),e.lineTo(2,-4),e.quadraticCurveTo(10,-4,10,4),e.lineTo(10,7),e.quadraticCurveTo(10,9,7.8,9),e.quadraticCurveTo(5.8,9,5.8,7),e.lineTo(5.8,5),e.quadraticCurveTo(5.8,1,2,1),e.lineTo(-1.5,1),e.lineTo(-1.5,3.5),e.quadraticCurveTo(-1.5,6,-3.5,4.4),e.closePath(),e.fillStyle="#FFBE40",e.fill(),e.shadowBlur=0,e.strokeStyle="#F2A323",e.lineWidth=.8,e.stroke(),e.beginPath(),e.moveTo(-7.7,-2.2),e.lineTo(-3.3,-6),e.strokeStyle="#FFE6A1",e.lineWidth=.8,e.stroke());e.restore()}function B1(e,i,c,a,d,r,{enabled:t=!0,primary:o=!1,pressed:l=!1}={}){let y=Math.min(d*.24,r*J.referenceMatch.buttonRadiusRatio),h=l?2:0;e.save(),de(e,c,a+h,d,r-4,y,t?o?l?p.primaryPressed:p.primary:p.surface:p.surfaceMuted,t?l?2:5:3);let n=t?o?p.onPrimary:p.ink:p.disabledInk;if(["\u91CD\u5F00","\u64A4\u9500","\u6307\u8DEF"].includes(i)&&r>=50){let s=i==="\u91CD\u5F00"?38:i==="\u64A4\u9500"?36:35;fr(e,i,c+d/2,a+r*.3+h,s*(r>=64?1:.79),t),e.shadowColor=o?"rgba(255,255,255,.40)":"rgba(255,255,255,.6)",e.shadowOffsetY=o?0:.6,e.shadowBlur=o?2:.8,Ec(e,i,c+d/2,a+r*.72+h,r>=64?18.5:16,n)}else ce(e,i,c+d/2,a+r/2-1+h,o?16:14,n,700);e.restore()}function k1(e,i,c,a,d=!1){let r=J.referenceMatch.stageMargin;de(e,r,c,i-r*2,a,d?24:30,p.stage,d?4:6)}function S1(e,i,c,a,d,r,t){de(e,i,c,a,d,d/2,p.surface,3);let o=[["\u5DF2\u8D70 ",p.ink],[""+r,p.primary],[" \u6B65 \xB7 \u8FD8\u5269 ",p.ink],[""+t,p.primary],[" \u5757",p.ink]],l=a<240?13:15;Re(e,l,700);let y=o.map(([s])=>e.measureText(s).width),h=y.reduce((s,g)=>s+g,0),n=i+(a-h)/2;o.forEach(([s,g],w)=>{ce(e,s,n+y[w]/2,c+d/2-1,l,g,700),n+=y[w]})}var M1=wx.createCanvas(),te=null,si=0,ae=null,hc=new Map,E=e=>ee.getElementById(e),C=Pe.getContext("2d"),j=375,z=812,H=60,be=24,Z=0,_e=[],Ge=null,ii=!0,gi=0,qe=0,uc="",sc=null,I1=0,Ze=wx.createCanvas(),gc=Ze.getContext("2d"),ve=new xi(wx),pc=new ui,Ni={key:"",started:0},ye=!1,D1="",Li=0,fc=!1,R1=0,ie=null,wc=!1;function Be(){ii&&!gi&&(gi=requestAnimationFrame(qr))}var Wi=wx.createCanvas(),ei="",j1=0;Lc(()=>{ei="",Be()});K.reducedMotion=!1;var Ie=je.playOrder.map(e=>je.levels.find(i=>i.id===e));function mc(){ei="";let e=wx.getWindowInfo?wx.getWindowInfo():wx.getSystemInfoSync();j=e.windowWidth,z=e.windowHeight,H=Math.max(e.safeArea?.top||0,wx.getMenuButtonBoundingClientRect?.().bottom||0)+12,be=Math.max(16,z-(e.safeArea?.bottom||z)),G.devicePixelRatio=Math.min(e.pixelRatio||1,3),Pe.width=j*G.devicePixelRatio,Pe.height=z*G.devicePixelRatio,E("board").clientWidth=j,E("board").clientHeight=Math.max(140,z-H-be-218),G.handlers.resize?.(),Be()}function ne(e,i,c,a=16,d=p.ink){ce(C,e,i,c,a,d)}function xc(e,i,c=16){Re(C,c);let a=[];for(let d of String(e).split(` +`)){let r="";for(let t of d)r&&C.measureText(r+t).width>i&&(a.push(r),r=""),r+=t;a.push(r)}return a}function Y(e,i,c,a,d,r,{enabled:t=!0,primary:o=!1}={}){B1(C,e,i,c,a,d,{enabled:t,primary:o,pressed:!K.reducedMotion&&D1===e&&Date.now()e.children[1].children)}function T1(e,i,c){if(e){let a=i.level+":"+e.start+":"+e.end;Ni.key!==a&&(Ni={key:a,started:Date.now()});let d=E("board").clientHeight;Ze.width!==Math.round(j*c)&&(Ze.width=Math.round(j*c)),Ze.height!==Math.round(d*c)&&(Ze.height=Math.round(d*c)),gc.setTransform(c,0,0,c,0,0),gc.clearRect(0,0,j,d),c1(gc,e,i.centers,i.unit,Date.now()-Ni.started,i.path,pc.frame(a,Date.now(),N.events)),C.drawImage(Ze,0,H+82,j,d),C.save(),C.translate(0,H+82),p1(C),C.restore()}else Ni={key:"",started:0},pc.reset()}function qr(){if(gi=0,!ii)return;R1++;let e=G.devicePixelRatio;C.setTransform(e,0,0,e,0,0);let i=G.variantSnapshot();ve.scene(i.screen==="select"?"select":"play"),!i.cleared||i.screen!=="play"?(ie=null,fc=!1):!fc&&(!ie||ie.key!==i.level)&&(ie={key:i.level,started:Date.now(),requested:fe.completeRequestedAt}),ie&&(ie.started=N.completionStart(fe.completeStartedAt,i.soundEnabled));let c=hi(),a=!!c&&i.screen==="play"&&!i.cleared&&!ye&&E("rules-sheet").hidden&&!yc()&&Date.now()>=Li,d=JSON.stringify([i.level,i.path,j,z,e,K.reducedMotion]);if(a&&ei===d){j1++,C.drawImage(Wi,0,0,j,z),T1(c,i,e),K.reducedMotion||Be();return}let r=Ie.find(n=>n.id===i.level),t=(r.features||[]).length>=3||i.cellViews?.length>=30;if(v1(C,j,z,!E("screen-play").className.includes("hidden")&&t),_e=[],E("screen-play").className.includes("hidden")){ne("\u6570\u5B57\u4E00\u7B14",j/2,H+18,30,p.primary),ne("\u603B\u8FDB\u5EA6 "+E("progress").textContent,j/2,H+42,12,p.inkSecondary),Y("\u8BBE\u7F6E",j-72,H+4,56,34,()=>ye=!0);let n=mr(),s=Math.ceil(Ie.length/15);wc||(Z=Math.floor((i.displayOrder-1)/15)),wc=!0,Z=Math.max(0,Math.min(s-1,Z));let w=Ie.slice(Z*15,(Z+1)*15).map(u=>n[Ie.indexOf(u)]),x=Oc(j,z,H,be,15);ne("\u7B2C "+(Z*15+1)+" \u2014 "+Math.min((Z+1)*15,Ie.length)+" \u5173",j/2,H+60,16,p.primary),w.forEach((u,m)=>{let k=Math.floor(m/x.columns),q=m%x.columns,B=w.length-k*x.columns,D=x.x+0+q*(x.w+x.gap),M=x.y+k*(x.h+x.gap),f=u.textContent+(u.className.includes("cleared")?" \u2713":"");Pc(C,u.textContent,D,M,x.w,x.h,{completed:u.className.includes("cleared"),current:u.className.includes("current")}),_e.push({label:f,x:D,y:M,w:x.w,h:x.h,run:()=>u.click(),enabled:!0})}),Y("\u4E0A\u4E00\u9875",18,z-be-106,90,38,()=>Z=Math.max(0,Z-1),{enabled:Z>0}),ne(Z+1+" / "+s,j/2,z-be-87),Y("\u4E0B\u4E00\u9875",j-108,z-be-106,90,38,()=>Z=Math.min(s-1,Z+1),{enabled:Zpe("btn-continue"),{primary:!0}),Y("\u53CD\u9988",j-98,z-be-56,80,42,br)}else{wc=!1,Y("\u9009\u5173",16,H,62,36,()=>pe("btn-back")),de(C,j/2-60,H+2,120,32,16,p.coral,3),ne("\u7B2C "+G.variantSnapshot().displayOrder+" \u5173",j/2,H+18,18,p.onPrimary),Y("\u8BBE\u7F6E",j-94,H,78,36,()=>ye=!0),S1(C,84,H+43,j-100,31,i.path.length,r.cells.length-i.path.length),k1(C,j,H+82,E("board").clientHeight,t),u1(Date.now()),C.drawImage(oi,0,H+82,j,E("board").clientHeight);let n=z-be-102,s=G.variantSnapshot().cleared,g=s?G.variantSnapshot().displayOrder===Ie.length?"200 \u5173\u5168\u90E8\u5B8C\u6210\uFF01":"\u5B8C\u6210\uFF01\u51C6\u5907\u597D\u5C31\u8FDB\u5165\u4E0B\u4E00\u5173\u3002":E("status").className.includes("show")&&E("status").textContent?E("status").textContent:"\u6309\u4F4F\u6ED1\u52A8\u8FDE\u7EBF \xB7 \u6CBF\u6765\u65F6\u8DEF\u9010\u683C\u56DE\u9000",w=xc(g,j-36,13);w.slice(0,2).forEach((u,m)=>ne(m===1&&w.length>2?u.slice(0,-1)+"\u2026":u,j/2,n-12+m*22,13,s?p.success:p.inkSecondary));let x=z<700?54:70;if(s)Y(E("next").hidden?"\u8FD4\u56DE\u9009\u5173":"\u4E0B\u4E00\u5173 \u2192",16,n+22,j-32,x,()=>pe(E("next").hidden?"btn-back":"next"),{primary:!0});else{let u=(j-48)/3;Y("\u91CD\u5F00",16,n+22,u,x,()=>pe("restart")),Y("\u64A4\u9500",24+u,n+22,u,x,()=>pe("undo"),{enabled:!E("undo").disabled}),Y("\u6307\u8DEF",32+2*u,n+22,u,x,()=>pe("hint"),{primary:!0})}Y("\u89C4\u5219",16,H+43,56,30,()=>pe("btn-rules"))}if(ie&&ie.started===null&&!ye&&E("rules-sheet").hidden){let n=j/2,s=H+82+E("board").clientHeight*.45;de(C,n-74,s-40,148,80,25,p.surface,2),ne("\u5B8C\u6210\uFF01",n,s,24,p.success)}if(ie&&ie.started!==null&&!K.reducedMotion&&!ye&&E("rules-sheet").hidden&&Ac(C,j,H+82,E("board").clientHeight,Date.now()-ie.started),!E("rules-sheet").hidden){C.fillStyle="rgba(67,56,47,.32)",C.fillRect(0,0,j,z);let n=H+12,s=Math.max(240,z-n-be-20);de(C,16,n,j-32,s,24,p.surface,5),_e=[],ne("\u600E\u4E48\u73A9",j/2,n+28,23);let g=G.variantSnapshot().level+":"+E("rule-text").textContent;uc!==g&&(uc=g,qe=0,te=null);let w=Ie.find(I=>I.id===G.variantSnapshot().level),x=f1(w),u=[],m=Math.max(90,Math.min(220,s*.34)),k=Math.max(1,Math.floor((s-m-230)/23));for(let I of x){let _=I==="basic"&&!w.tutorial?` +\u683C\u5B50\u91CC\u7684\u6570\u5B57\u8868\u793A\u7B2C\u51E0\u6B65\u5230\u8FD9\u91CC\uFF0C\u4F8B\u5982\u6570\u5B57 5\uFF0C\u8981\u5728\u7B2C 5 \u6B65\u5230\u8FBE\u3002`+(w.geometry==="blocks"?"\u5927\u683C\u6216\u4E0D\u89C4\u5219\u683C\u5B50\uFF0C\u6574\u4E2A\u53EA\u7B97\u4E00\u6B65\u3002":"")+"\u8D70\u9519\u540E\u6CBF\u539F\u8DEF\u9000\u4E00\u6B65\uFF0C\u6216\u70B9\u64A4\u9500\uFF1B\u91CD\u5F00\u4F1A\u6E05\u7A7A\u8DEF\u7EBF\u3002":"",he=xc(Me[I]+_,j-72,15);for(let oe=0;oef.centers[he]);C.beginPath(),C.moveTo(b.x+I[0],b.y+I[1]),C.lineTo(b.x+_[0],b.y+_[1]),C.setLineDash([5,5]),C.strokeStyle=p.danger,C.lineWidth=4,C.stroke(),C.setLineDash([]),ne("\xD7",b.x+(I[0]+_[0])/2,b.y+(I[1]+_[1])/2,26,p.danger)}let T=ae.route.at(-1),A=ae.previous.at(-1),F=f.centers[T],O=f.centers[A]||F;if(F){let I=ae.progress,_=b.x+O[0]+(F[0]-O[0])*I,he=b.y+O[1]+(F[1]-O[1])*I;O!==F&&(C.beginPath(),C.moveTo(b.x+O[0],b.y+O[1]),C.lineTo(_,he),C.strokeStyle=p.primary,C.lineWidth=6,C.lineCap="round",C.stroke()),C.beginPath(),C.arc(_,he,10,0,Math.PI*2),C.strokeStyle=p.hint,C.lineWidth=3,C.stroke()}xc(ae.message,j-76,14).forEach((I,_)=>ne(I,j/2,b.y+b.h+16+_*20,14,p.primary)),q.lines.forEach((I,_)=>ne(I,j/2,b.y+b.h+65+_*23,15)),Y("\u91CD\u64AD",j/2-32,n+s-144,64,30,()=>{si=Date.now()}),u.length>1&&(Y("\u4E0A\u4E00\u6BB5",38,n+s-102,80,30,()=>{qe--,te=null},{enabled:qe>0}),ne(qe+1+" / "+u.length,j/2,n+s-87,14),Y("\u4E0B\u4E00\u6BB5",j-118,n+s-102,80,30,()=>{qe++,te=null},{enabled:qepe("close-rules"),{primary:!0})}if(ye){C.fillStyle="rgba(67,56,47,.32)",C.fillRect(0,0,j,z),_e=[];let n=Math.max(H,z/2-185);de(C,24,n,j-48,340,24,p.surface,5),ne("\u8BBE\u7F6E",j/2,n+32,24),Y("\u97F3\u4E50\uFF1A"+(ve.enabled?"\u5F00":"\u5173"),44,n+65,j-88,48,()=>ve.toggle()),Y(E("btn-sound").textContent,44,n+125,j-88,48,()=>pe("btn-sound")),Y("\u632F\u52A8\uFF1A"+(N.haptics.enabled?"\u5F00":"\u5173"),44,n+185,j-88,48,()=>N.haptics.setEnabled(!N.haptics.enabled)),Y("\u5B8C\u6210",44,n+265,j-88,48,()=>ye=!1,{primary:!0})}a?(Wi.width=Pe.width,Wi.height=Pe.height,Wi.getContext("2d").drawImage(Pe,0,0),ei=d):ei="",!ye&&E("rules-sheet").hidden&&i.screen==="play"&&T1(c,i,e);let l=!ye&&E("rules-sheet").hidden&&i.screen==="play",y=!ye&&!E("rules-sheet").hidden&&!K.reducedMotion&&!!te,h=l&&ie&&!K.reducedMotion&&(ie.started===null||Date.now()-ie.started{e.confirm&&(E("reasoning").value=e.content||"",pe("close-feedback"),wx.showModal({title:"\u53CD\u9988\u5DF2\u4FDD\u5B58",content:"\u662F\u5426\u5BFC\u51FA\u5168\u90E8\u8BD5\u73A9\u8BB0\u5F55\uFF1F",success:i=>{i.confirm&&pe("export")}}))}})}function C1(e){return{clientX:e.clientX,clientY:e.clientY-H-82,pointerId:e.identifier,pointerType:"touch",preventDefault(){}}}wx.onTouchStart(e=>{if(ve.resume(),Ge!==null)return;let i=e.changedTouches[0];if(!i)return;let c=_e.find(a=>i.clientX>=a.x&&i.clientX<=a.x+a.w&&i.clientY>=a.y&&i.clientY<=a.y+a.h);if(c){if(c.enabled){ve.resume(),ei="",D1=c.label,Li=Date.now()+120;let a=E("screen-play").className.includes("hidden")||ye;c.run(),a&&N.audio.play("ui"),Be()}return}ye||!E("rules-sheet").hidden||E("screen-play").className.includes("hidden")||i.clientYH+82+E("board").clientHeight||(Ge=i.identifier,E("board").handlers.pointerdown?.(C1(i)),Be())});wx.onTouchMove(e=>{let i=e.touches.find(c=>c.identifier===Ge);i&&(E("board").handlers.pointermove?.(C1(i)),Be())});var F1=e=>{e.changedTouches.some(i=>i.identifier===Ge)&&(E("board").handlers.pointerup?.(),Ge=null)};wx.onTouchEnd(F1);wx.onTouchCancel(F1);wx.onHide(()=>{ii=!1,ve.suspend(),pc.reset(),si=Date.now(),fc=G.variantSnapshot().cleared,ie=null,N.reset(),$i(),cancelAnimationFrame(gi),gi=0,Ge=null,E("board").handlers.pointercancel?.(),G.handlers.pagehide?.()});wx.onShow(()=>{ii||(ii=!0,ve.resume(),si=Date.now(),ye=!1,x1(),mc(),Be())});wx.onAudioInterruptionBegin?.(()=>{ve.suspend(),N.reset(),$i()});wx.onAudioInterruptionEnd?.(()=>{ii&&(ve.resume(),Be())});wx.onWindowResize?.(mc);GameGlobal.numberSwipeR2={snapshot:()=>({...G.variantSnapshot(),theme:"bright-classroom",release:vc,fonts:{...Bi},renderedFrames:R1,hintBaseHits:j1,lessonBoardRenders:I1,music:ve.snapshot(),selection:{page:Z+1,pages:Math.ceil(Ie.length/15),pageSize:15,chapter:Z+1,chapters:Math.ceil(Ie.length/15)},reducedMotion:K.reducedMotion,boardRect:{x:0,y:H+82,w:j,h:E("board").clientHeight},hint:hi(),audio:{...fe},feedback:N.snapshot(),rules:E("rule-text").textContent,lesson:!E("rules-sheet").hidden&&ae?{key:te?.key,finished:ae.finished,duration:te?.duration,path:[...ae.route],message:ae.message}:null}),buttons:()=>_e.map(({label:e,x:i,y:c,w:a,h:d,enabled:r})=>({label:e,x:i,y:c,w:a,h:d,enabled:r}))};mc();Be();})(); diff --git a/wechat-campaign-200-r2/layered-feedback-build.mjs b/wechat-campaign-200-r2/layered-feedback-build.mjs new file mode 100644 index 0000000..2c9d832 --- /dev/null +++ b/wechat-campaign-200-r2/layered-feedback-build.mjs @@ -0,0 +1,21 @@ +export function applyLayeredFeedback(source){ + const replace=(old,value)=>{if(!source.includes(old))throw Error('Layered feedback seam changed: '+old.slice(0,80));source=source.replace(old,value);}; + source="import {feedback} from '../feedback.mjs';\nimport {inBacktrackCore} from '../backtrack.mjs';\n"+source; + replace('const labels=new Map();',"feedback.attach(sound,wx,localStorage);\nconst labels=new Map();"); + replace('function start(i,open=true){','function start(i,open=true){feedback.reset();'); + replace("function markError(id,message){sound.play('error');","function markError(id,message){feedback.emit('error',level,id,path.at(-1)===id?path.length:path.length+1);"); + replace("record.backtracks++;path.pop();sound.play('undo');","record.backtracks++;const removed=path.pop();feedback.emit('undo',level,removed,path.length,{from:path.at(-1)});"); + replace("path.pop();sound.play('undo');record.backtracks++;","const removed=path.pop();feedback.emit('undo',level,removed,path.length,{from:path.at(-1)});record.backtracks++;"); + const audio="if(path.length1?'checkpoint':'correct'):'move',0,path.length)"; + replace(audio,"if(path.length1&&cell.clue===path.length?'checkpoint':'move',level,id,path.length,{from:path.at(-2)})"); + replace("sound.play('complete',0)","feedback.emit('complete',level,id,path.length,{from:path.at(-2)})"); + replace("sound.unlock();sound.play('restart');","feedback.reset();sound.unlock();sound.play('restart');"); + replace('advance(hit(a[0]+(p[0]-a[0])*i/steps,a[1]+(p[1]-a[1])*i/steps))','advanceAt(a[0]+(p[0]-a[0])*i/steps,a[1]+(p[1]-a[1])*i/steps)'); + source+=`\nfunction advanceAt(x,y){const id=hit(x,y);if(path.length>=2&&id===path.at(-2)&&!inBacktrackCore(polygons,id,x,y,unit))return;advance(id);}\n`; + for(const event of ['pointerdown','pointermove']){ + const line=source.split('\n').find(l=>l.startsWith(`canvas.addEventListener('${event}',e=>{`));if(!line)throw Error('Missing input batch '+event); + const normalized=line.trimEnd(),at=normalized.indexOf('e=>{')+4;source=source.replace(line,normalized.slice(0,at)+'feedback.begin();try{'+normalized.slice(at,-3)+'}finally{feedback.end();}});'); + } + source=source.replace("$('btn-back').onclick=showSelect;","$('btn-back').onclick=()=>{feedback.reset();showSelect();};"); + return source; +} diff --git a/wechat-campaign-200-r2/music-assets.mjs b/wechat-campaign-200-r2/music-assets.mjs new file mode 100644 index 0000000..f8a6638 --- /dev/null +++ b/wechat-campaign-200-r2/music-assets.mjs @@ -0,0 +1,7 @@ +import fs from 'node:fs';import path from 'node:path'; +// Original sparse pentatonic loops. Each damped note wraps its tail across the seam. +export function buildMusic(root){fs.mkdirSync(path.join(root,'music'),{recursive:true});const rate=22050,seconds=16,n=rate*seconds; + for(const [name,notes]of Object.entries({select:[60,67,72,64,69,67,64,62],play:[48,55,60,55,57,52,55,50]})){ + const samples=new Float64Array(n);for(let k=0;k{const stored=new Map(),calls=[];const api={getStorageSync:k=>stored.get(k),setStorageSync:(k,v)=>stored.set(k,v),createInnerAudioContext:()=>({stop(){calls.push('stop');},play(){calls.push(this.src);},onError(){}})};const m=new Music(api);m.scene('select');m.scene('select');assert.equal(calls.filter(x=>x==='music/select.wav').length,1);assert.equal(m.audio.loop,true);m.scene('play');m.suspend();m.scene('select');assert.equal(m.playing,null);m.resume();assert.equal(m.playing,'select');m.toggle();assert.equal(new Music(api).enabled,false);}); +test('old arrows retain distance, rush to endpoint and fresh arrows move at base speed',()=>{const a=new HintArrows(),motion={total:300},events=[];let f=a.frame('a',0,events);a.heads(f,motion,0);f=a.frame('a',100,events);assert.equal(a.heads(f,motion,0)[0],6.5);events.push({sequence:1,kind:'move'});f=a.frame('a',116,events);const at=a.heads(f,motion,30);assert.ok(at[0]>6.5&&at[0]<10);assert.equal(at[1],30);f=a.frame('a',216,events);const next=a.heads(f,motion,30);assert.ok(next[0]>150);assert.equal(next[1],36.5);for(let t=316;t<=416;t+=100)a.heads(a.frame('a',t,events),motion,30);assert.ok(a.particles.every(p=>!p.rush));a.reset();assert.equal(a.key,null);}); +test('settings have exactly three independent preferences, and hint has its own cue',()=>{const ui=boot();ui.select(3);ui.button('设置');assert.deepEqual(Array.from(ui.api.buttons(),b=>b.label),['音乐:开','音效开','振动:开','完成']);ui.button('完成');ui.button('指路');assert.equal(ui.played.at(-1),'audio/hint.wav');ui.button('选关');assert.ok(ui.played.includes('music/select.wav'));ui.button('下一页');assert.equal(ui.played.at(-1),'audio/ui.wav');}); +test('actual fixed numeric node uses checkpoint pitch, final cell uses complete chord',()=>{const pack=JSON.parse(fs.readFileSync(new URL('./src/upstream/levels.json',import.meta.url)));const levels=pack.playOrder.map(id=>pack.levels.find(l=>l.id===id));const i=levels.findIndex(l=>l.cells.some(c=>c.clue>1&&c.cluee.kind==='checkpoint'));}); +test('two original music loops are quiet, nonempty and have a smooth loop seam',()=>{for(const name of ['select','play']){const b=fs.readFileSync(new URL('./music/'+name+'.wav',import.meta.url));assert.equal(b.readUInt32LE(24),22050);assert.ok(b.length>600000);assert.ok(Math.abs(b.readInt16LE(44)-b.readInt16LE(b.length-2))<100);}}); diff --git a/wechat-campaign-200-r2/music/play.wav b/wechat-campaign-200-r2/music/play.wav new file mode 100644 index 0000000..2cb67d1 Binary files /dev/null and b/wechat-campaign-200-r2/music/play.wav differ diff --git a/wechat-campaign-200-r2/music/select.wav b/wechat-campaign-200-r2/music/select.wav new file mode 100644 index 0000000..5209a55 Binary files /dev/null and b/wechat-campaign-200-r2/music/select.wav differ diff --git a/wechat-campaign-200-r2/package-lock.json b/wechat-campaign-200-r2/package-lock.json new file mode 100644 index 0000000..b62d466 --- /dev/null +++ b/wechat-campaign-200-r2/package-lock.json @@ -0,0 +1,484 @@ +{ + "name": "numberswipe-main", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "numberswipe-main", + "version": "1.0.0", + "devDependencies": { + "esbuild": "0.24.2" + }, + "engines": { + "node": ">=22" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + } + } +} diff --git a/wechat-campaign-200-r2/package.json b/wechat-campaign-200-r2/package.json new file mode 100644 index 0000000..edab011 --- /dev/null +++ b/wechat-campaign-200-r2/package.json @@ -0,0 +1,20 @@ +{ + "name": "numberswipe-main", + "version": "1.0.0", + "private": true, + "type": "module", + "engines": { + "node": ">=22" + }, + "scripts": { + "build": "node build.mjs", + "test": "node --test *.test.mjs", + "smoke": "node smoke.mjs", + "check": "npm run build && npm test && npm run smoke", + "package": "powershell -NoProfile -ExecutionPolicy Bypass -File package.ps1", + "preview": "node qa/serve.mjs" + }, + "devDependencies": { + "esbuild": "0.24.2" + } +} diff --git a/wechat-campaign-200-r2/package.ps1 b/wechat-campaign-200-r2/package.ps1 index 4abf9fe..81dbc80 100644 --- a/wechat-campaign-200-r2/package.ps1 +++ b/wechat-campaign-200-r2/package.ps1 @@ -1,7 +1,9 @@ $ErrorActionPreference = 'Stop' $releaseDir = Join-Path (Split-Path $PSScriptRoot -Parent) 'releases' New-Item -ItemType Directory -Path $releaseDir -Force | Out-Null -$archivePath = Join-Path $releaseDir 'NumberSwipe-campaign-200-r2-明亮教具室-续玩选关教学流畅版-20261022.zip' -$assets = @('game.js','game.json','project.config.json','audio','fonts','release-info.json') | ForEach-Object { Join-Path $PSScriptRoot $_ } +$releaseInfo = Get-Content -LiteralPath (Join-Path $PSScriptRoot 'release-info.json') -Raw | ConvertFrom-Json +$archivePath = Join-Path $releaseDir $releaseInfo.package +$assets = @('game.js','game.json','project.config.json','audio','audio-original','music','fonts','release-info.json') | ForEach-Object { Join-Path $PSScriptRoot $_ } Compress-Archive -LiteralPath $assets -DestinationPath $archivePath -Force -Get-FileHash -LiteralPath $archivePath -Algorithm SHA256 +$hashStream = [IO.File]::OpenRead($archivePath) +try { $hasher = [Security.Cryptography.SHA256]::Create(); [BitConverter]::ToString($hasher.ComputeHash($hashStream)).Replace('-','') } finally { $hashStream.Dispose() } diff --git a/wechat-campaign-200-r2/project.config.json b/wechat-campaign-200-r2/project.config.json index ba1a3a4..9c8f128 100644 --- a/wechat-campaign-200-r2/project.config.json +++ b/wechat-campaign-200-r2/project.config.json @@ -83,13 +83,33 @@ { "type": "file", "value": "resume-select.test.mjs" + }, + { + "type": "file", + "value": "layered-feedback-build.mjs" + }, + { + "type": "file", + "value": "feedback.test.mjs" + }, + { + "type": "file", + "value": "OPTIMIZATION.md" + }, + { + "type": "file", + "value": "music-assets.mjs" + }, + { + "type": "file", + "value": "music-flow.test.mjs" } ] }, "isGameTourist": false, "appid": "wx7a14d0d70b5dd13d", "editorSetting": {}, - "projectname": "NumberSwipe-campaign-200-r2", - "description": "数字一笔200关主版·续玩选关与教学流畅优化", + "projectname": "NumberSwipe_New-main", + "description": "正式主版本:分层反馈、音乐与流动指路", "miniprogramRoot": "./" } diff --git a/wechat-campaign-200-r2/qa/bright-classroom.html b/wechat-campaign-200-r2/qa/bright-classroom.html index 1ed475b..807a369 100644 --- a/wechat-campaign-200-r2/qa/bright-classroom.html +++ b/wechat-campaign-200-r2/qa/bright-classroom.html @@ -9,8 +9,8 @@ @font-face{font-family:NumberSwipePlayful;src:url(../fonts/NumberSwipePlayful.ttf)} *{box-sizing:border-box}body{margin:0;background:#fff6df;color:#43382f;font:15px NumberSwipeSans500,sans-serif}header{padding:28px 32px 20px;border-bottom:1px solid #e5d7ba}h1{margin:0 0 8px;font:25px NumberSwipeSans700}p{margin:8px 0;line-height:1.7;color:#71604f}main{display:flex;gap:32px;padding:28px 32px;align-items:flex-start}.tools{width:270px;position:sticky;top:24px}.tools h2{font-size:17px;margin:24px 0 10px}.tools button,select{font:14px NumberSwipeSans600;cursor:pointer;border:1px solid #d8c4a0;background:#fffbf2;color:#43382f;border-radius:12px;padding:12px;margin:0 6px 8px 0}.tools button:hover{border-color:#6552d9;color:#5140b7}.tools select{width:100%}.phone{border:1px solid #d8c4a0;border-radius:24px;overflow:hidden;box-shadow:0 12px 34px #43382f14;background:#ffe69a}canvas{display:block;touch-action:none}.note{font-size:13px}#status{background:#ece7ff;color:#5140b7;border-radius:12px;padding:12px;margin-top:16px}a{color:#5140b7}@media(max-width:750px){main{padding:16px;flex-direction:column}.tools{width:100%;position:static}.phone{align-self:center}header{padding:20px}} -

数字一笔 · 明亮教具室

200关实际游戏包的 Canvas 预览。全部画面由程序绘制,字体随包提供。

-
+

数字一笔 · 分层反馈独立实验版

200关实际游戏包的 Canvas 预览。全部画面由程序绘制,字体随包提供。

+