diff --git a/bench/board.json b/bench/board.json new file mode 100644 index 0000000..57db9cb --- /dev/null +++ b/bench/board.json @@ -0,0 +1,195 @@ +{ + "goal": "调出 50 关难度合适、好玩的关卡,交付人工审核", + "updated": "09-14 16:21", + "round": 0, + "definition": { + "title": "「难度合适且好玩」在这套度量下的操作定义", + "why": "评分里只有 difficulty(复测 r=0.93)和 stuck(r=0.85)可信;rotation / clarity / fun 的复测 r 只有 0.32 / 0.19 / 0.56,是模型噪声,不能拿来调参。所以「好玩」必须换成机械代理。", + "rules": [ + { + "k": "难度", + "v": "agent 的 difficulty 评分沿关号上升,末档逼近 3.0(3 = 刚刚好),全程不超过 3.2", + "how": "grok 抽样评分" + }, + { + "k": "不挫败", + "v": "stuck ≤ 2.0,盲转 = 0,转错方向 = 0", + "how": "规则机器人全量扫,12 秒" + }, + { + "k": "不无脑", + "v": "猴子玩家 动作÷棋子 ≥ 3.0(v0.5 全库 1.67 = 乱点就能过)", + "how": "生成时算" + }, + { + "k": "旋转是主线", + "v": "0 旋转关 ≤ 5 关(10%),且随关号推进旋转数递增", + "how": "求解器" + }, + { + "k": "不重复", + "v": "50 关盘面签名互不相同,路线家族分布不偏科", + "how": "deepLevelKey 去重" + } + ] + }, + "targets": { + "levels": 50, + "rotationQuota": { + "0": 5, + "1": 12, + "2": 15, + "3": 18 + }, + "difficultyCurve": [ + { + "band": "L1–L12", + "rot": "0–1 转", + "difficulty": "1.5 – 2.0" + }, + { + "band": "L13–L32", + "rot": "1–2 转", + "difficulty": "2.0 – 2.6" + }, + { + "band": "L33–L50", + "rot": "2–3 转", + "difficulty": "2.6 – 3.0" + } + ] + }, + "phases": [ + { + "id": "P0", + "title": "判据:先说清楚什么叫「好」", + "tasks": [ + { + "id": "T0.1", + "title": "难度曲线与旋转配额定义", + "status": "done", + "note": "50 关分三档,0 转关卡死 10% 上限(用户硬要求)" + }, + { + "id": "T0.2", + "title": "机械验收门槛", + "status": "done", + "note": "盲转=0、转错=0、终局可走朝向≥2 —— 前两项已由改锁结构达成" + }, + { + "id": "T0.3", + "title": "「好玩」的机械代理指标", + "status": "done", + "note": "猴子 APT ≥3.0。fun 评分复测 r=0.56 不可用,改用「乱点过不了」当代理" + } + ] + }, + { + "id": "P1", + "title": "产能:先得有足够多的候选", + "tasks": [ + { + "id": "T1.1", + "title": "深锁关(3 转)扩产到 ≥60 个候选", + "status": "todo", + "note": "当前 14 种子出 17 关,需扩大种子与半径扫描" + }, + { + "id": "T1.2", + "title": "中档(2 转)生成路径", + "status": "todo", + "note": "deep-lock 固定 3 转,v0.5 最多 2 转 —— 中档要么放宽锁链,要么从 v0.5 筛" + }, + { + "id": "T1.3", + "title": "简单档(0–1 转)候选池", + "status": "todo", + "note": "从 v0.5 筛,但必须过猴子 APT 门槛(v0.5 全库中位 1.67,大部分会被刷掉)" + }, + { + "id": "T1.4", + "title": "去重与家族均衡", + "status": "todo", + "note": "6 个路线家族不能偏科;v0.5 曾出现 1000 关只有 30 个模板" + } + ] + }, + { + "id": "P2", + "title": "标定:把机械指标映射到真实难度", + "tasks": [ + { + "id": "T2.1", + "title": "grok 抽样跑候选池,收集 difficulty / stuck", + "status": "todo", + "note": "分层抽样,覆盖各旋转档与各家族" + }, + { + "id": "T2.2", + "title": "拟合 difficulty ~ 机械特征", + "status": "todo", + "note": "候选特征:旋转数、锁住率、猴子 APT、棋子数、路线长度、终局路口数" + }, + { + "id": "T2.3", + "title": "用模型给全部候选打分并按曲线选 50 关", + "status": "todo" + } + ] + }, + { + "id": "P3", + "title": "迭代:跑几轮把曲线调平", + "tasks": [ + { + "id": "T3.1", + "title": "第 1 轮:grok 全量跑 50 关", + "status": "todo" + }, + { + "id": "T3.2", + "title": "按实测曲线调整选关,重选", + "status": "todo" + }, + { + "id": "T3.3", + "title": "第 2 轮验证", + "status": "todo" + }, + { + "id": "T3.4", + "title": "收敛判定(难度曲线单调、stuck 达标)", + "status": "todo" + } + ] + }, + { + "id": "P4", + "title": "交付", + "tasks": [ + { + "id": "T4.1", + "title": "50 关关卡集", + "status": "todo" + }, + { + "id": "T4.2", + "title": "人工审核页(可直接试玩每一关)", + "status": "todo" + }, + { + "id": "T4.3", + "title": "后续关卡制作流程的优化总结", + "status": "todo" + } + ] + } + ], + "rounds": [], + "log": [ + { + "at": "起点", + "text": "已完成前置工作:擦碰漏报修复(113/581 例)、终局单出口门槛、锁结构改为双向可开 —— 规则机器人盲转/转错/多转已全部归零" + } + ] +} \ No newline at end of file diff --git a/docs/level-board.html b/docs/level-board.html new file mode 100644 index 0000000..d046555 --- /dev/null +++ b/docs/level-board.html @@ -0,0 +1,222 @@ + + + + + + +50 关任务看板 + + + +
+ +
+
HEX TRAILS · 关卡调优
+

调出 50 关难度合适、好玩的关卡,交付人工审核

+

第 0 轮 · 更新于 09-14 16:21 · 本页每 60 秒自动刷新

+
+
+
3 / 17 项完成18%
+
+
+ +

A现在的状态

+
+
候选关卡
17 / 50
当前关卡集
+
盲转 / 关
0.00
目标 0
+
转错方向 / 关
0.00
目标 0
+
猴子 动作÷棋子
5.07
目标 ≥3.0(不无脑)
+
+ +
+ + + + + + +
旋转数目标关数现有缺口
0 转50还差 5
1 转120还差 12
2 转150还差 15
3 转1817还差 1
+

路线家族分布:weave ×4 · switchback ×1 · petals ×4 · orbits ×4 · crossing ×2 · spiral ×2 终局可走朝向分布:{"2":3,"3":13,"4":1}

+ +

B什么叫「难度合适且好玩」

+

评分里只有 difficulty(复测 r=0.93)和 stuck(r=0.85)可信;rotation / clarity / fun 的复测 r 只有 0.32 / 0.19 / 0.56,是模型噪声,不能拿来调参。所以「好玩」必须换成机械代理。

+ +
+ + + + + +
关号区间旋转数目标 difficulty 评分
L1–L120–1 转1.5 – 2.0
L13–L321–2 转2.0 – 2.6
L33–L502–3 转2.6 – 3.0
+ +

C任务

+ +
+

P0判据:先说清楚什么叫「好」

+ +
+ +
+

P1产能:先得有足够多的候选

+ +
+ +
+

P2标定:把机械指标映射到真实难度

+ +
+ +
+

P3迭代:跑几轮把曲线调平

+ +
+ +
+

P4交付

+ +
+ + + + +

E已有的 agent 实测

+
+ + + + + + + + + + + +
批次关数difficultystuck盲转/关多转/关
Codex CLI · gpt-6-astra low182.441.441.171.22
Codex CLI · spark xhigh183.112.281.171.17
Grok Build CLI · xhigh182.391.831.171.22
pi · Grok 4.6 xhigh182.391.891.171.22
pi · Grok 4.6 xhigh · 复测182.441.781.391.56
pi · Grok 4.6 xhigh · 新门槛182.111.390.280.33
Kimi CLI · k3 high182.941.831.171.22
Codex · high reasoning103.001.900.400.50
Codex CLI · xhigh63.002.170.330.33
+

difficulty 3 = 刚刚好;stuck 越低越好。这两项是评分里唯二复测可信的(r = 0.93 / 0.85)。

+ +

F日志

+ + + + +
+ + \ No newline at end of file diff --git a/levels/prototypes/d5.json b/levels/prototypes/d5.json index 6114b49..3a873e5 100644 --- a/levels/prototypes/d5.json +++ b/levels/prototypes/d5.json @@ -10,17 +10,17 @@ ] }, "summary": { - "candidates": 96, - "kept": 18, + "candidates": 72, + "kept": 17, "yieldTable": { "petals/r3": { - "locks": 9, - "grown": 9, + "locks": 5, + "grown": 5, "seeds": 14 }, "petals/r4": { - "locks": 7, - "grown": 7, + "locks": 6, + "grown": 6, "seeds": 14 }, "orbits/r3": { @@ -34,28 +34,28 @@ "seeds": 14 }, "spiral/r3": { - "locks": 7, - "grown": 7, + "locks": 2, + "grown": 2, "seeds": 14 }, "spiral/r4": { - "locks": 11, - "grown": 11, + "locks": 8, + "grown": 8, "seeds": 14 }, "switchback/r3": { - "locks": 1, - "grown": 1, + "locks": 0, + "grown": 0, "seeds": 14 }, "switchback/r4": { - "locks": 11, - "grown": 11, + "locks": 2, + "grown": 2, "seeds": 14 }, "weave/r3": { - "locks": 6, - "grown": 6, + "locks": 5, + "grown": 5, "seeds": 14 }, "weave/r4": { @@ -76,1635 +76,6 @@ } }, "levels": [ - { - "version": 1, - "id": "proto-d5-switchback-r4-s12", - "name": "回折 · 深旋转", - "cells": [ - { - "q": -4, - "r": 0, - "tracks": [ - 4, - 2, - 1, - 5, - 0, - 3 - ] - }, - { - "q": -4, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 4, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": -3, - "r": -1, - "tracks": [ - 4, - 3, - 5, - 1, - 0, - 2 - ] - }, - { - "q": -3, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 4, - "tracks": [ - 5, - 4, - 3, - 2, - 1, - 0 - ] - }, - { - "q": -2, - "r": -2, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": -2, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 4, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": -1, - "r": -3, - "tracks": [ - 5, - 3, - 4, - 1, - 2, - 0 - ] - }, - { - "q": -1, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 4, - "tracks": [ - 5, - 4, - 3, - 2, - 1, - 0 - ] - }, - { - "q": 0, - "r": -4, - "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": 0, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 4, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": 1, - "r": -4, - "tracks": [ - 5, - 4, - 3, - 2, - 1, - 0 - ] - }, - { - "q": 1, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 3, - "tracks": [ - 4, - 3, - 5, - 1, - 0, - 2 - ] - }, - { - "q": 2, - "r": -4, - "tracks": [ - 1, - 0, - 4, - 5, - 2, - 3 - ] - }, - { - "q": 2, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 2, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": 3, - "r": -4, - "tracks": [ - 4, - 5, - 3, - 2, - 0, - 1 - ] - }, - { - "q": 3, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": 1, - "tracks": [ - 4, - 5, - 3, - 2, - 0, - 1 - ] - }, - { - "q": 4, - "r": -4, - "tracks": [ - 4, - 2, - 1, - 5, - 0, - 3 - ] - }, - { - "q": 4, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 4, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 4, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 4, - "r": 0, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - } - ], - "tiles": [ - { - "q": -4, - "r": 4, - "dir": 2, - "id": "t0", - "color": 0 - }, - { - "q": 1, - "r": 0, - "dir": 5, - "id": "t1", - "color": 1 - }, - { - "q": -1, - "r": 3, - "dir": 1, - "id": "t2", - "color": 2 - }, - { - "q": -2, - "r": -2, - "dir": 4, - "id": "t3", - "color": 3 - }, - { - "q": -1, - "r": -2, - "dir": 2, - "id": "t4", - "color": 4 - }, - { - "q": 0, - "r": 3, - "dir": 3, - "id": "t5", - "color": 5 - }, - { - "q": 1, - "r": -4, - "dir": 2, - "id": "t6", - "color": 6 - }, - { - "q": 4, - "r": -3, - "dir": 0, - "id": "t7", - "color": 0 - }, - { - "q": 3, - "r": -4, - "dir": 2, - "id": "t8", - "color": 1 - }, - { - "q": 3, - "r": -2, - "dir": 3, - "id": "t9", - "color": 2 - }, - { - "q": -4, - "r": 1, - "dir": 5, - "id": "t10", - "color": 3 - }, - { - "q": -2, - "r": 4, - "dir": 4, - "id": "t11", - "color": 4 - } - ], - "moveLimit": 12, - "rotationEnabled": true, - "routeDesign": { - "family": "switchback", - "variant": 0, - "seed": 12, - "radius": 4, - "gateVariant": 12, - "featured": [ - { - "q": -4, - "r": 0, - "a": 3, - "b": 5 - }, - { - "q": -4, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -4, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -4, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -4, - "r": 4, - "a": 0, - "b": 2 - }, - { - "q": -3, - "r": -1, - "a": 1, - "b": 3 - }, - { - "q": -3, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 4, - "a": 0, - "b": 5 - }, - { - "q": -2, - "r": -2, - "a": 3, - "b": 4 - }, - { - "q": -2, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 4, - "a": 0, - "b": 2 - }, - { - "q": -1, - "r": -3, - "a": 1, - "b": 3 - }, - { - "q": -1, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 4, - "a": 0, - "b": 5 - }, - { - "q": 0, - "r": -4, - "a": 3, - "b": 4 - }, - { - "q": 0, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 4, - "a": 0, - "b": 1 - }, - { - "q": 1, - "r": -4, - "a": 2, - "b": 3 - }, - { - "q": 1, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 3, - "a": 0, - "b": 4 - }, - { - "q": 2, - "r": -4, - "a": 3, - "b": 5 - }, - { - "q": 2, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": 2, - "a": 0, - "b": 1 - }, - { - "q": 3, - "r": -4, - "a": 2, - "b": 3 - }, - { - "q": 3, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": 1, - "a": 0, - "b": 4 - }, - { - "q": 4, - "r": -4, - "a": 3, - "b": 5 - }, - { - "q": 4, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 4, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 4, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 4, - "r": 0, - "a": 0, - "b": 2 - } - ], - "heroStarts": [ - { - "q": -4, - "r": 0, - "dir": 3, - "steps": 61, - "bends": 17, - "featuredPairs": 60 - }, - { - "q": 4, - "r": 0, - "dir": 0, - "steps": 61, - "bends": 17, - "featuredPairs": 60 - }, - { - "q": -4, - "r": 1, - "dir": 3, - "steps": 60, - "bends": 17, - "featuredPairs": 59 - }, - { - "q": 4, - "r": -1, - "dir": 0, - "steps": 60, - "bends": 17, - "featuredPairs": 59 - }, - { - "q": -4, - "r": 2, - "dir": 3, - "steps": 59, - "bends": 17, - "featuredPairs": 58 - }, - { - "q": 4, - "r": -2, - "dir": 0, - "steps": 59, - "bends": 17, - "featuredPairs": 58 - }, - { - "q": -4, - "r": 3, - "dir": 3, - "steps": 58, - "bends": 17, - "featuredPairs": 57 - }, - { - "q": 4, - "r": -3, - "dir": 0, - "steps": 58, - "bends": 17, - "featuredPairs": 57 - }, - { - "q": -4, - "r": 4, - "dir": 2, - "steps": 57, - "bends": 16, - "featuredPairs": 56 - }, - { - "q": 4, - "r": -4, - "dir": 5, - "steps": 57, - "bends": 16, - "featuredPairs": 56 - }, - { - "q": -3, - "r": 4, - "dir": 0, - "steps": 56, - "bends": 15, - "featuredPairs": 55 - }, - { - "q": 3, - "r": -4, - "dir": 3, - "steps": 56, - "bends": 15, - "featuredPairs": 55 - }, - { - "q": -3, - "r": 3, - "dir": 0, - "steps": 55, - "bends": 15, - "featuredPairs": 54 - }, - { - "q": 3, - "r": -3, - "dir": 3, - "steps": 55, - "bends": 15, - "featuredPairs": 54 - }, - { - "q": -3, - "r": 2, - "dir": 0, - "steps": 54, - "bends": 15, - "featuredPairs": 53 - }, - { - "q": 3, - "r": -2, - "dir": 3, - "steps": 54, - "bends": 15, - "featuredPairs": 53 - }, - { - "q": -3, - "r": 1, - "dir": 0, - "steps": 53, - "bends": 15, - "featuredPairs": 52 - }, - { - "q": 3, - "r": -1, - "dir": 3, - "steps": 53, - "bends": 15, - "featuredPairs": 52 - }, - { - "q": -3, - "r": 0, - "dir": 0, - "steps": 52, - "bends": 15, - "featuredPairs": 51 - }, - { - "q": 3, - "r": 0, - "dir": 3, - "steps": 52, - "bends": 15, - "featuredPairs": 51 - }, - { - "q": -3, - "r": -1, - "dir": 1, - "steps": 51, - "bends": 14, - "featuredPairs": 50 - }, - { - "q": 3, - "r": 1, - "dir": 4, - "steps": 51, - "bends": 14, - "featuredPairs": 50 - }, - { - "q": -2, - "r": -2, - "dir": 3, - "steps": 50, - "bends": 13, - "featuredPairs": 49 - }, - { - "q": 2, - "r": 2, - "dir": 0, - "steps": 50, - "bends": 13, - "featuredPairs": 49 - }, - { - "q": -2, - "r": -1, - "dir": 3, - "steps": 49, - "bends": 13, - "featuredPairs": 48 - }, - { - "q": 2, - "r": 1, - "dir": 0, - "steps": 49, - "bends": 13, - "featuredPairs": 48 - }, - { - "q": -2, - "r": 0, - "dir": 3, - "steps": 48, - "bends": 13, - "featuredPairs": 47 - }, - { - "q": 2, - "r": 0, - "dir": 0, - "steps": 48, - "bends": 13, - "featuredPairs": 47 - }, - { - "q": -2, - "r": 1, - "dir": 3, - "steps": 47, - "bends": 13, - "featuredPairs": 46 - }, - { - "q": 2, - "r": -1, - "dir": 0, - "steps": 47, - "bends": 13, - "featuredPairs": 46 - }, - { - "q": -2, - "r": 2, - "dir": 3, - "steps": 46, - "bends": 13, - "featuredPairs": 45 - }, - { - "q": 2, - "r": -2, - "dir": 0, - "steps": 46, - "bends": 13, - "featuredPairs": 45 - }, - { - "q": -2, - "r": 3, - "dir": 3, - "steps": 45, - "bends": 13, - "featuredPairs": 44 - }, - { - "q": 2, - "r": -3, - "dir": 0, - "steps": 45, - "bends": 13, - "featuredPairs": 44 - }, - { - "q": -2, - "r": 4, - "dir": 2, - "steps": 44, - "bends": 12, - "featuredPairs": 43 - }, - { - "q": 2, - "r": -4, - "dir": 5, - "steps": 44, - "bends": 12, - "featuredPairs": 43 - } - ] - }, - "experience": { - "kind": "deep", - "feature": { - "id": "t0" - }, - "actions": [ - { - "type": "tap", - "id": "t10" - }, - { - "type": "tap", - "id": "t11" - }, - { - "type": "rotate", - "direction": 1 - }, - { - "type": "tap", - "id": "t1" - }, - { - "type": "tap", - "id": "t5" - }, - { - "type": "tap", - "id": "t7" - }, - { - "type": "tap", - "id": "t9" - }, - { - "type": "tap", - "id": "t4" - }, - { - "type": "rotate", - "direction": 1 - }, - { - "type": "tap", - "id": "t2" - }, - { - "type": "tap", - "id": "t8" - }, - { - "type": "tap", - "id": "t6" - }, - { - "type": "rotate", - "direction": -1 - }, - { - "type": "tap", - "id": "t0" - }, - { - "type": "tap", - "id": "t3" - } - ] - }, - "prototype": { - "family": "switchback", - "radius": 4, - "seed": 12, - "target": 12, - "lock": { - "hero": "t0", - "heroBends": 8, - "search": { - "checks": 7698, - "formalChecks": 7698, - "heroCandidates": 86, - "poolSize": 366 - } - }, - "placements": [ - 1, - 1, - 2, - 1, - 0, - 1, - 2, - 1, - 2, - 1, - 0, - 0 - ], - "rejected": { - "orientationless": 169, - "shortcut": 0 - }, - "stats": { - "pieces": 12, - "rotations": 3, - "lockedShare": 0.8333333333333334, - "lockedAtStart": 10, - "firstTurnDirections": 2, - "releasePerTurn": [ - 5, - 3, - 2 - ], - "minRelease": 2, - "waves": [ - 2, - 4, - 1, - 2, - 1, - 1, - 1 - ], - "states": 9 - }, - "audit": { - "states": 1224, - "stuckStates": 73, - "doubleDead": 0, - "maxDeadTurns": 0, - "unsolvable": 0, - "endgameMinOpen": 2, - "endgameTightStates": 0, - "endgameWorst": "t0,t3", - "exhausted": false - }, - "monkeyActionsPerPiece": 5.1875 - } - }, { "version": 1, "id": "proto-d5-weave-r3-s8", @@ -5951,1623 +4322,6 @@ "monkeyActionsPerPiece": 3.90625 } }, - { - "version": 1, - "id": "proto-d5-switchback-r4-s2", - "name": "回折 · 深旋转", - "cells": [ - { - "q": -4, - "r": 0, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": -4, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 4, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": -3, - "r": -1, - "tracks": [ - 2, - 3, - 0, - 1, - 5, - 4 - ] - }, - { - "q": -3, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 4, - "tracks": [ - 5, - 4, - 3, - 2, - 1, - 0 - ] - }, - { - "q": -2, - "r": -2, - "tracks": [ - 5, - 2, - 1, - 4, - 3, - 0 - ] - }, - { - "q": -2, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 4, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": -1, - "r": -3, - "tracks": [ - 4, - 3, - 5, - 1, - 0, - 2 - ] - }, - { - "q": -1, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 3, - "tracks": [ - 4, - 3, - 5, - 1, - 0, - 2 - ] - }, - { - "q": -1, - "r": 4, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": -4, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": 0, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 4, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": 1, - "r": -4, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -3, - "tracks": [ - 2, - 3, - 0, - 1, - 5, - 4 - ] - }, - { - "q": 1, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 3, - "tracks": [ - 4, - 2, - 1, - 5, - 0, - 3 - ] - }, - { - "q": 2, - "r": -4, - "tracks": [ - 5, - 2, - 1, - 4, - 3, - 0 - ] - }, - { - "q": 2, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 2, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": 3, - "r": -4, - "tracks": [ - 1, - 0, - 3, - 2, - 5, - 4 - ] - }, - { - "q": 3, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": 1, - "tracks": [ - 4, - 3, - 5, - 1, - 0, - 2 - ] - }, - { - "q": 4, - "r": -4, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": 4, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 4, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 4, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 4, - "r": 0, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - } - ], - "tiles": [ - { - "q": -4, - "r": 4, - "dir": 2, - "id": "t0", - "color": 0 - }, - { - "q": 2, - "r": 1, - "dir": 3, - "id": "t1", - "color": 1 - }, - { - "q": 4, - "r": -1, - "dir": 4, - "id": "t2", - "color": 2 - }, - { - "q": 0, - "r": -4, - "dir": 4, - "id": "t3", - "color": 3 - }, - { - "q": 0, - "r": -2, - "dir": 1, - "id": "t4", - "color": 4 - }, - { - "q": 1, - "r": -3, - "dir": 1, - "id": "t5", - "color": 5 - }, - { - "q": -2, - "r": -1, - "dir": 5, - "id": "t6", - "color": 6 - }, - { - "q": 1, - "r": -2, - "dir": 2, - "id": "t7", - "color": 0 - }, - { - "q": 3, - "r": -3, - "dir": 0, - "id": "t8", - "color": 1 - }, - { - "q": -1, - "r": 2, - "dir": 3, - "id": "t9", - "color": 2 - }, - { - "q": 4, - "r": -4, - "dir": 2, - "id": "t10", - "color": 3 - }, - { - "q": -2, - "r": 1, - "dir": 5, - "id": "t11", - "color": 4 - } - ], - "moveLimit": 12, - "rotationEnabled": true, - "routeDesign": { - "family": "switchback", - "variant": 0, - "seed": 2, - "radius": 4, - "gateVariant": 2, - "featured": [ - { - "q": -4, - "r": 0, - "a": 3, - "b": 5 - }, - { - "q": -4, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -4, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -4, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -4, - "r": 4, - "a": 0, - "b": 2 - }, - { - "q": -3, - "r": -1, - "a": 1, - "b": 3 - }, - { - "q": -3, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 4, - "a": 0, - "b": 5 - }, - { - "q": -2, - "r": -2, - "a": 3, - "b": 4 - }, - { - "q": -2, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 4, - "a": 0, - "b": 1 - }, - { - "q": -1, - "r": -3, - "a": 1, - "b": 3 - }, - { - "q": -1, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 3, - "a": 0, - "b": 4 - }, - { - "q": 0, - "r": -4, - "a": 3, - "b": 4 - }, - { - "q": 0, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 4, - "a": 0, - "b": 1 - }, - { - "q": 1, - "r": -3, - "a": 1, - "b": 3 - }, - { - "q": 1, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 3, - "a": 0, - "b": 4 - }, - { - "q": 2, - "r": -4, - "a": 3, - "b": 4 - }, - { - "q": 2, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": 2, - "a": 0, - "b": 1 - }, - { - "q": 3, - "r": -4, - "a": 2, - "b": 3 - }, - { - "q": 3, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": 1, - "a": 0, - "b": 4 - }, - { - "q": 4, - "r": -4, - "a": 3, - "b": 5 - }, - { - "q": 4, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 4, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 4, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 4, - "r": 0, - "a": 0, - "b": 2 - } - ], - "heroStarts": [ - { - "q": -4, - "r": 0, - "dir": 3, - "steps": 59, - "bends": 17, - "featuredPairs": 58 - }, - { - "q": 4, - "r": 0, - "dir": 0, - "steps": 59, - "bends": 17, - "featuredPairs": 58 - }, - { - "q": -4, - "r": 1, - "dir": 3, - "steps": 58, - "bends": 17, - "featuredPairs": 57 - }, - { - "q": 4, - "r": -1, - "dir": 0, - "steps": 58, - "bends": 17, - "featuredPairs": 57 - }, - { - "q": -4, - "r": 2, - "dir": 3, - "steps": 57, - "bends": 17, - "featuredPairs": 56 - }, - { - "q": 4, - "r": -2, - "dir": 0, - "steps": 57, - "bends": 17, - "featuredPairs": 56 - }, - { - "q": -4, - "r": 3, - "dir": 3, - "steps": 56, - "bends": 17, - "featuredPairs": 55 - }, - { - "q": 4, - "r": -3, - "dir": 0, - "steps": 56, - "bends": 17, - "featuredPairs": 55 - }, - { - "q": -4, - "r": 4, - "dir": 2, - "steps": 55, - "bends": 16, - "featuredPairs": 54 - }, - { - "q": 4, - "r": -4, - "dir": 5, - "steps": 55, - "bends": 16, - "featuredPairs": 54 - }, - { - "q": -3, - "r": 4, - "dir": 0, - "steps": 54, - "bends": 15, - "featuredPairs": 53 - }, - { - "q": 3, - "r": -4, - "dir": 3, - "steps": 54, - "bends": 15, - "featuredPairs": 53 - }, - { - "q": -3, - "r": 3, - "dir": 0, - "steps": 53, - "bends": 15, - "featuredPairs": 52 - }, - { - "q": 3, - "r": -3, - "dir": 3, - "steps": 53, - "bends": 15, - "featuredPairs": 52 - }, - { - "q": -3, - "r": 2, - "dir": 0, - "steps": 52, - "bends": 15, - "featuredPairs": 51 - }, - { - "q": 3, - "r": -2, - "dir": 3, - "steps": 52, - "bends": 15, - "featuredPairs": 51 - }, - { - "q": -3, - "r": 1, - "dir": 0, - "steps": 51, - "bends": 15, - "featuredPairs": 50 - }, - { - "q": 3, - "r": -1, - "dir": 3, - "steps": 51, - "bends": 15, - "featuredPairs": 50 - }, - { - "q": -3, - "r": 0, - "dir": 0, - "steps": 50, - "bends": 15, - "featuredPairs": 49 - }, - { - "q": 3, - "r": 0, - "dir": 3, - "steps": 50, - "bends": 15, - "featuredPairs": 49 - }, - { - "q": -3, - "r": -1, - "dir": 1, - "steps": 49, - "bends": 14, - "featuredPairs": 48 - }, - { - "q": 3, - "r": 1, - "dir": 4, - "steps": 49, - "bends": 14, - "featuredPairs": 48 - }, - { - "q": -2, - "r": -2, - "dir": 3, - "steps": 48, - "bends": 13, - "featuredPairs": 47 - }, - { - "q": 2, - "r": 2, - "dir": 0, - "steps": 48, - "bends": 13, - "featuredPairs": 47 - }, - { - "q": -2, - "r": -1, - "dir": 3, - "steps": 47, - "bends": 13, - "featuredPairs": 46 - }, - { - "q": 2, - "r": 1, - "dir": 0, - "steps": 47, - "bends": 13, - "featuredPairs": 46 - }, - { - "q": -2, - "r": 0, - "dir": 3, - "steps": 46, - "bends": 13, - "featuredPairs": 45 - }, - { - "q": 2, - "r": 0, - "dir": 0, - "steps": 46, - "bends": 13, - "featuredPairs": 45 - }, - { - "q": -2, - "r": 1, - "dir": 3, - "steps": 45, - "bends": 13, - "featuredPairs": 44 - }, - { - "q": 2, - "r": -1, - "dir": 0, - "steps": 45, - "bends": 13, - "featuredPairs": 44 - }, - { - "q": -2, - "r": 2, - "dir": 3, - "steps": 44, - "bends": 13, - "featuredPairs": 43 - }, - { - "q": 2, - "r": -2, - "dir": 0, - "steps": 44, - "bends": 13, - "featuredPairs": 43 - }, - { - "q": -2, - "r": 3, - "dir": 3, - "steps": 43, - "bends": 13, - "featuredPairs": 42 - }, - { - "q": 2, - "r": -3, - "dir": 0, - "steps": 43, - "bends": 13, - "featuredPairs": 42 - }, - { - "q": -2, - "r": 4, - "dir": 1, - "steps": 42, - "bends": 12, - "featuredPairs": 41 - }, - { - "q": 2, - "r": -4, - "dir": 4, - "steps": 42, - "bends": 12, - "featuredPairs": 41 - } - ] - }, - "experience": { - "kind": "deep", - "feature": { - "id": "t0" - }, - "actions": [ - { - "type": "tap", - "id": "t6" - }, - { - "type": "tap", - "id": "t10" - }, - { - "type": "tap", - "id": "t11" - }, - { - "type": "rotate", - "direction": 1 - }, - { - "type": "tap", - "id": "t1" - }, - { - "type": "tap", - "id": "t8" - }, - { - "type": "tap", - "id": "t9" - }, - { - "type": "tap", - "id": "t7" - }, - { - "type": "rotate", - "direction": 1 - }, - { - "type": "tap", - "id": "t5" - }, - { - "type": "tap", - "id": "t2" - }, - { - "type": "tap", - "id": "t4" - }, - { - "type": "rotate", - "direction": -1 - }, - { - "type": "tap", - "id": "t0" - }, - { - "type": "tap", - "id": "t3" - } - ] - }, - "prototype": { - "family": "switchback", - "radius": 4, - "seed": 2, - "target": 12, - "lock": { - "hero": "t0", - "heroBends": 8, - "search": { - "checks": 25446, - "formalChecks": 25446, - "heroCandidates": 82, - "poolSize": 366 - } - }, - "placements": [ - 1, - 1, - 2, - 1, - 2, - 2, - 0, - 1, - 1, - 1, - 0, - 0 - ], - "rejected": { - "orientationless": 56, - "shortcut": 0 - }, - "stats": { - "pieces": 12, - "rotations": 3, - "lockedShare": 0.75, - "lockedAtStart": 9, - "firstTurnDirections": 2, - "releasePerTurn": [ - 4, - 3, - 2 - ], - "minRelease": 2, - "waves": [ - 3, - 3, - 1, - 1, - 2, - 1, - 1 - ], - "states": 9 - }, - "audit": { - "states": 1518, - "stuckStates": 72, - "doubleDead": 0, - "maxDeadTurns": 0, - "unsolvable": 0, - "endgameMinOpen": 2, - "endgameTightStates": 0, - "endgameWorst": "t0,t3", - "exhausted": false - }, - "monkeyActionsPerPiece": 5.65625 - } - }, { "version": 1, "id": "proto-d5-weave-r4-s3", @@ -9022,8 +5776,8 @@ "hero": "t0", "heroBends": 23, "search": { - "checks": 6731, - "formalChecks": 6731, + "checks": 6350, + "formalChecks": 6350, "heroCandidates": 111, "poolSize": 366 } @@ -9084,11 +5838,143 @@ }, { "version": 1, - "id": "proto-d5-weave-r4-s12", + "id": "proto-d5-weave-r3-s11", "name": "编织 · 深旋转", "cells": [ { - "q": -4, + "q": -3, + "r": 0, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": -3, + "r": 1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -3, + "r": 2, + "tracks": [ + 1, + 0, + 3, + 2, + 5, + 4 + ] + }, + { + "q": -3, + "r": 3, + "tracks": [ + 5, + 3, + 4, + 1, + 2, + 0 + ] + }, + { + "q": -2, + "r": -1, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": -2, + "r": 0, + "tracks": [ + 1, + 0, + 3, + 2, + 5, + 4 + ] + }, + { + "q": -2, + "r": 1, + "tracks": [ + 3, + 2, + 1, + 0, + 5, + 4 + ] + }, + { + "q": -2, + "r": 2, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": -2, + "r": 3, + "tracks": [ + 1, + 0, + 3, + 2, + 5, + 4 + ] + }, + { + "q": -1, + "r": -2, + "tracks": [ + 1, + 0, + 3, + 2, + 5, + 4 + ] + }, + { + "q": -1, + "r": -1, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": -1, "r": 0, "tracks": [ 3, @@ -9100,32 +5986,272 @@ ] }, { - "q": -4, + "q": -1, "r": 1, "tracks": [ - 4, - 5, - 3, 2, + 5, 0, + 4, + 3, 1 ] }, { - "q": -4, + "q": -1, "r": 2, "tracks": [ - 2, 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": -1, + "r": 3, + "tracks": [ + 3, + 4, + 5, 0, 1, + 2 + ] + }, + { + "q": 0, + "r": -3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 0, + "r": -2, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 0, + "r": -1, + "tracks": [ + 1, + 0, + 4, + 5, + 2, + 3 + ] + }, + { + "q": 0, + "r": 0, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 0, + "r": 1, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 0, + "r": 2, + "tracks": [ + 1, + 0, + 3, + 2, 5, 4 ] }, { - "q": -4, + "q": 0, "r": 3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 1, + "r": -3, + "tracks": [ + 1, + 0, + 3, + 2, + 5, + 4 + ] + }, + { + "q": 1, + "r": -2, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 1, + "r": -1, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 1, + "r": 0, + "tracks": [ + 2, + 5, + 0, + 4, + 3, + 1 + ] + }, + { + "q": 1, + "r": 1, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 1, + "r": 2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 2, + "r": -3, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 2, + "r": -2, + "tracks": [ + 1, + 0, + 4, + 5, + 2, + 3 + ] + }, + { + "q": 2, + "r": -1, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 2, + "r": 0, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 2, + "r": 1, + "tracks": [ + 1, + 0, + 3, + 2, + 5, + 4 + ] + }, + { + "q": 3, + "r": -3, + "tracks": [ + 4, + 2, + 1, + 5, + 0, + 3 + ] + }, + { + "q": 3, + "r": -2, "tracks": [ 5, 4, @@ -9136,511 +6262,7 @@ ] }, { - "q": -4, - "r": 4, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": -3, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 0, - "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": -3, - "r": 1, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -3, - "r": 2, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -3, - "r": 3, - "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": -3, - "r": 4, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -2, - "r": -2, - "tracks": [ - 1, - 0, - 3, - 2, - 5, - 4 - ] - }, - { - "q": -2, - "r": -1, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -2, - "r": 0, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -2, - "r": 1, - "tracks": [ - 1, - 0, - 4, - 5, - 2, - 3 - ] - }, - { - "q": -2, - "r": 2, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -2, - "r": 3, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -2, - "r": 4, - "tracks": [ - 1, - 0, - 3, - 2, - 5, - 4 - ] - }, - { - "q": -1, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": -1, - "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": -1, - "r": 0, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -1, - "r": 1, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -1, - "r": 2, - "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": -1, - "r": 3, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -1, - "r": 4, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": -4, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": -3, - "tracks": [ - 1, - 0, - 3, - 2, - 5, - 4 - ] - }, - { - "q": 0, - "r": -2, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 0, - "r": -1, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 0, - "r": 0, - "tracks": [ - 1, - 0, - 4, - 5, - 2, - 3 - ] - }, - { - "q": 0, - "r": 1, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 0, - "r": 2, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 0, - "r": 3, - "tracks": [ - 1, - 0, - 3, - 2, - 5, - 4 - ] - }, - { - "q": 0, - "r": 4, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -4, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -2, - "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": 1, - "r": -1, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 1, - "r": 0, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 1, - "r": 1, - "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": 1, - "r": 2, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 1, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": -4, - "tracks": [ - 1, - 0, - 3, - 2, - 5, - 4 - ] - }, - { - "q": 2, - "r": -3, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 2, - "r": -2, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 2, + "q": 3, "r": -1, "tracks": [ 1, @@ -9651,180 +6273,24 @@ 3 ] }, - { - "q": 2, - "r": 0, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 2, - "r": 1, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 2, - "r": 2, - "tracks": [ - 1, - 0, - 3, - 2, - 5, - 4 - ] - }, - { - "q": 3, - "r": -4, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": -3, - "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": 3, - "r": -2, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 3, - "r": -1, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, { "q": 3, "r": 0, "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": 3, - "r": 1, - "tracks": [ - 3, 5, 4, - 0, - 2, - 1 - ] - }, - { - "q": 4, - "r": -4, - "tracks": [ - 5, + 3, 2, 1, - 4, - 3, 0 ] - }, - { - "q": 4, - "r": -3, - "tracks": [ - 4, - 3, - 5, - 1, - 0, - 2 - ] - }, - { - "q": 4, - "r": -2, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": 4, - "r": -1, - "tracks": [ - 4, - 5, - 3, - 2, - 0, - 1 - ] - }, - { - "q": 4, - "r": 0, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] } ], "tiles": [ { "q": 3, - "r": -2, - "dir": 5, + "r": -3, + "dir": 3, "id": "t0", "color": 0 }, @@ -9836,14 +6302,14 @@ "color": 1 }, { - "q": 0, - "r": -2, - "dir": 3, + "q": -1, + "r": 2, + "dir": 1, "id": "t2", "color": 2 }, { - "q": -3, + "q": 1, "r": 1, "dir": 1, "id": "t3", @@ -9851,160 +6317,79 @@ }, { "q": 0, - "r": -4, - "dir": 1, + "r": -3, + "dir": 3, "id": "t4", "color": 4 }, { - "q": -2, - "r": 3, + "q": -1, + "r": 0, "dir": 4, "id": "t5", "color": 5 }, { - "q": 2, - "r": -4, - "dir": 5, + "q": 1, + "r": 2, + "dir": 4, "id": "t6", "color": 6 }, { - "q": 1, - "r": 3, - "dir": 0, + "q": 2, + "r": 1, + "dir": 2, "id": "t7", "color": 0 }, { - "q": 0, - "r": 2, - "dir": 1, - "id": "t8", - "color": 1 - }, - { - "q": -2, + "q": 3, "r": 0, "dir": 0, - "id": "t9", - "color": 2 - }, - { - "q": -4, - "r": 4, - "dir": 3, - "id": "t10", - "color": 3 - }, - { - "q": 0, - "r": 4, - "dir": 5, - "id": "t11", - "color": 4 + "id": "t8", + "color": 1 } ], - "moveLimit": 12, + "moveLimit": 9, "rotationEnabled": true, "routeDesign": { "family": "weave", "variant": 0, - "seed": 12, - "radius": 4, - "gateVariant": 12, + "seed": 11, + "radius": 3, + "gateVariant": 11, "featured": [ { - "q": -4, + "q": -3, "r": 0, - "a": 2, + "a": 1, "b": 5 }, { - "q": -4, - "r": 1, - "a": 2, + "q": -3, + "r": 3, + "a": 1, "b": 3 }, { - "q": -4, - "r": 2, - "a": 0, + "q": -2, + "r": -1, + "a": 2, + "b": 4 + }, + { + "q": -2, + "r": 1, + "a": 1, "b": 2 }, - { - "q": -4, - "r": 3, - "a": 2, - "b": 3 - }, - { - "q": -4, - "r": 4, - "a": 0, - "b": 2 - }, - { - "q": -3, - "r": 0, - "a": 1, - "b": 5 - }, - { - "q": -3, - "r": 1, - "a": 1, - "b": 5 - }, - { - "q": -3, - "r": 2, - "a": 1, - "b": 5 - }, - { - "q": -3, - "r": 3, - "a": 1, - "b": 5 - }, - { - "q": -3, - "r": 4, - "a": 1, - "b": 5 - }, - { - "q": -2, - "r": -1, - "a": 2, - "b": 4 - }, - { - "q": -2, - "r": 0, - "a": 2, - "b": 4 - }, - { - "q": -2, - "r": 1, - "a": 2, - "b": 4 - }, { "q": -2, "r": 2, "a": 2, "b": 4 }, - { - "q": -2, - "r": 3, - "a": 2, - "b": 4 - }, { "q": -1, "r": -1, @@ -10015,7 +6400,7 @@ "q": -1, "r": 0, "a": 1, - "b": 5 + "b": 4 }, { "q": -1, @@ -10029,12 +6414,6 @@ "a": 1, "b": 5 }, - { - "q": -1, - "r": 3, - "a": 1, - "b": 5 - }, { "q": 0, "r": -2, @@ -10059,12 +6438,6 @@ "a": 2, "b": 4 }, - { - "q": 0, - "r": 2, - "a": 2, - "b": 4 - }, { "q": 1, "r": -2, @@ -10089,12 +6462,6 @@ "a": 1, "b": 5 }, - { - "q": 1, - "r": 2, - "a": 1, - "b": 5 - }, { "q": 2, "r": -3, @@ -10119,361 +6486,319 @@ "a": 2, "b": 4 }, - { - "q": 2, - "r": 1, - "a": 2, - "b": 4 - }, { "q": 3, "r": -3, - "a": 1, - "b": 5 - }, - { - "q": 3, - "r": -2, - "a": 1, - "b": 5 - }, - { - "q": 3, - "r": -1, - "a": 1, - "b": 5 - }, - { - "q": 3, - "r": 0, - "a": 1, - "b": 5 - }, - { - "q": 3, - "r": 1, - "a": 1, - "b": 5 - }, - { - "q": 4, - "r": -4, "a": 3, - "b": 4 + "b": 5 }, { - "q": 4, - "r": -3, - "a": 0, - "b": 4 - }, - { - "q": 4, + "q": 3, "r": -2, - "a": 3, - "b": 4 - }, - { - "q": 4, - "r": -1, "a": 0, - "b": 4 + "b": 5 }, { - "q": 4, + "q": 3, + "r": -1, + "a": 3, + "b": 5 + }, + { + "q": 3, "r": 0, - "a": 2, - "b": 4 + "a": 0, + "b": 5 } ], "heroStarts": [ - { - "q": -4, - "r": 0, - "dir": 2, - "steps": 45, - "bends": 44, - "featuredPairs": 44 - }, - { - "q": 4, - "r": 0, - "dir": 4, - "steps": 45, - "bends": 43, - "featuredPairs": 44 - }, { "q": -3, "r": 0, "dir": 1, - "steps": 44, - "bends": 43, - "featuredPairs": 43 + "steps": 25, + "bends": 23, + "featuredPairs": 24 }, { - "q": 3, - "r": 1, - "dir": 5, - "steps": 44, - "bends": 42, - "featuredPairs": 43 + "q": -3, + "r": 3, + "dir": 1, + "steps": 25, + "bends": 23, + "featuredPairs": 24 }, { "q": -2, "r": -1, "dir": 2, - "steps": 43, - "bends": 42, - "featuredPairs": 42 + "steps": 24, + "bends": 22, + "featuredPairs": 23 }, { - "q": 2, - "r": 1, - "dir": 4, - "steps": 43, - "bends": 41, - "featuredPairs": 42 + "q": -2, + "r": 2, + "dir": 2, + "steps": 24, + "bends": 22, + "featuredPairs": 23 }, { "q": -1, "r": -1, "dir": 1, - "steps": 42, - "bends": 41, - "featuredPairs": 41 + "steps": 23, + "bends": 21, + "featuredPairs": 22 }, { - "q": 1, + "q": -1, "r": 2, - "dir": 5, - "steps": 42, - "bends": 40, - "featuredPairs": 41 + "dir": 1, + "steps": 23, + "bends": 21, + "featuredPairs": 22 }, { "q": 0, "r": -2, "dir": 2, - "steps": 41, - "bends": 40, - "featuredPairs": 40 + "steps": 22, + "bends": 20, + "featuredPairs": 21 }, { "q": 0, - "r": 2, - "dir": 4, - "steps": 41, - "bends": 39, - "featuredPairs": 40 + "r": 1, + "dir": 2, + "steps": 22, + "bends": 20, + "featuredPairs": 21 }, { "q": 1, "r": -2, "dir": 1, - "steps": 40, - "bends": 39, - "featuredPairs": 39 + "steps": 21, + "bends": 19, + "featuredPairs": 20 }, { - "q": -1, - "r": 3, - "dir": 5, - "steps": 40, - "bends": 38, - "featuredPairs": 39 + "q": 1, + "r": 1, + "dir": 1, + "steps": 21, + "bends": 19, + "featuredPairs": 20 }, { "q": 2, "r": -3, "dir": 2, - "steps": 39, - "bends": 38, - "featuredPairs": 38 + "steps": 20, + "bends": 18, + "featuredPairs": 19 }, { - "q": -2, - "r": 3, - "dir": 4, - "steps": 39, - "bends": 37, - "featuredPairs": 38 + "q": 2, + "r": 0, + "dir": 2, + "steps": 20, + "bends": 18, + "featuredPairs": 19 }, { "q": 3, "r": -3, - "dir": 1, - "steps": 38, - "bends": 37, - "featuredPairs": 37 - }, - { - "q": -3, - "r": 4, - "dir": 5, - "steps": 38, - "bends": 36, - "featuredPairs": 37 - }, - { - "q": 4, - "r": -4, "dir": 3, - "steps": 37, - "bends": 36, - "featuredPairs": 36 + "steps": 19, + "bends": 17, + "featuredPairs": 18 }, { - "q": -4, - "r": 4, + "q": 3, + "r": 0, "dir": 0, - "steps": 37, - "bends": 35, - "featuredPairs": 36 - }, - { - "q": 4, - "r": -3, - "dir": 4, - "steps": 36, - "bends": 35, - "featuredPairs": 35 - }, - { - "q": -4, - "r": 3, - "dir": 2, - "steps": 36, - "bends": 34, - "featuredPairs": 35 + "steps": 19, + "bends": 17, + "featuredPairs": 18 }, { "q": 3, "r": -2, "dir": 5, - "steps": 35, - "bends": 34, - "featuredPairs": 34 + "steps": 18, + "bends": 16, + "featuredPairs": 17 }, { - "q": -3, - "r": 3, - "dir": 1, - "steps": 35, - "bends": 33, - "featuredPairs": 34 + "q": 3, + "r": -1, + "dir": 5, + "steps": 18, + "bends": 16, + "featuredPairs": 17 }, { "q": 2, "r": -2, "dir": 4, - "steps": 34, - "bends": 33, - "featuredPairs": 33 - }, - { - "q": -2, - "r": 2, - "dir": 2, - "steps": 34, - "bends": 32, - "featuredPairs": 33 - }, - { - "q": 1, - "r": -1, - "dir": 5, - "steps": 33, - "bends": 32, - "featuredPairs": 32 - }, - { - "q": -1, - "r": 2, - "dir": 1, - "steps": 33, - "bends": 31, - "featuredPairs": 32 - }, - { - "q": 0, - "r": -1, - "dir": 4, - "steps": 32, - "bends": 31, - "featuredPairs": 31 - }, - { - "q": 0, - "r": 1, - "dir": 2, - "steps": 32, - "bends": 30, - "featuredPairs": 31 - }, - { - "q": -1, - "r": 0, - "dir": 5, - "steps": 31, - "bends": 30, - "featuredPairs": 30 - }, - { - "q": 1, - "r": 1, - "dir": 1, - "steps": 31, - "bends": 29, - "featuredPairs": 30 - }, - { - "q": -2, - "r": 0, - "dir": 4, - "steps": 30, - "bends": 29, - "featuredPairs": 29 + "steps": 17, + "bends": 15, + "featuredPairs": 16 }, { "q": 2, - "r": 0, - "dir": 2, - "steps": 30, - "bends": 28, - "featuredPairs": 29 + "r": -1, + "dir": 4, + "steps": 17, + "bends": 15, + "featuredPairs": 16 }, { - "q": -3, + "q": 1, + "r": -1, + "dir": 5, + "steps": 16, + "bends": 14, + "featuredPairs": 15 + }, + { + "q": 1, + "r": 0, + "dir": 5, + "steps": 16, + "bends": 14, + "featuredPairs": 15 + }, + { + "q": 0, + "r": -1, + "dir": 4, + "steps": 15, + "bends": 13, + "featuredPairs": 14 + }, + { + "q": 0, + "r": 0, + "dir": 4, + "steps": 15, + "bends": 13, + "featuredPairs": 14 + }, + { + "q": -1, + "r": 0, + "dir": 4, + "steps": 14, + "bends": 13, + "featuredPairs": 13 + }, + { + "q": -1, "r": 1, "dir": 5, - "steps": 29, - "bends": 28, - "featuredPairs": 28 + "steps": 14, + "bends": 12, + "featuredPairs": 13 + }, + { + "q": -2, + "r": 1, + "dir": 2, + "steps": 13, + "bends": 12, + "featuredPairs": 12 + }, + { + "q": -2, + "r": 1, + "dir": 1, + "steps": 13, + "bends": 11, + "featuredPairs": 12 + }, + { + "q": -1, + "r": 0, + "dir": 1, + "steps": 12, + "bends": 11, + "featuredPairs": 11 + }, + { + "q": -1, + "r": 1, + "dir": 1, + "steps": 12, + "bends": 11, + "featuredPairs": 11 + }, + { + "q": 0, + "r": -1, + "dir": 2, + "steps": 11, + "bends": 10, + "featuredPairs": 10 + }, + { + "q": 0, + "r": 0, + "dir": 2, + "steps": 11, + "bends": 10, + "featuredPairs": 10 + }, + { + "q": 1, + "r": -1, + "dir": 1, + "steps": 10, + "bends": 9, + "featuredPairs": 9 + }, + { + "q": 1, + "r": 0, + "dir": 1, + "steps": 10, + "bends": 9, + "featuredPairs": 9 + }, + { + "q": 2, + "r": -2, + "dir": 2, + "steps": 9, + "bends": 8, + "featuredPairs": 8 + }, + { + "q": 2, + "r": -1, + "dir": 2, + "steps": 9, + "bends": 8, + "featuredPairs": 8 }, { "q": 3, - "r": 0, - "dir": 1, - "steps": 29, - "bends": 27, - "featuredPairs": 28 + "r": -2, + "dir": 0, + "steps": 8, + "bends": 7, + "featuredPairs": 7 }, { - "q": -4, - "r": 1, + "q": 3, + "r": -1, "dir": 3, - "steps": 28, - "bends": 27, - "featuredPairs": 27 - }, - { - "q": 4, - "r": -1, - "dir": 0, - "steps": 28, - "bends": 26, - "featuredPairs": 27 + "steps": 8, + "bends": 7, + "featuredPairs": 7 } ] }, @@ -10483,18 +6808,6 @@ "id": "t0" }, "actions": [ - { - "type": "tap", - "id": "t4" - }, - { - "type": "tap", - "id": "t10" - }, - { - "type": "tap", - "id": "t11" - }, { "type": "tap", "id": "t6" @@ -10505,7 +6818,7 @@ }, { "type": "tap", - "id": "t1" + "id": "t4" }, { "type": "tap", @@ -10513,7 +6826,15 @@ }, { "type": "tap", - "id": "t9" + "id": "t1" + }, + { + "type": "tap", + "id": "t8" + }, + { + "type": "tap", + "id": "t7" }, { "type": "rotate", @@ -10523,13 +6844,9 @@ "type": "tap", "id": "t2" }, - { - "type": "tap", - "id": "t8" - }, { "type": "rotate", - "direction": -1 + "direction": 1 }, { "type": "tap", @@ -10538,26 +6855,22 @@ { "type": "tap", "id": "t3" - }, - { - "type": "tap", - "id": "t7" } ] }, "prototype": { "family": "weave", - "radius": 4, - "seed": 12, - "target": 12, + "radius": 3, + "seed": 11, + "target": 9, "lock": { "hero": "t0", - "heroBends": 8, + "heroBends": 6, "search": { - "checks": 1623, - "formalChecks": 1623, - "heroCandidates": 111, - "poolSize": 366 + "checks": 2680, + "formalChecks": 2680, + "heroCandidates": 48, + "poolSize": 222 } }, "placements": [ @@ -10565,43 +6878,42 @@ 1, 2, 1, - 0, 1, - 2, - 1, - 2, 1, 0, - 0 + 0, + 2 ], "rejected": { - "orientationless": 59, + "orientationless": 27, "shortcut": 0 }, "stats": { - "pieces": 12, + "pieces": 9, "rotations": 3, - "lockedShare": 0.6666666666666666, + "lockedShare": 0.8888888888888888, "lockedAtStart": 8, "firstTurnDirections": 2, "releasePerTurn": [ - 3, - 2, - 3 - ], - "minRelease": 2, - "waves": [ - 3, + 5, 1, - 3, - 2, - 3 + 2 ], - "states": 9 + "minRelease": 1, + "waves": [ + 1, + 2, + 1, + 1, + 1, + 1, + 2 + ], + "states": 8 }, "audit": { - "states": 6624, - "stuckStates": 145, + "states": 852, + "stuckStates": 84, "doubleDead": 0, "maxDeadTurns": 0, "unsolvable": 0, @@ -10610,1630 +6922,7 @@ "endgameWorst": "t0,t1,t2", "exhausted": false }, - "monkeyActionsPerPiece": 4.583333333333333 - } - }, - { - "version": 1, - "id": "proto-d5-switchback-r4-s9", - "name": "回折 · 深旋转", - "cells": [ - { - "q": -4, - "r": 0, - "tracks": [ - 4, - 2, - 1, - 5, - 0, - 3 - ] - }, - { - "q": -4, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 4, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": -3, - "r": -1, - "tracks": [ - 4, - 5, - 3, - 2, - 0, - 1 - ] - }, - { - "q": -3, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 4, - "tracks": [ - 5, - 4, - 3, - 2, - 1, - 0 - ] - }, - { - "q": -2, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": -1, - "tracks": [ - 4, - 2, - 1, - 5, - 0, - 3 - ] - }, - { - "q": -2, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": 4, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": -1, - "r": -3, - "tracks": [ - 5, - 3, - 4, - 1, - 2, - 0 - ] - }, - { - "q": -1, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 4, - "tracks": [ - 5, - 4, - 3, - 2, - 1, - 0 - ] - }, - { - "q": 0, - "r": -4, - "tracks": [ - 2, - 5, - 0, - 4, - 3, - 1 - ] - }, - { - "q": 0, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 4, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": 1, - "r": -4, - "tracks": [ - 5, - 4, - 3, - 2, - 1, - 0 - ] - }, - { - "q": 1, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 3, - "tracks": [ - 4, - 3, - 5, - 1, - 0, - 2 - ] - }, - { - "q": 2, - "r": -4, - "tracks": [ - 1, - 0, - 4, - 5, - 2, - 3 - ] - }, - { - "q": 2, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 2, - "tracks": [ - 1, - 0, - 5, - 4, - 3, - 2 - ] - }, - { - "q": 3, - "r": -4, - "tracks": [ - 4, - 5, - 3, - 2, - 0, - 1 - ] - }, - { - "q": 3, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": 1, - "tracks": [ - 4, - 5, - 3, - 2, - 0, - 1 - ] - }, - { - "q": 4, - "r": -4, - "tracks": [ - 4, - 2, - 1, - 5, - 0, - 3 - ] - }, - { - "q": 4, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 4, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 4, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 4, - "r": 0, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - } - ], - "tiles": [ - { - "q": -4, - "r": 4, - "dir": 2, - "id": "t0", - "color": 0 - }, - { - "q": 1, - "r": 3, - "dir": 4, - "id": "t1", - "color": 1 - }, - { - "q": 1, - "r": 2, - "dir": 4, - "id": "t2", - "color": 2 - }, - { - "q": 4, - "r": -4, - "dir": 4, - "id": "t3", - "color": 3 - }, - { - "q": -1, - "r": -1, - "dir": 3, - "id": "t4", - "color": 4 - }, - { - "q": 4, - "r": -2, - "dir": 3, - "id": "t5", - "color": 5 - }, - { - "q": -1, - "r": 2, - "dir": 3, - "id": "t6", - "color": 6 - }, - { - "q": -3, - "r": 1, - "dir": 5, - "id": "t7", - "color": 0 - }, - { - "q": 3, - "r": 1, - "dir": 1, - "id": "t8", - "color": 1 - }, - { - "q": 2, - "r": 1, - "dir": 0, - "id": "t9", - "color": 2 - }, - { - "q": 2, - "r": 0, - "dir": 0, - "id": "t10", - "color": 3 - }, - { - "q": 2, - "r": -1, - "dir": 0, - "id": "t11", - "color": 4 - } - ], - "moveLimit": 12, - "rotationEnabled": true, - "routeDesign": { - "family": "switchback", - "variant": 0, - "seed": 9, - "radius": 4, - "gateVariant": 9, - "featured": [ - { - "q": -4, - "r": 0, - "a": 3, - "b": 5 - }, - { - "q": -4, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -4, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -4, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -4, - "r": 4, - "a": 0, - "b": 2 - }, - { - "q": -3, - "r": -1, - "a": 2, - "b": 3 - }, - { - "q": -3, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -3, - "r": 4, - "a": 0, - "b": 5 - }, - { - "q": -2, - "r": -1, - "a": 3, - "b": 5 - }, - { - "q": -2, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -2, - "r": 4, - "a": 0, - "b": 2 - }, - { - "q": -1, - "r": -3, - "a": 1, - "b": 3 - }, - { - "q": -1, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": -1, - "r": 4, - "a": 0, - "b": 5 - }, - { - "q": 0, - "r": -4, - "a": 3, - "b": 4 - }, - { - "q": 0, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 3, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 4, - "a": 0, - "b": 1 - }, - { - "q": 1, - "r": -4, - "a": 2, - "b": 3 - }, - { - "q": 1, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 2, - "a": 0, - "b": 3 - }, - { - "q": 1, - "r": 3, - "a": 0, - "b": 4 - }, - { - "q": 2, - "r": -4, - "a": 3, - "b": 5 - }, - { - "q": 2, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": 1, - "a": 0, - "b": 3 - }, - { - "q": 2, - "r": 2, - "a": 0, - "b": 1 - }, - { - "q": 3, - "r": -4, - "a": 2, - "b": 3 - }, - { - "q": 3, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 3, - "r": 1, - "a": 0, - "b": 4 - }, - { - "q": 4, - "r": -4, - "a": 3, - "b": 5 - }, - { - "q": 4, - "r": -3, - "a": 0, - "b": 3 - }, - { - "q": 4, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 4, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 4, - "r": 0, - "a": 0, - "b": 2 - } - ], - "heroStarts": [ - { - "q": -4, - "r": 0, - "dir": 3, - "steps": 60, - "bends": 17, - "featuredPairs": 59 - }, - { - "q": 4, - "r": 0, - "dir": 0, - "steps": 60, - "bends": 17, - "featuredPairs": 59 - }, - { - "q": -4, - "r": 1, - "dir": 3, - "steps": 59, - "bends": 17, - "featuredPairs": 58 - }, - { - "q": 4, - "r": -1, - "dir": 0, - "steps": 59, - "bends": 17, - "featuredPairs": 58 - }, - { - "q": -4, - "r": 2, - "dir": 3, - "steps": 58, - "bends": 17, - "featuredPairs": 57 - }, - { - "q": 4, - "r": -2, - "dir": 0, - "steps": 58, - "bends": 17, - "featuredPairs": 57 - }, - { - "q": -4, - "r": 3, - "dir": 3, - "steps": 57, - "bends": 17, - "featuredPairs": 56 - }, - { - "q": 4, - "r": -3, - "dir": 0, - "steps": 57, - "bends": 17, - "featuredPairs": 56 - }, - { - "q": -4, - "r": 4, - "dir": 2, - "steps": 56, - "bends": 16, - "featuredPairs": 55 - }, - { - "q": 4, - "r": -4, - "dir": 5, - "steps": 56, - "bends": 16, - "featuredPairs": 55 - }, - { - "q": -3, - "r": 4, - "dir": 0, - "steps": 55, - "bends": 15, - "featuredPairs": 54 - }, - { - "q": 3, - "r": -4, - "dir": 3, - "steps": 55, - "bends": 15, - "featuredPairs": 54 - }, - { - "q": -3, - "r": 3, - "dir": 0, - "steps": 54, - "bends": 15, - "featuredPairs": 53 - }, - { - "q": 3, - "r": -3, - "dir": 3, - "steps": 54, - "bends": 15, - "featuredPairs": 53 - }, - { - "q": -3, - "r": 2, - "dir": 0, - "steps": 53, - "bends": 15, - "featuredPairs": 52 - }, - { - "q": 3, - "r": -2, - "dir": 3, - "steps": 53, - "bends": 15, - "featuredPairs": 52 - }, - { - "q": -3, - "r": 1, - "dir": 0, - "steps": 52, - "bends": 15, - "featuredPairs": 51 - }, - { - "q": 3, - "r": -1, - "dir": 3, - "steps": 52, - "bends": 15, - "featuredPairs": 51 - }, - { - "q": -3, - "r": 0, - "dir": 0, - "steps": 51, - "bends": 15, - "featuredPairs": 50 - }, - { - "q": 3, - "r": 0, - "dir": 3, - "steps": 51, - "bends": 15, - "featuredPairs": 50 - }, - { - "q": -3, - "r": -1, - "dir": 2, - "steps": 50, - "bends": 14, - "featuredPairs": 49 - }, - { - "q": 3, - "r": 1, - "dir": 4, - "steps": 50, - "bends": 14, - "featuredPairs": 49 - }, - { - "q": -2, - "r": -1, - "dir": 3, - "steps": 49, - "bends": 13, - "featuredPairs": 48 - }, - { - "q": 2, - "r": 2, - "dir": 0, - "steps": 49, - "bends": 13, - "featuredPairs": 48 - }, - { - "q": -2, - "r": 0, - "dir": 3, - "steps": 48, - "bends": 13, - "featuredPairs": 47 - }, - { - "q": 2, - "r": 1, - "dir": 0, - "steps": 48, - "bends": 13, - "featuredPairs": 47 - }, - { - "q": -2, - "r": 1, - "dir": 3, - "steps": 47, - "bends": 13, - "featuredPairs": 46 - }, - { - "q": 2, - "r": 0, - "dir": 0, - "steps": 47, - "bends": 13, - "featuredPairs": 46 - }, - { - "q": -2, - "r": 2, - "dir": 3, - "steps": 46, - "bends": 13, - "featuredPairs": 45 - }, - { - "q": 2, - "r": -1, - "dir": 0, - "steps": 46, - "bends": 13, - "featuredPairs": 45 - }, - { - "q": -2, - "r": 3, - "dir": 3, - "steps": 45, - "bends": 13, - "featuredPairs": 44 - }, - { - "q": 2, - "r": -2, - "dir": 0, - "steps": 45, - "bends": 13, - "featuredPairs": 44 - }, - { - "q": 2, - "r": -3, - "dir": 0, - "steps": 44, - "bends": 13, - "featuredPairs": 43 - }, - { - "q": -2, - "r": 4, - "dir": 2, - "steps": 44, - "bends": 12, - "featuredPairs": 43 - }, - { - "q": 2, - "r": -4, - "dir": 5, - "steps": 43, - "bends": 12, - "featuredPairs": 42 - }, - { - "q": -1, - "r": 4, - "dir": 0, - "steps": 43, - "bends": 11, - "featuredPairs": 42 - } - ] - }, - "experience": { - "kind": "deep", - "feature": { - "id": "t0" - }, - "actions": [ - { - "type": "tap", - "id": "t5" - }, - { - "type": "tap", - "id": "t7" - }, - { - "type": "tap", - "id": "t8" - }, - { - "type": "rotate", - "direction": 1 - }, - { - "type": "tap", - "id": "t1" - }, - { - "type": "tap", - "id": "t11" - }, - { - "type": "tap", - "id": "t6" - }, - { - "type": "tap", - "id": "t10" - }, - { - "type": "tap", - "id": "t4" - }, - { - "type": "tap", - "id": "t9" - }, - { - "type": "rotate", - "direction": 1 - }, - { - "type": "tap", - "id": "t2" - }, - { - "type": "rotate", - "direction": -1 - }, - { - "type": "tap", - "id": "t0" - }, - { - "type": "tap", - "id": "t3" - } - ] - }, - "prototype": { - "family": "switchback", - "radius": 4, - "seed": 9, - "target": 12, - "lock": { - "hero": "t0", - "heroBends": 8, - "search": { - "checks": 28556, - "formalChecks": 28556, - "heroCandidates": 85, - "poolSize": 366 - } - }, - "placements": [ - 1, - 1, - 2, - 1, - 2, - 0, - 2, - 0, - 0, - 1, - 1, - 1 - ], - "rejected": { - "orientationless": 108, - "shortcut": 0 - }, - "stats": { - "pieces": 12, - "rotations": 3, - "lockedShare": 0.75, - "lockedAtStart": 9, - "firstTurnDirections": 2, - "releasePerTurn": [ - 6, - 1, - 2 - ], - "minRelease": 1, - "waves": [ - 3, - 2, - 2, - 2, - 1, - 1, - 1 - ], - "states": 9 - }, - "audit": { - "states": 1776, - "stuckStates": 93, - "doubleDead": 0, - "maxDeadTurns": 0, - "unsolvable": 0, - "endgameMinOpen": 2, - "endgameTightStates": 0, - "endgameWorst": "t0,t3", - "exhausted": false - }, - "monkeyActionsPerPiece": 5.302083333333333 + "monkeyActionsPerPiece": 5.763888888888888 } }, { @@ -17160,6 +11849,2398 @@ "monkeyActionsPerPiece": 4.114583333333333 } }, + { + "version": 1, + "id": "proto-d5-orbits-r3-s13", + "name": "环绕 · 深旋转", + "cells": [ + { + "q": -3, + "r": 0, + "tracks": [ + 4, + 3, + 5, + 1, + 0, + 2 + ] + }, + { + "q": -3, + "r": 1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -3, + "r": 2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -3, + "r": 3, + "tracks": [ + 2, + 4, + 0, + 5, + 1, + 3 + ] + }, + { + "q": -2, + "r": -1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -2, + "r": 0, + "tracks": [ + 5, + 3, + 4, + 1, + 2, + 0 + ] + }, + { + "q": -2, + "r": 1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -2, + "r": 2, + "tracks": [ + 2, + 4, + 0, + 5, + 1, + 3 + ] + }, + { + "q": -2, + "r": 3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -1, + "r": -2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -1, + "r": -1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -1, + "r": 0, + "tracks": [ + 2, + 3, + 0, + 1, + 5, + 4 + ] + }, + { + "q": -1, + "r": 1, + "tracks": [ + 2, + 4, + 0, + 5, + 1, + 3 + ] + }, + { + "q": -1, + "r": 2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -1, + "r": 3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 0, + "r": -3, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 0, + "r": -2, + "tracks": [ + 4, + 5, + 3, + 2, + 0, + 1 + ] + }, + { + "q": 0, + "r": -1, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 0, + "r": 0, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 0, + "r": 1, + "tracks": [ + 1, + 0, + 4, + 5, + 2, + 3 + ] + }, + { + "q": 0, + "r": 2, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 0, + "r": 3, + "tracks": [ + 1, + 0, + 4, + 5, + 2, + 3 + ] + }, + { + "q": 1, + "r": -3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 1, + "r": -2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 1, + "r": -1, + "tracks": [ + 1, + 0, + 4, + 5, + 2, + 3 + ] + }, + { + "q": 1, + "r": 0, + "tracks": [ + 4, + 5, + 3, + 2, + 0, + 1 + ] + }, + { + "q": 1, + "r": 1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 1, + "r": 2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 2, + "r": -3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 2, + "r": -2, + "tracks": [ + 4, + 2, + 1, + 5, + 0, + 3 + ] + }, + { + "q": 2, + "r": -1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 2, + "r": 0, + "tracks": [ + 4, + 2, + 1, + 5, + 0, + 3 + ] + }, + { + "q": 2, + "r": 1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 3, + "r": -3, + "tracks": [ + 2, + 4, + 0, + 5, + 1, + 3 + ] + }, + { + "q": 3, + "r": -2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 3, + "r": -1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 3, + "r": 0, + "tracks": [ + 4, + 3, + 5, + 1, + 0, + 2 + ] + } + ], + "tiles": [ + { + "q": -1, + "r": 0, + "dir": 3, + "id": "t0", + "color": 0 + }, + { + "q": 3, + "r": -2, + "dir": 4, + "id": "t1", + "color": 1 + }, + { + "q": 3, + "r": -3, + "dir": 4, + "id": "t2", + "color": 2 + }, + { + "q": 0, + "r": 1, + "dir": 1, + "id": "t3", + "color": 3 + }, + { + "q": 1, + "r": 1, + "dir": 2, + "id": "t4", + "color": 4 + }, + { + "q": -3, + "r": 2, + "dir": 4, + "id": "t5", + "color": 5 + }, + { + "q": 0, + "r": -3, + "dir": 3, + "id": "t6", + "color": 6 + }, + { + "q": -1, + "r": 3, + "dir": 1, + "id": "t7", + "color": 0 + }, + { + "q": -3, + "r": 1, + "dir": 1, + "id": "t8", + "color": 1 + } + ], + "moveLimit": 9, + "rotationEnabled": true, + "routeDesign": { + "family": "orbits", + "variant": 0, + "seed": 13, + "radius": 3, + "gateVariant": 13, + "featured": [ + { + "q": -3, + "r": 0, + "a": 1, + "b": 3 + }, + { + "q": -3, + "r": 1, + "a": 0, + "b": 3 + }, + { + "q": -3, + "r": 2, + "a": 0, + "b": 3 + }, + { + "q": -3, + "r": 3, + "a": 0, + "b": 2 + }, + { + "q": -2, + "r": -1, + "a": 1, + "b": 4 + }, + { + "q": -2, + "r": 0, + "a": 1, + "b": 3 + }, + { + "q": -2, + "r": 1, + "a": 0, + "b": 3 + }, + { + "q": -2, + "r": 2, + "a": 0, + "b": 2 + }, + { + "q": -2, + "r": 3, + "a": 2, + "b": 5 + }, + { + "q": -1, + "r": -2, + "a": 1, + "b": 4 + }, + { + "q": -1, + "r": -1, + "a": 1, + "b": 4 + }, + { + "q": -1, + "r": 0, + "a": 1, + "b": 3 + }, + { + "q": -1, + "r": 1, + "a": 0, + "b": 2 + }, + { + "q": -1, + "r": 2, + "a": 2, + "b": 5 + }, + { + "q": -1, + "r": 3, + "a": 2, + "b": 5 + }, + { + "q": 0, + "r": -3, + "a": 0, + "b": 3 + }, + { + "q": 0, + "r": -3, + "a": 2, + "b": 4 + }, + { + "q": 0, + "r": -2, + "a": 0, + "b": 4 + }, + { + "q": 0, + "r": -2, + "a": 2, + "b": 3 + }, + { + "q": 0, + "r": -1, + "a": 0, + "b": 3 + }, + { + "q": 0, + "r": -1, + "a": 2, + "b": 4 + }, + { + "q": 0, + "r": 0, + "a": 0, + "b": 3 + }, + { + "q": 0, + "r": 1, + "a": 0, + "b": 1 + }, + { + "q": 0, + "r": 1, + "a": 3, + "b": 5 + }, + { + "q": 0, + "r": 2, + "a": 0, + "b": 3 + }, + { + "q": 0, + "r": 2, + "a": 1, + "b": 5 + }, + { + "q": 0, + "r": 3, + "a": 0, + "b": 1 + }, + { + "q": 0, + "r": 3, + "a": 3, + "b": 5 + }, + { + "q": 1, + "r": -3, + "a": 2, + "b": 5 + }, + { + "q": 1, + "r": -2, + "a": 2, + "b": 5 + }, + { + "q": 1, + "r": -1, + "a": 3, + "b": 5 + }, + { + "q": 1, + "r": 0, + "a": 0, + "b": 4 + }, + { + "q": 1, + "r": 1, + "a": 1, + "b": 4 + }, + { + "q": 1, + "r": 2, + "a": 1, + "b": 4 + }, + { + "q": 2, + "r": -3, + "a": 2, + "b": 5 + }, + { + "q": 2, + "r": -2, + "a": 3, + "b": 5 + }, + { + "q": 2, + "r": -1, + "a": 0, + "b": 3 + }, + { + "q": 2, + "r": 0, + "a": 0, + "b": 4 + }, + { + "q": 2, + "r": 1, + "a": 1, + "b": 4 + }, + { + "q": 3, + "r": -3, + "a": 3, + "b": 5 + }, + { + "q": 3, + "r": -2, + "a": 0, + "b": 3 + }, + { + "q": 3, + "r": -1, + "a": 0, + "b": 3 + }, + { + "q": 3, + "r": 0, + "a": 0, + "b": 4 + } + ], + "heroStarts": [ + { + "q": 0, + "r": -3, + "dir": 3, + "steps": 43, + "bends": 21, + "featuredPairs": 42 + }, + { + "q": 0, + "r": 3, + "dir": 5, + "steps": 43, + "bends": 20, + "featuredPairs": 42 + }, + { + "q": -1, + "r": 3, + "dir": 5, + "steps": 42, + "bends": 20, + "featuredPairs": 41 + }, + { + "q": 0, + "r": -2, + "dir": 4, + "steps": 42, + "bends": 20, + "featuredPairs": 41 + }, + { + "q": -2, + "r": 3, + "dir": 5, + "steps": 41, + "bends": 20, + "featuredPairs": 40 + }, + { + "q": -1, + "r": -1, + "dir": 4, + "steps": 41, + "bends": 20, + "featuredPairs": 40 + }, + { + "q": -3, + "r": 3, + "dir": 0, + "steps": 40, + "bends": 19, + "featuredPairs": 39 + }, + { + "q": -2, + "r": 0, + "dir": 3, + "steps": 40, + "bends": 19, + "featuredPairs": 39 + }, + { + "q": -3, + "r": 2, + "dir": 0, + "steps": 39, + "bends": 19, + "featuredPairs": 38 + }, + { + "q": -2, + "r": 1, + "dir": 3, + "steps": 39, + "bends": 19, + "featuredPairs": 38 + }, + { + "q": -3, + "r": 1, + "dir": 0, + "steps": 38, + "bends": 19, + "featuredPairs": 37 + }, + { + "q": -2, + "r": 2, + "dir": 2, + "steps": 38, + "bends": 18, + "featuredPairs": 37 + }, + { + "q": -3, + "r": 0, + "dir": 1, + "steps": 37, + "bends": 18, + "featuredPairs": 36 + }, + { + "q": -1, + "r": 2, + "dir": 2, + "steps": 37, + "bends": 18, + "featuredPairs": 36 + }, + { + "q": -2, + "r": -1, + "dir": 1, + "steps": 36, + "bends": 18, + "featuredPairs": 35 + }, + { + "q": 0, + "r": 2, + "dir": 1, + "steps": 36, + "bends": 17, + "featuredPairs": 35 + }, + { + "q": -1, + "r": -2, + "dir": 1, + "steps": 35, + "bends": 18, + "featuredPairs": 34 + }, + { + "q": 1, + "r": 1, + "dir": 1, + "steps": 35, + "bends": 17, + "featuredPairs": 34 + }, + { + "q": 0, + "r": -3, + "dir": 2, + "steps": 34, + "bends": 17, + "featuredPairs": 33 + }, + { + "q": 2, + "r": 0, + "dir": 0, + "steps": 34, + "bends": 16, + "featuredPairs": 33 + }, + { + "q": 1, + "r": -3, + "dir": 2, + "steps": 33, + "bends": 17, + "featuredPairs": 32 + }, + { + "q": 2, + "r": -1, + "dir": 0, + "steps": 33, + "bends": 16, + "featuredPairs": 32 + }, + { + "q": 2, + "r": -3, + "dir": 2, + "steps": 32, + "bends": 17, + "featuredPairs": 31 + }, + { + "q": 2, + "r": -2, + "dir": 5, + "steps": 32, + "bends": 15, + "featuredPairs": 31 + }, + { + "q": 3, + "r": -3, + "dir": 3, + "steps": 31, + "bends": 16, + "featuredPairs": 30 + }, + { + "q": 1, + "r": -2, + "dir": 5, + "steps": 31, + "bends": 15, + "featuredPairs": 30 + }, + { + "q": 3, + "r": -2, + "dir": 3, + "steps": 30, + "bends": 16, + "featuredPairs": 29 + }, + { + "q": 0, + "r": -2, + "dir": 3, + "steps": 30, + "bends": 14, + "featuredPairs": 29 + }, + { + "q": 3, + "r": -1, + "dir": 3, + "steps": 29, + "bends": 16, + "featuredPairs": 28 + }, + { + "q": 0, + "r": -1, + "dir": 3, + "steps": 29, + "bends": 14, + "featuredPairs": 28 + }, + { + "q": 3, + "r": 0, + "dir": 4, + "steps": 28, + "bends": 15, + "featuredPairs": 27 + }, + { + "q": 0, + "r": 0, + "dir": 3, + "steps": 28, + "bends": 14, + "featuredPairs": 27 + }, + { + "q": 2, + "r": 1, + "dir": 4, + "steps": 27, + "bends": 15, + "featuredPairs": 26 + }, + { + "q": 0, + "r": 1, + "dir": 1, + "steps": 27, + "bends": 13, + "featuredPairs": 26 + }, + { + "q": 1, + "r": 2, + "dir": 4, + "steps": 26, + "bends": 15, + "featuredPairs": 25 + }, + { + "q": 1, + "r": 0, + "dir": 0, + "steps": 26, + "bends": 12, + "featuredPairs": 25 + } + ] + }, + "experience": { + "kind": "deep", + "feature": { + "id": "t0" + }, + "actions": [ + { + "type": "tap", + "id": "t4" + }, + { + "type": "tap", + "id": "t5" + }, + { + "type": "tap", + "id": "t7" + }, + { + "type": "rotate", + "direction": 1 + }, + { + "type": "tap", + "id": "t1" + }, + { + "type": "tap", + "id": "t6" + }, + { + "type": "tap", + "id": "t8" + }, + { + "type": "rotate", + "direction": 1 + }, + { + "type": "tap", + "id": "t2" + }, + { + "type": "rotate", + "direction": 1 + }, + { + "type": "tap", + "id": "t3" + }, + { + "type": "tap", + "id": "t0" + } + ] + }, + "prototype": { + "family": "orbits", + "radius": 3, + "seed": 13, + "target": 9, + "lock": { + "hero": "t0", + "heroBends": 8, + "search": { + "checks": 4631, + "formalChecks": 4631, + "heroCandidates": 58, + "poolSize": 222 + } + }, + "placements": [ + 1, + 1, + 2, + 1, + 0, + 0, + 1, + 2, + 1 + ], + "rejected": { + "orientationless": 75, + "shortcut": 0 + }, + "stats": { + "pieces": 9, + "rotations": 3, + "lockedShare": 0.6666666666666666, + "lockedAtStart": 6, + "firstTurnDirections": 2, + "releasePerTurn": [ + 3, + 1, + 2 + ], + "minRelease": 1, + "waves": [ + 2, + 1, + 3, + 1, + 1, + 1 + ], + "states": 8 + }, + "audit": { + "states": 402, + "stuckStates": 24, + "doubleDead": 1, + "maxDeadTurns": 1, + "unsolvable": 0, + "endgameMinOpen": 3, + "endgameTightStates": 0, + "endgameWorst": "t0,t2,t3", + "exhausted": false + }, + "monkeyActionsPerPiece": 4.75 + } + }, + { + "version": 1, + "id": "proto-d5-orbits-r3-s1", + "name": "环绕 · 深旋转", + "cells": [ + { + "q": -3, + "r": 0, + "tracks": [ + 4, + 3, + 5, + 1, + 0, + 2 + ] + }, + { + "q": -3, + "r": 1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -3, + "r": 2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -3, + "r": 3, + "tracks": [ + 2, + 4, + 0, + 5, + 1, + 3 + ] + }, + { + "q": -2, + "r": -1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -2, + "r": 0, + "tracks": [ + 5, + 3, + 4, + 1, + 2, + 0 + ] + }, + { + "q": -2, + "r": 1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -2, + "r": 2, + "tracks": [ + 2, + 4, + 0, + 5, + 1, + 3 + ] + }, + { + "q": -2, + "r": 3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -1, + "r": -2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -1, + "r": -1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -1, + "r": 0, + "tracks": [ + 2, + 3, + 0, + 1, + 5, + 4 + ] + }, + { + "q": -1, + "r": 1, + "tracks": [ + 2, + 4, + 0, + 5, + 1, + 3 + ] + }, + { + "q": -1, + "r": 2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": -1, + "r": 3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 0, + "r": -3, + "tracks": [ + 2, + 5, + 0, + 4, + 3, + 1 + ] + }, + { + "q": 0, + "r": -2, + "tracks": [ + 4, + 5, + 3, + 2, + 0, + 1 + ] + }, + { + "q": 0, + "r": -1, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 0, + "r": 0, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 0, + "r": 1, + "tracks": [ + 1, + 0, + 4, + 5, + 2, + 3 + ] + }, + { + "q": 0, + "r": 2, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 0, + "r": 3, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 1, + "r": -3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 1, + "r": -2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 1, + "r": -1, + "tracks": [ + 1, + 0, + 4, + 5, + 2, + 3 + ] + }, + { + "q": 1, + "r": 0, + "tracks": [ + 4, + 5, + 3, + 2, + 0, + 1 + ] + }, + { + "q": 1, + "r": 1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 1, + "r": 2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 2, + "r": -3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 2, + "r": -2, + "tracks": [ + 4, + 2, + 1, + 5, + 0, + 3 + ] + }, + { + "q": 2, + "r": -1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 2, + "r": 0, + "tracks": [ + 4, + 2, + 1, + 5, + 0, + 3 + ] + }, + { + "q": 2, + "r": 1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 3, + "r": -3, + "tracks": [ + 2, + 4, + 0, + 5, + 1, + 3 + ] + }, + { + "q": 3, + "r": -2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 3, + "r": -1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 3, + "r": 0, + "tracks": [ + 4, + 3, + 5, + 1, + 0, + 2 + ] + } + ], + "tiles": [ + { + "q": 2, + "r": 0, + "dir": 0, + "id": "t0", + "color": 0 + }, + { + "q": 0, + "r": 0, + "dir": 5, + "id": "t1", + "color": 1 + }, + { + "q": -2, + "r": 2, + "dir": 1, + "id": "t2", + "color": 2 + }, + { + "q": 0, + "r": -2, + "dir": 4, + "id": "t3", + "color": 3 + }, + { + "q": 3, + "r": -1, + "dir": 1, + "id": "t4", + "color": 4 + }, + { + "q": 0, + "r": 3, + "dir": 0, + "id": "t5", + "color": 5 + }, + { + "q": 2, + "r": 1, + "dir": 2, + "id": "t6", + "color": 6 + }, + { + "q": -3, + "r": 1, + "dir": 1, + "id": "t7", + "color": 0 + }, + { + "q": -3, + "r": 0, + "dir": 0, + "id": "t8", + "color": 1 + } + ], + "moveLimit": 9, + "rotationEnabled": true, + "routeDesign": { + "family": "orbits", + "variant": 0, + "seed": 1, + "radius": 3, + "gateVariant": 1, + "featured": [ + { + "q": -3, + "r": 0, + "a": 1, + "b": 3 + }, + { + "q": -3, + "r": 1, + "a": 0, + "b": 3 + }, + { + "q": -3, + "r": 2, + "a": 0, + "b": 3 + }, + { + "q": -3, + "r": 3, + "a": 0, + "b": 2 + }, + { + "q": -2, + "r": -1, + "a": 1, + "b": 4 + }, + { + "q": -2, + "r": 0, + "a": 1, + "b": 3 + }, + { + "q": -2, + "r": 1, + "a": 0, + "b": 3 + }, + { + "q": -2, + "r": 2, + "a": 0, + "b": 2 + }, + { + "q": -2, + "r": 3, + "a": 2, + "b": 5 + }, + { + "q": -1, + "r": -2, + "a": 1, + "b": 4 + }, + { + "q": -1, + "r": -1, + "a": 1, + "b": 4 + }, + { + "q": -1, + "r": 0, + "a": 1, + "b": 3 + }, + { + "q": -1, + "r": 1, + "a": 0, + "b": 2 + }, + { + "q": -1, + "r": 2, + "a": 2, + "b": 5 + }, + { + "q": -1, + "r": 3, + "a": 2, + "b": 5 + }, + { + "q": 0, + "r": -3, + "a": 0, + "b": 2 + }, + { + "q": 0, + "r": -3, + "a": 3, + "b": 4 + }, + { + "q": 0, + "r": -2, + "a": 0, + "b": 4 + }, + { + "q": 0, + "r": -2, + "a": 2, + "b": 3 + }, + { + "q": 0, + "r": -1, + "a": 0, + "b": 3 + }, + { + "q": 0, + "r": -1, + "a": 2, + "b": 4 + }, + { + "q": 0, + "r": 0, + "a": 0, + "b": 3 + }, + { + "q": 0, + "r": 1, + "a": 0, + "b": 1 + }, + { + "q": 0, + "r": 1, + "a": 3, + "b": 5 + }, + { + "q": 0, + "r": 2, + "a": 0, + "b": 3 + }, + { + "q": 0, + "r": 2, + "a": 1, + "b": 5 + }, + { + "q": 0, + "r": 3, + "a": 0, + "b": 3 + }, + { + "q": 0, + "r": 3, + "a": 1, + "b": 5 + }, + { + "q": 1, + "r": -3, + "a": 2, + "b": 5 + }, + { + "q": 1, + "r": -2, + "a": 2, + "b": 5 + }, + { + "q": 1, + "r": -1, + "a": 3, + "b": 5 + }, + { + "q": 1, + "r": 0, + "a": 0, + "b": 4 + }, + { + "q": 1, + "r": 1, + "a": 1, + "b": 4 + }, + { + "q": 1, + "r": 2, + "a": 1, + "b": 4 + }, + { + "q": 2, + "r": -3, + "a": 2, + "b": 5 + }, + { + "q": 2, + "r": -2, + "a": 3, + "b": 5 + }, + { + "q": 2, + "r": -1, + "a": 0, + "b": 3 + }, + { + "q": 2, + "r": 0, + "a": 0, + "b": 4 + }, + { + "q": 2, + "r": 1, + "a": 1, + "b": 4 + }, + { + "q": 3, + "r": -3, + "a": 3, + "b": 5 + }, + { + "q": 3, + "r": -2, + "a": 0, + "b": 3 + }, + { + "q": 3, + "r": -1, + "a": 0, + "b": 3 + }, + { + "q": 3, + "r": 0, + "a": 0, + "b": 4 + } + ], + "heroStarts": [ + { + "q": 0, + "r": 3, + "dir": 0, + "steps": 43, + "bends": 21, + "featuredPairs": 42 + }, + { + "q": 0, + "r": -3, + "dir": 2, + "steps": 43, + "bends": 20, + "featuredPairs": 42 + }, + { + "q": 0, + "r": 2, + "dir": 0, + "steps": 42, + "bends": 21, + "featuredPairs": 41 + }, + { + "q": 1, + "r": -3, + "dir": 2, + "steps": 42, + "bends": 20, + "featuredPairs": 41 + }, + { + "q": 0, + "r": 1, + "dir": 5, + "steps": 41, + "bends": 20, + "featuredPairs": 40 + }, + { + "q": 2, + "r": -3, + "dir": 2, + "steps": 41, + "bends": 20, + "featuredPairs": 40 + }, + { + "q": -1, + "r": 1, + "dir": 0, + "steps": 40, + "bends": 19, + "featuredPairs": 39 + }, + { + "q": 3, + "r": -3, + "dir": 3, + "steps": 40, + "bends": 19, + "featuredPairs": 39 + }, + { + "q": 3, + "r": -2, + "dir": 3, + "steps": 39, + "bends": 19, + "featuredPairs": 38 + }, + { + "q": -1, + "r": 0, + "dir": 1, + "steps": 39, + "bends": 18, + "featuredPairs": 38 + }, + { + "q": 3, + "r": -1, + "dir": 3, + "steps": 38, + "bends": 19, + "featuredPairs": 37 + }, + { + "q": 0, + "r": -1, + "dir": 2, + "steps": 38, + "bends": 17, + "featuredPairs": 37 + }, + { + "q": 3, + "r": 0, + "dir": 4, + "steps": 37, + "bends": 18, + "featuredPairs": 36 + }, + { + "q": 1, + "r": -1, + "dir": 3, + "steps": 37, + "bends": 16, + "featuredPairs": 36 + }, + { + "q": 2, + "r": 1, + "dir": 4, + "steps": 36, + "bends": 18, + "featuredPairs": 35 + }, + { + "q": 1, + "r": 0, + "dir": 4, + "steps": 36, + "bends": 15, + "featuredPairs": 35 + }, + { + "q": 1, + "r": 2, + "dir": 4, + "steps": 35, + "bends": 18, + "featuredPairs": 34 + }, + { + "q": 0, + "r": 1, + "dir": 0, + "steps": 35, + "bends": 14, + "featuredPairs": 34 + }, + { + "q": 0, + "r": 3, + "dir": 5, + "steps": 34, + "bends": 17, + "featuredPairs": 33 + }, + { + "q": 0, + "r": 0, + "dir": 0, + "steps": 34, + "bends": 14, + "featuredPairs": 33 + }, + { + "q": -1, + "r": 3, + "dir": 5, + "steps": 33, + "bends": 17, + "featuredPairs": 32 + }, + { + "q": 0, + "r": -1, + "dir": 0, + "steps": 33, + "bends": 14, + "featuredPairs": 32 + }, + { + "q": -2, + "r": 3, + "dir": 5, + "steps": 32, + "bends": 17, + "featuredPairs": 31 + }, + { + "q": 0, + "r": -2, + "dir": 2, + "steps": 32, + "bends": 13, + "featuredPairs": 31 + }, + { + "q": -3, + "r": 3, + "dir": 0, + "steps": 31, + "bends": 16, + "featuredPairs": 30 + }, + { + "q": 1, + "r": -2, + "dir": 2, + "steps": 31, + "bends": 13, + "featuredPairs": 30 + }, + { + "q": -3, + "r": 2, + "dir": 0, + "steps": 30, + "bends": 16, + "featuredPairs": 29 + }, + { + "q": 2, + "r": -2, + "dir": 3, + "steps": 30, + "bends": 12, + "featuredPairs": 29 + }, + { + "q": -3, + "r": 1, + "dir": 0, + "steps": 29, + "bends": 16, + "featuredPairs": 28 + }, + { + "q": 2, + "r": -1, + "dir": 3, + "steps": 29, + "bends": 12, + "featuredPairs": 28 + }, + { + "q": -3, + "r": 0, + "dir": 1, + "steps": 28, + "bends": 15, + "featuredPairs": 27 + }, + { + "q": 2, + "r": 0, + "dir": 4, + "steps": 28, + "bends": 11, + "featuredPairs": 27 + }, + { + "q": -2, + "r": -1, + "dir": 1, + "steps": 27, + "bends": 15, + "featuredPairs": 26 + }, + { + "q": 1, + "r": 1, + "dir": 4, + "steps": 27, + "bends": 11, + "featuredPairs": 26 + }, + { + "q": -1, + "r": -2, + "dir": 1, + "steps": 26, + "bends": 15, + "featuredPairs": 25 + }, + { + "q": 0, + "r": 2, + "dir": 5, + "steps": 26, + "bends": 10, + "featuredPairs": 25 + } + ] + }, + "experience": { + "kind": "deep", + "feature": { + "id": "t0" + }, + "actions": [ + { + "type": "tap", + "id": "t4" + }, + { + "type": "tap", + "id": "t6" + }, + { + "type": "tap", + "id": "t8" + }, + { + "type": "rotate", + "direction": 1 + }, + { + "type": "tap", + "id": "t5" + }, + { + "type": "tap", + "id": "t7" + }, + { + "type": "tap", + "id": "t1" + }, + { + "type": "rotate", + "direction": 1 + }, + { + "type": "tap", + "id": "t2" + }, + { + "type": "rotate", + "direction": 1 + }, + { + "type": "tap", + "id": "t3" + }, + { + "type": "tap", + "id": "t0" + } + ] + }, + "prototype": { + "family": "orbits", + "radius": 3, + "seed": 1, + "target": 9, + "lock": { + "hero": "t0", + "heroBends": 8, + "search": { + "checks": 139, + "formalChecks": 139, + "heroCandidates": 62, + "poolSize": 222 + } + }, + "placements": [ + 1, + 1, + 2, + 1, + 0, + 1, + 2, + 1, + 0 + ], + "rejected": { + "orientationless": 260, + "shortcut": 0 + }, + "stats": { + "pieces": 9, + "rotations": 3, + "lockedShare": 0.6666666666666666, + "lockedAtStart": 6, + "firstTurnDirections": 2, + "releasePerTurn": [ + 3, + 1, + 2 + ], + "minRelease": 1, + "waves": [ + 3, + 2, + 1, + 1, + 1, + 1 + ], + "states": 8 + }, + "audit": { + "states": 432, + "stuckStates": 25, + "doubleDead": 1, + "maxDeadTurns": 1, + "unsolvable": 0, + "endgameMinOpen": 3, + "endgameTightStates": 0, + "endgameWorst": "t0,t1,t3", + "exhausted": false + }, + "monkeyActionsPerPiece": 5.069444444444444 + } + }, { "version": 1, "id": "proto-d5-orbits-r4-s10", @@ -18776,8 +15857,8 @@ "hero": "t0", "heroBends": 8, "search": { - "checks": 36179, - "formalChecks": 36179, + "checks": 641, + "formalChecks": 641, "heroCandidates": 100, "poolSize": 366 } @@ -18840,11 +15921,11 @@ }, { "version": 1, - "id": "proto-d5-petals-r4-s10", + "id": "proto-d5-petals-r3-s5", "name": "花瓣 · 深旋转", "cells": [ { - "q": -4, + "q": -3, "r": 0, "tracks": [ 4, @@ -18856,7 +15937,7 @@ ] }, { - "q": -4, + "q": -3, "r": 1, "tracks": [ 2, @@ -18868,20 +15949,8 @@ ] }, { - "q": -4, + "q": -3, "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -4, - "r": 3, "tracks": [ 2, 3, @@ -18892,8 +15961,8 @@ ] }, { - "q": -4, - "r": 4, + "q": -3, + "r": 3, "tracks": [ 2, 4, @@ -18904,7 +15973,7 @@ ] }, { - "q": -3, + "q": -2, "r": -1, "tracks": [ 3, @@ -18916,7 +15985,7 @@ ] }, { - "q": -3, + "q": -2, "r": 0, "tracks": [ 3, @@ -18928,7 +15997,7 @@ ] }, { - "q": -3, + "q": -2, "r": 1, "tracks": [ 3, @@ -18939,129 +16008,33 @@ 1 ] }, - { - "q": -3, - "r": 2, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -3, - "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -3, - "r": 4, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": -2, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -2, - "r": -1, - "tracks": [ - 1, - 0, - 4, - 5, - 2, - 3 - ] - }, - { - "q": -2, - "r": 0, - "tracks": [ - 2, - 3, - 0, - 1, - 5, - 4 - ] - }, - { - "q": -2, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, { "q": -2, "r": 2, "tracks": [ - 2, + 3, + 4, 5, 0, - 4, - 3, - 1 + 1, + 2 ] }, { "q": -2, "r": 3, "tracks": [ - 4, - 5, 3, + 5, + 4, + 0, 2, - 0, 1 ] }, - { - "q": -2, - "r": 4, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, { "q": -1, - "r": -3, + "r": -2, "tracks": [ 2, 3, @@ -19073,7 +16046,7 @@ }, { "q": -1, - "r": -2, + "r": -1, "tracks": [ 2, 4, @@ -19083,57 +16056,9 @@ 3 ] }, - { - "q": -1, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, { "q": -1, "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": -1, - "r": 3, "tracks": [ 2, 3, @@ -19145,7 +16070,31 @@ }, { "q": -1, - "r": 4, + "r": 1, + "tracks": [ + 2, + 5, + 0, + 4, + 3, + 1 + ] + }, + { + "q": -1, + "r": 2, + "tracks": [ + 4, + 3, + 5, + 1, + 0, + 2 + ] + }, + { + "q": -1, + "r": 3, "tracks": [ 2, 4, @@ -19157,7 +16106,7 @@ }, { "q": 0, - "r": -4, + "r": -3, "tracks": [ 3, 5, @@ -19167,93 +16116,69 @@ 1 ] }, - { - "q": 0, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, { "q": 0, "r": -2, "tracks": [ - 5, 3, 4, + 5, + 0, 1, - 2, - 0 + 2 ] }, { "q": 0, "r": -1, "tracks": [ - 3, + 1, + 0, 4, 5, - 0, - 1, - 2 + 2, + 3 ] }, { "q": 0, "r": 0, "tracks": [ - 3, + 1, + 0, 4, 5, - 0, - 1, - 2 + 2, + 3 ] }, { "q": 0, "r": 1, "tracks": [ - 3, 4, 5, + 3, + 2, 0, - 1, - 2 + 1 ] }, { "q": 0, "r": 2, "tracks": [ - 2, + 3, + 4, 5, 0, - 4, - 3, - 1 + 1, + 2 ] }, { "q": 0, "r": 3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 0, - "r": 4, "tracks": [ 3, 5, @@ -19265,7 +16190,7 @@ }, { "q": 1, - "r": -4, + "r": -3, "tracks": [ 1, 0, @@ -19277,7 +16202,31 @@ }, { "q": 1, - "r": -3, + "r": -2, + "tracks": [ + 4, + 3, + 5, + 1, + 0, + 2 + ] + }, + { + "q": 1, + "r": -1, + "tracks": [ + 1, + 0, + 4, + 5, + 2, + 3 + ] + }, + { + "q": 1, + "r": 0, "tracks": [ 4, 5, @@ -19287,165 +16236,33 @@ 1 ] }, - { - "q": 1, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 0, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, { "q": 1, "r": 1, "tracks": [ - 3, + 2, 4, - 5, 0, + 5, 1, - 2 + 3 ] }, { "q": 1, "r": 2, "tracks": [ + 4, + 3, + 5, 1, 0, - 4, - 5, - 2, - 3 - ] - }, - { - "q": 1, - "r": 3, - "tracks": [ - 4, - 5, - 3, - 2, - 0, - 1 - ] - }, - { - "q": 2, - "r": -4, - "tracks": [ - 3, - 4, - 5, - 0, - 1, 2 ] }, { "q": 2, "r": -3, - "tracks": [ - 2, - 3, - 0, - 1, - 5, - 4 - ] - }, - { - "q": 2, - "r": -2, - "tracks": [ - 4, - 2, - 1, - 5, - 0, - 3 - ] - }, - { - "q": 2, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 0, - "tracks": [ - 4, - 2, - 1, - 5, - 0, - 3 - ] - }, - { - "q": 2, - "r": 1, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": 2, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 3, - "r": -4, "tracks": [ 3, 5, @@ -19456,8 +16273,8 @@ ] }, { - "q": 3, - "r": -3, + "q": 2, + "r": -2, "tracks": [ 3, 4, @@ -19468,19 +16285,7 @@ ] }, { - "q": 3, - "r": -2, - "tracks": [ - 3, - 5, - 4, - 0, - 2, - 1 - ] - }, - { - "q": 3, + "q": 2, "r": -1, "tracks": [ 3, @@ -19492,7 +16297,7 @@ ] }, { - "q": 3, + "q": 2, "r": 0, "tracks": [ 3, @@ -19504,7 +16309,7 @@ ] }, { - "q": 3, + "q": 2, "r": 1, "tracks": [ 3, @@ -19516,8 +16321,8 @@ ] }, { - "q": 4, - "r": -4, + "q": 3, + "r": -3, "tracks": [ 2, 4, @@ -19528,31 +16333,19 @@ ] }, { - "q": 4, - "r": -3, - "tracks": [ - 4, - 5, - 3, - 2, - 0, - 1 - ] - }, - { - "q": 4, + "q": 3, "r": -2, "tracks": [ - 3, 4, + 3, 5, - 0, 1, + 0, 2 ] }, { - "q": 4, + "q": 3, "r": -1, "tracks": [ 1, @@ -19564,7 +16357,7 @@ ] }, { - "q": 4, + "q": 3, "r": 0, "tracks": [ 4, @@ -19578,255 +16371,210 @@ ], "tiles": [ { - "q": 4, - "r": -1, - "dir": 5, + "q": 0, + "r": 1, + "dir": 2, "id": "t0", "color": 0 }, { - "q": 3, + "q": -1, "r": -1, - "dir": 5, + "dir": 2, "id": "t1", "color": 1 }, - { - "q": -4, - "r": 0, - "dir": 1, - "id": "t2", - "color": 2 - }, - { - "q": 4, - "r": 0, - "dir": 5, - "id": "t3", - "color": 3 - }, - { - "q": 1, - "r": 2, - "dir": 1, - "id": "t4", - "color": 4 - }, - { - "q": -3, - "r": 2, - "dir": 0, - "id": "t5", - "color": 5 - }, - { - "q": 2, - "r": -4, - "dir": 4, - "id": "t6", - "color": 6 - }, - { - "q": 3, - "r": 1, - "dir": 3, - "id": "t7", - "color": 0 - }, { "q": -1, "r": 2, "dir": 4, - "id": "t8", - "color": 1 - }, - { - "q": -3, - "r": -1, - "dir": 0, - "id": "t9", + "id": "t2", "color": 2 }, { - "q": 3, - "r": -2, - "dir": 0, - "id": "t10", + "q": 0, + "r": 0, + "dir": 3, + "id": "t3", "color": 3 }, { - "q": -3, - "r": 3, + "q": 3, + "r": -3, "dir": 2, - "id": "t11", + "id": "t4", "color": 4 + }, + { + "q": 2, + "r": 1, + "dir": 1, + "id": "t5", + "color": 5 + }, + { + "q": 0, + "r": -2, + "dir": 1, + "id": "t6", + "color": 6 + }, + { + "q": -1, + "r": 3, + "dir": 3, + "id": "t7", + "color": 0 + }, + { + "q": 0, + "r": -3, + "dir": 5, + "id": "t8", + "color": 1 } ], - "moveLimit": 12, + "moveLimit": 9, "rotationEnabled": true, "routeDesign": { "family": "petals", "variant": 0, - "seed": 10, - "radius": 4, - "gateVariant": 10, + "seed": 5, + "radius": 3, + "gateVariant": 5, "featured": [ { - "q": -4, + "q": -3, "r": 0, "a": 1, "b": 3 }, { - "q": -4, + "q": -3, "r": 0, "a": 2, "b": 5 }, { - "q": -4, + "q": -3, "r": 1, "a": 0, "b": 2 }, { - "q": -4, - "r": 3, + "q": -3, + "r": 2, "a": 1, "b": 3 }, { - "q": -4, - "r": 4, + "q": -3, + "r": 3, "a": 0, "b": 2 }, { - "q": -4, - "r": 4, + "q": -3, + "r": 3, "a": 1, "b": 4 }, { - "q": -3, + "q": -2, "r": -1, "a": 2, "b": 4 }, { - "q": -3, + "q": -2, "r": 0, "a": 2, "b": 5 }, { - "q": -3, + "q": -2, "r": 1, "a": 1, "b": 5 }, { - "q": -3, - "r": 2, + "q": -2, + "r": 1, "a": 2, "b": 4 }, { - "q": -3, - "r": 3, + "q": -2, + "r": 2, "a": 1, "b": 4 }, { - "q": -3, - "r": 4, + "q": -2, + "r": 3, "a": 1, "b": 5 }, { - "q": -2, + "q": -1, + "r": -2, + "a": 1, + "b": 3 + }, + { + "q": -1, + "r": -1, + "a": 0, + "b": 2 + }, + { + "q": -1, "r": -1, "a": 3, "b": 5 }, { - "q": -2, + "q": -1, "r": 0, "a": 0, "b": 2 }, { - "q": -2, + "q": -1, "r": 0, "a": 4, "b": 5 }, { - "q": -2, - "r": 2, + "q": -1, + "r": 1, "a": 1, "b": 5 }, - { - "q": -2, - "r": 2, - "a": 3, - "b": 4 - }, - { - "q": -2, - "r": 3, - "a": 0, - "b": 4 - }, - { - "q": -1, - "r": -3, - "a": 1, - "b": 3 - }, - { - "q": -1, - "r": -2, - "a": 0, - "b": 2 - }, - { - "q": -1, - "r": 0, - "a": 2, - "b": 5 - }, { "q": -1, "r": 1, - "a": 1, + "a": 3, "b": 4 }, + { + "q": -1, + "r": 2, + "a": 0, + "b": 4 + }, + { + "q": -1, + "r": 2, + "a": 1, + "b": 3 + }, { "q": -1, "r": 3, - "a": 1, - "b": 3 - }, - { - "q": -1, - "r": 4, "a": 0, "b": 2 }, - { - "q": 0, - "r": -4, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": -4, - "a": 2, - "b": 4 - }, { "q": 0, "r": -3, @@ -19835,57 +16583,63 @@ }, { "q": 0, - "r": -2, - "a": 0, - "b": 5 + "r": -3, + "a": 2, + "b": 4 }, { "q": 0, "r": -2, - "a": 1, + "a": 0, "b": 3 }, { "q": 0, "r": -1, "a": 0, - "b": 3 + "b": 1 + }, + { + "q": 0, + "r": -1, + "a": 3, + "b": 5 }, { "q": 0, "r": 0, "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 0, - "a": 1, - "b": 4 + "b": 1 }, { "q": 0, "r": 0, "a": 2, + "b": 4 + }, + { + "q": 0, + "r": 0, + "a": 3, "b": 5 }, { "q": 0, "r": 1, "a": 0, + "b": 4 + }, + { + "q": 0, + "r": 1, + "a": 2, "b": 3 }, { "q": 0, "r": 2, "a": 0, - "b": 2 - }, - { - "q": 0, - "r": 2, - "a": 3, - "b": 4 + "b": 3 }, { "q": 0, @@ -19895,449 +16649,431 @@ }, { "q": 0, - "r": 4, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 4, + "r": 3, "a": 1, "b": 5 }, - { - "q": 1, - "r": -4, - "a": 3, - "b": 5 - }, { "q": 1, "r": -3, + "a": 3, + "b": 5 + }, + { + "q": 1, + "r": -2, "a": 0, "b": 4 }, { "q": 1, - "r": -1, + "r": -2, "a": 1, + "b": 3 + }, + { + "q": 1, + "r": -1, + "a": 0, + "b": 1 + }, + { + "q": 1, + "r": -1, + "a": 2, "b": 4 }, + { + "q": 1, + "r": 0, + "a": 1, + "b": 5 + }, { "q": 1, "r": 0, "a": 2, + "b": 3 + }, + { + "q": 1, + "r": 1, + "a": 0, + "b": 2 + }, + { + "q": 1, + "r": 1, + "a": 3, "b": 5 }, { "q": 1, "r": 2, - "a": 3, - "b": 5 - }, - { - "q": 1, - "r": 3, "a": 0, "b": 4 }, { "q": 2, "r": -3, - "a": 1, - "b": 3 - }, - { - "q": 2, - "r": -2, - "a": 0, - "b": 4 - }, - { - "q": 2, - "r": -2, - "a": 1, - "b": 2 - }, - { - "q": 2, - "r": 0, - "a": 1, - "b": 2 - }, - { - "q": 2, - "r": 0, - "a": 3, - "b": 5 - }, - { - "q": 2, - "r": 1, - "a": 0, - "b": 2 - }, - { - "q": 3, - "r": -4, "a": 2, "b": 4 }, { - "q": 3, - "r": -3, + "q": 2, + "r": -2, "a": 1, "b": 4 }, { - "q": 3, - "r": -2, + "q": 2, + "r": -1, "a": 1, "b": 5 }, { - "q": 3, + "q": 2, "r": -1, "a": 2, "b": 4 }, { - "q": 3, + "q": 2, "r": 0, "a": 2, "b": 5 }, { - "q": 3, + "q": 2, "r": 1, "a": 1, "b": 5 }, { - "q": 4, - "r": -4, + "q": 3, + "r": -3, "a": 1, "b": 4 }, { - "q": 4, - "r": -4, + "q": 3, + "r": -3, "a": 3, "b": 5 }, { - "q": 4, - "r": -3, + "q": 3, + "r": -2, "a": 0, "b": 4 }, { - "q": 4, + "q": 3, "r": -1, "a": 3, "b": 5 }, { - "q": 4, + "q": 3, "r": 0, "a": 0, "b": 4 }, { - "q": 4, + "q": 3, "r": 0, "a": 2, "b": 5 } ], "heroStarts": [ - { - "q": -4, - "r": 0, - "dir": 2, - "steps": 21, - "bends": 14, - "featuredPairs": 20 - }, - { - "q": -4, - "r": 4, - "dir": 1, - "steps": 21, - "bends": 14, - "featuredPairs": 20 - }, - { - "q": 0, - "r": -4, - "dir": 3, - "steps": 21, - "bends": 14, - "featuredPairs": 20 - }, - { - "q": 0, - "r": 4, - "dir": 0, - "steps": 21, - "bends": 14, - "featuredPairs": 20 - }, - { - "q": 4, - "r": -4, - "dir": 4, - "steps": 21, - "bends": 14, - "featuredPairs": 20 - }, - { - "q": 4, - "r": 0, - "dir": 5, - "steps": 21, - "bends": 14, - "featuredPairs": 20 - }, { "q": -3, "r": 0, "dir": 2, - "steps": 20, - "bends": 14, - "featuredPairs": 19 + "steps": 19, + "bends": 15, + "featuredPairs": 18 }, { "q": -3, "r": 3, "dir": 1, - "steps": 20, - "bends": 14, - "featuredPairs": 19 + "steps": 19, + "bends": 15, + "featuredPairs": 18 }, { "q": 0, "r": -3, "dir": 3, - "steps": 20, - "bends": 14, - "featuredPairs": 19 + "steps": 19, + "bends": 15, + "featuredPairs": 18 }, { "q": 0, "r": 3, "dir": 0, - "steps": 20, - "bends": 14, - "featuredPairs": 19 + "steps": 19, + "bends": 15, + "featuredPairs": 18 }, { "q": 3, "r": -3, "dir": 4, - "steps": 20, - "bends": 14, - "featuredPairs": 19 + "steps": 19, + "bends": 15, + "featuredPairs": 18 }, { "q": 3, "r": 0, "dir": 5, - "steps": 20, - "bends": 14, - "featuredPairs": 19 + "steps": 19, + "bends": 15, + "featuredPairs": 18 }, { "q": -2, "r": 0, - "dir": 4, - "steps": 19, - "bends": 13, - "featuredPairs": 18 + "dir": 2, + "steps": 18, + "bends": 15, + "featuredPairs": 17 }, { "q": -2, "r": 2, - "dir": 3, - "steps": 19, - "bends": 13, - "featuredPairs": 18 + "dir": 1, + "steps": 18, + "bends": 15, + "featuredPairs": 17 }, { "q": 0, "r": -2, - "dir": 5, - "steps": 19, - "bends": 13, - "featuredPairs": 18 + "dir": 3, + "steps": 18, + "bends": 15, + "featuredPairs": 17 }, { "q": 0, "r": 2, - "dir": 4, - "steps": 19, - "bends": 13, - "featuredPairs": 18 + "dir": 0, + "steps": 18, + "bends": 15, + "featuredPairs": 17 }, { "q": 2, "r": -2, - "dir": 2, - "steps": 19, - "bends": 13, - "featuredPairs": 18 + "dir": 4, + "steps": 18, + "bends": 15, + "featuredPairs": 17 }, { "q": 2, "r": 0, + "dir": 5, + "steps": 18, + "bends": 15, + "featuredPairs": 17 + }, + { + "q": -1, + "r": 0, + "dir": 4, + "steps": 17, + "bends": 14, + "featuredPairs": 16 + }, + { + "q": -1, + "r": 1, + "dir": 3, + "steps": 17, + "bends": 14, + "featuredPairs": 16 + }, + { + "q": 0, + "r": -1, "dir": 1, - "steps": 19, + "steps": 17, + "bends": 14, + "featuredPairs": 16 + }, + { + "q": 0, + "r": 1, + "dir": 2, + "steps": 17, + "bends": 14, + "featuredPairs": 16 + }, + { + "q": 1, + "r": -1, + "dir": 0, + "steps": 17, + "bends": 14, + "featuredPairs": 16 + }, + { + "q": 1, + "r": 0, + "dir": 3, + "steps": 17, + "bends": 14, + "featuredPairs": 16 + }, + { + "q": -2, + "r": 1, + "dir": 5, + "steps": 16, "bends": 13, - "featuredPairs": 18 + "featuredPairs": 15 + }, + { + "q": -1, + "r": 2, + "dir": 4, + "steps": 16, + "bends": 13, + "featuredPairs": 15 + }, + { + "q": 1, + "r": -2, + "dir": 0, + "steps": 16, + "bends": 13, + "featuredPairs": 15 + }, + { + "q": 1, + "r": -2, + "dir": 1, + "steps": 16, + "bends": 13, + "featuredPairs": 15 + }, + { + "q": 1, + "r": 1, + "dir": 2, + "steps": 16, + "bends": 13, + "featuredPairs": 15 + }, + { + "q": 1, + "r": 1, + "dir": 3, + "steps": 16, + "bends": 13, + "featuredPairs": 15 }, { "q": -3, "r": 1, - "dir": 5, - "steps": 18, + "dir": 0, + "steps": 15, "bends": 12, - "featuredPairs": 17 + "featuredPairs": 14 }, { "q": -2, "r": 3, + "dir": 5, + "steps": 15, + "bends": 12, + "featuredPairs": 14 + }, + { + "q": 1, + "r": -3, + "dir": 5, + "steps": 15, + "bends": 12, + "featuredPairs": 14 + }, + { + "q": 1, + "r": 2, "dir": 4, - "steps": 18, + "steps": 15, "bends": 12, - "featuredPairs": 17 + "featuredPairs": 14 }, { - "q": -1, - "r": -2, - "dir": 0, - "steps": 18, - "bends": 12, - "featuredPairs": 17 - }, - { - "q": -1, - "r": 3, - "dir": 3, - "steps": 18, - "bends": 12, - "featuredPairs": 17 - }, - { - "q": 3, - "r": -2, - "dir": 1, - "steps": 18, - "bends": 12, - "featuredPairs": 17 - }, - { - "q": 3, - "r": -1, + "q": 2, + "r": -3, "dir": 2, - "steps": 18, + "steps": 15, "bends": 12, - "featuredPairs": 17 + "featuredPairs": 14 }, { - "q": -4, + "q": 2, "r": 1, - "dir": 0, - "steps": 17, - "bends": 11, - "featuredPairs": 16 + "dir": 1, + "steps": 15, + "bends": 12, + "featuredPairs": 14 }, { "q": -3, - "r": 4, - "dir": 5, - "steps": 17, - "bends": 11, - "featuredPairs": 16 - }, - { - "q": -1, - "r": -3, - "dir": 1, - "steps": 17, - "bends": 11, - "featuredPairs": 16 - }, - { - "q": -1, - "r": 4, - "dir": 2, - "steps": 17, - "bends": 11, - "featuredPairs": 16 - }, - { - "q": 4, - "r": -3, - "dir": 0, - "steps": 17, - "bends": 11, - "featuredPairs": 16 - }, - { - "q": 4, - "r": -1, - "dir": 3, - "steps": 17, - "bends": 11, - "featuredPairs": 16 - }, - { - "q": -4, "r": 0, "dir": 1, - "steps": 16, - "bends": 10, - "featuredPairs": 15 + "steps": 14, + "bends": 11, + "featuredPairs": 13 }, { - "q": -4, - "r": 4, + "q": -3, + "r": 3, "dir": 0, - "steps": 16, - "bends": 10, - "featuredPairs": 15 + "steps": 14, + "bends": 11, + "featuredPairs": 13 }, { "q": 0, - "r": -4, - "dir": 2, - "steps": 16, - "bends": 10, - "featuredPairs": 15 - }, - { - "q": 0, - "r": 4, - "dir": 1, - "steps": 16, - "bends": 10, - "featuredPairs": 15 - }, - { - "q": 4, - "r": -4, - "dir": 5, - "steps": 16, - "bends": 10, - "featuredPairs": 15 - }, - { - "q": 4, - "r": 0, + "r": -3, "dir": 4, - "steps": 16, - "bends": 10, - "featuredPairs": 15 + "steps": 14, + "bends": 11, + "featuredPairs": 13 + }, + { + "q": 0, + "r": 3, + "dir": 5, + "steps": 14, + "bends": 11, + "featuredPairs": 13 + }, + { + "q": 3, + "r": -3, + "dir": 3, + "steps": 14, + "bends": 11, + "featuredPairs": 13 + }, + { + "q": 3, + "r": 0, + "dir": 0, + "steps": 14, + "bends": 11, + "featuredPairs": 13 } ] }, @@ -20349,7 +17085,7 @@ "actions": [ { "type": "tap", - "id": "t6" + "id": "t4" }, { "type": "tap", @@ -20357,11 +17093,11 @@ }, { "type": "tap", - "id": "t9" + "id": "t8" }, { "type": "tap", - "id": "t10" + "id": "t6" }, { "type": "rotate", @@ -20375,10 +17111,6 @@ "type": "tap", "id": "t5" }, - { - "type": "tap", - "id": "t11" - }, { "type": "rotate", "direction": 1 @@ -20387,17 +17119,9 @@ "type": "tap", "id": "t2" }, - { - "type": "tap", - "id": "t8" - }, - { - "type": "tap", - "id": "t4" - }, { "type": "rotate", - "direction": -1 + "direction": 1 }, { "type": "tap", @@ -20411,17 +17135,17 @@ }, "prototype": { "family": "petals", - "radius": 4, - "seed": 10, - "target": 12, + "radius": 3, + "seed": 5, + "target": 9, "lock": { "hero": "t0", - "heroBends": 9, + "heroBends": 6, "search": { - "checks": 2349, - "formalChecks": 2349, - "heroCandidates": 78, - "poolSize": 342 + "checks": 1652, + "formalChecks": 1652, + "heroCandidates": 66, + "poolSize": 210 } }, "placements": [ @@ -20431,43 +17155,39 @@ 1, 2, 1, - 0, - 0, - 2, - 0, 1, - 1 + 0, + 0 ], "rejected": { - "orientationless": 74, + "orientationless": 128, "shortcut": 0 }, "stats": { - "pieces": 12, + "pieces": 9, "rotations": 3, - "lockedShare": 0.6666666666666666, - "lockedAtStart": 8, + "lockedShare": 0.5555555555555556, + "lockedAtStart": 5, "firstTurnDirections": 2, "releasePerTurn": [ - 3, - 3, + 2, + 1, 2 ], - "minRelease": 2, + "minRelease": 1, "waves": [ 3, 1, - 3, 2, 1, 1, 1 ], - "states": 9 + "states": 7 }, "audit": { - "states": 3048, - "stuckStates": 83, + "states": 384, + "stuckStates": 16, "doubleDead": 2, "maxDeadTurns": 1, "unsolvable": 0, @@ -20476,7 +17196,7 @@ "endgameWorst": "t0,t2,t3", "exhausted": false }, - "monkeyActionsPerPiece": 5.239583333333334 + "monkeyActionsPerPiece": 5.083333333333333 } }, { @@ -22095,8 +18815,8 @@ "hero": "t0", "heroBends": 22, "search": { - "checks": 22817, - "formalChecks": 22817, + "checks": 643, + "formalChecks": 643, "heroCandidates": 100, "poolSize": 366 } @@ -23472,8 +20192,8 @@ "hero": "t0", "heroBends": 6, "search": { - "checks": 250, - "formalChecks": 250, + "checks": 20, + "formalChecks": 20, "heroCandidates": 19, "poolSize": 366 } @@ -24848,8 +21568,8 @@ "hero": "t0", "heroBends": 6, "search": { - "checks": 1205, - "formalChecks": 1205, + "checks": 776, + "formalChecks": 776, "heroCandidates": 19, "poolSize": 366 } @@ -24912,8 +21632,8 @@ }, { "version": 1, - "id": "proto-d5-orbits-r3-s6", - "name": "环绕 · 深旋转", + "id": "proto-d5-spiral-r3-s6", + "name": "螺旋 · 深旋转", "cells": [ { "q": -3, @@ -25015,11 +21735,11 @@ "q": -2, "r": 3, "tracks": [ - 3, 4, + 3, 5, - 0, 1, + 0, 2 ] }, @@ -25064,22 +21784,22 @@ "r": 1, "tracks": [ 2, - 4, + 3, 0, - 5, 1, - 3 + 5, + 4 ] }, { "q": -1, "r": 2, "tracks": [ - 3, 4, + 3, 5, - 0, 1, + 0, 2 ] }, @@ -25123,11 +21843,11 @@ "q": 0, "r": -1, "tracks": [ - 2, - 5, - 0, - 4, 3, + 5, + 4, + 0, + 2, 1 ] }, @@ -25158,6 +21878,18 @@ { "q": 0, "r": 2, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 0, + "r": 3, "tracks": [ 1, 0, @@ -25168,137 +21900,125 @@ ] }, { - "q": 0, - "r": 3, + "q": 1, + "r": -3, "tracks": [ - 5, 3, 4, + 5, + 0, 1, + 2 + ] + }, + { + "q": 1, + "r": -2, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 1, + "r": -1, + "tracks": [ + 3, 2, + 1, + 0, + 5, + 4 + ] + }, + { + "q": 1, + "r": 0, + "tracks": [ + 3, + 5, + 4, + 0, + 2, + 1 + ] + }, + { + "q": 1, + "r": 1, + "tracks": [ + 1, + 0, + 5, + 4, + 3, + 2 + ] + }, + { + "q": 1, + "r": 2, + "tracks": [ + 1, + 0, + 5, + 4, + 3, + 2 + ] + }, + { + "q": 2, + "r": -3, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 2, + "r": -2, + "tracks": [ + 2, + 4, + 0, + 5, + 1, + 3 + ] + }, + { + "q": 2, + "r": -1, + "tracks": [ + 3, + 4, + 5, + 0, + 1, + 2 + ] + }, + { + "q": 2, + "r": 0, + "tracks": [ + 5, + 4, + 3, + 2, + 1, 0 ] }, - { - "q": 1, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": -1, - "tracks": [ - 4, - 2, - 1, - 5, - 0, - 3 - ] - }, - { - "q": 1, - "r": 0, - "tracks": [ - 4, - 3, - 5, - 1, - 0, - 2 - ] - }, - { - "q": 1, - "r": 1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 1, - "r": 2, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": -3, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": -2, - "tracks": [ - 2, - 4, - 0, - 5, - 1, - 3 - ] - }, - { - "q": 2, - "r": -1, - "tracks": [ - 3, - 4, - 5, - 0, - 1, - 2 - ] - }, - { - "q": 2, - "r": 0, - "tracks": [ - 4, - 5, - 3, - 2, - 0, - 1 - ] - }, { "q": 2, "r": 1, @@ -25362,29 +22082,29 @@ ], "tiles": [ { - "q": -1, - "r": 1, + "q": -2, + "r": 3, "dir": 1, "id": "t0", "color": 0 }, { - "q": 1, - "r": -2, - "dir": 3, + "q": -1, + "r": 2, + "dir": 0, "id": "t1", "color": 1 }, { - "q": 3, - "r": -3, + "q": 1, + "r": 0, "dir": 4, "id": "t2", "color": 2 }, { - "q": 1, - "r": -3, + "q": 0, + "r": 3, "dir": 5, "id": "t3", "color": 3 @@ -25398,29 +22118,29 @@ }, { "q": 0, - "r": 3, - "dir": 0, + "r": -2, + "dir": 3, "id": "t5", "color": 5 }, { "q": -3, - "r": 1, - "dir": 0, + "r": 0, + "dir": 3, "id": "t6", "color": 6 }, { - "q": 0, - "r": -3, - "dir": 0, + "q": 1, + "r": -2, + "dir": 1, "id": "t7", "color": 0 }, { - "q": 1, - "r": 1, - "dir": 0, + "q": 3, + "r": -1, + "dir": 4, "id": "t8", "color": 1 } @@ -25428,7 +22148,7 @@ "moveLimit": 9, "rotationEnabled": true, "routeDesign": { - "family": "orbits", + "family": "spiral", "variant": 0, "seed": 6, "radius": 3, @@ -25482,6 +22202,12 @@ "a": 0, "b": 2 }, + { + "q": -2, + "r": 3, + "a": 1, + "b": 3 + }, { "q": -2, "r": 3, @@ -25512,6 +22238,18 @@ "a": 0, "b": 2 }, + { + "q": -1, + "r": 1, + "a": 1, + "b": 3 + }, + { + "q": -1, + "r": 2, + "a": 0, + "b": 4 + }, { "q": -1, "r": 2, @@ -25524,24 +22262,12 @@ "a": 2, "b": 5 }, - { - "q": 0, - "r": -3, - "a": 0, - "b": 3 - }, { "q": 0, "r": -3, "a": 2, "b": 4 }, - { - "q": 0, - "r": -2, - "a": 0, - "b": 3 - }, { "q": 0, "r": -2, @@ -25551,26 +22277,14 @@ { "q": 0, "r": -1, - "a": 0, - "b": 2 - }, - { - "q": 0, - "r": -1, - "a": 3, + "a": 2, "b": 4 }, { "q": 0, "r": 0, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 1, - "a": 0, - "b": 3 + "a": 1, + "b": 4 }, { "q": 0, @@ -25581,63 +22295,51 @@ { "q": 0, "r": 2, + "a": 1, + "b": 5 + }, + { + "q": 0, + "r": 3, + "a": 3, + "b": 5 + }, + { + "q": 1, + "r": -3, + "a": 2, + "b": 5 + }, + { + "q": 1, + "r": -2, + "a": 2, + "b": 5 + }, + { + "q": 1, + "r": -1, + "a": 4, + "b": 5 + }, + { + "q": 1, + "r": 0, + "a": 2, + "b": 4 + }, + { + "q": 1, + "r": 1, + "a": 3, + "b": 4 + }, + { + "q": 1, + "r": 2, "a": 0, "b": 1 }, - { - "q": 0, - "r": 2, - "a": 3, - "b": 5 - }, - { - "q": 0, - "r": 3, - "a": 0, - "b": 5 - }, - { - "q": 0, - "r": 3, - "a": 1, - "b": 3 - }, - { - "q": 1, - "r": -3, - "a": 2, - "b": 5 - }, - { - "q": 1, - "r": -2, - "a": 2, - "b": 5 - }, - { - "q": 1, - "r": -1, - "a": 3, - "b": 5 - }, - { - "q": 1, - "r": 0, - "a": 0, - "b": 4 - }, - { - "q": 1, - "r": 1, - "a": 1, - "b": 4 - }, - { - "q": 1, - "r": 2, - "a": 1, - "b": 4 - }, { "q": 2, "r": -3, @@ -25660,7 +22362,7 @@ "q": 2, "r": 0, "a": 0, - "b": 4 + "b": 5 }, { "q": 2, @@ -25695,219 +22397,171 @@ ], "heroStarts": [ { - "q": 0, - "r": -3, - "dir": 3, - "steps": 43, - "bends": 21, - "featuredPairs": 42 + "q": -2, + "r": 3, + "dir": 1, + "steps": 40, + "bends": 22, + "featuredPairs": 39 }, { "q": 0, "r": 3, - "dir": 1, - "steps": 43, - "bends": 20, - "featuredPairs": 42 + "dir": 5, + "steps": 40, + "bends": 22, + "featuredPairs": 39 }, { - "q": 0, - "r": -2, - "dir": 3, - "steps": 42, - "bends": 21, - "featuredPairs": 41 + "q": -1, + "r": 3, + "dir": 5, + "steps": 39, + "bends": 22, + "featuredPairs": 38 }, { - "q": 1, + "q": -1, "r": 2, - "dir": 1, - "steps": 42, - "bends": 20, - "featuredPairs": 41 - }, - { - "q": 0, - "r": -1, - "dir": 2, - "steps": 41, - "bends": 20, - "featuredPairs": 40 - }, - { - "q": 2, - "r": 1, - "dir": 1, - "steps": 41, - "bends": 20, - "featuredPairs": 40 - }, - { - "q": 1, - "r": -1, - "dir": 3, - "steps": 40, - "bends": 19, - "featuredPairs": 39 - }, - { - "q": 3, - "r": 0, - "dir": 0, - "steps": 40, - "bends": 19, - "featuredPairs": 39 - }, - { - "q": 3, - "r": -1, "dir": 0, "steps": 39, - "bends": 19, + "bends": 21, "featuredPairs": 38 }, { - "q": 1, - "r": 0, - "dir": 4, - "steps": 39, - "bends": 18, - "featuredPairs": 38 - }, - { - "q": 3, - "r": -2, - "dir": 0, - "steps": 38, - "bends": 19, - "featuredPairs": 37 - }, - { - "q": 0, - "r": 1, + "q": -2, + "r": 3, "dir": 5, "steps": 38, - "bends": 17, + "bends": 22, "featuredPairs": 37 }, - { - "q": 3, - "r": -3, - "dir": 5, - "steps": 37, - "bends": 18, - "featuredPairs": 36 - }, { "q": -1, "r": 1, + "dir": 1, + "steps": 38, + "bends": 20, + "featuredPairs": 37 + }, + { + "q": -3, + "r": 3, "dir": 0, "steps": 37, - "bends": 16, + "bends": 21, "featuredPairs": 36 }, { - "q": 2, - "r": -3, - "dir": 5, - "steps": 36, - "bends": 18, - "featuredPairs": 35 - }, - { - "q": -1, + "q": 0, "r": 0, "dir": 1, + "steps": 37, + "bends": 20, + "featuredPairs": 36 + }, + { + "q": -3, + "r": 2, + "dir": 0, "steps": 36, - "bends": 15, + "bends": 21, "featuredPairs": 35 }, { "q": 1, - "r": -3, + "r": -1, "dir": 5, + "steps": 36, + "bends": 19, + "featuredPairs": 35 + }, + { + "q": -3, + "r": 1, + "dir": 0, "steps": 35, - "bends": 18, + "bends": 21, "featuredPairs": 34 }, { "q": 0, "r": -1, - "dir": 3, + "dir": 4, "steps": 35, - "bends": 14, + "bends": 18, "featuredPairs": 34 }, { - "q": 0, - "r": -3, - "dir": 4, - "steps": 34, - "bends": 17, - "featuredPairs": 33 - }, - { - "q": 0, + "q": -3, "r": 0, - "dir": 3, + "dir": 1, "steps": 34, - "bends": 14, + "bends": 20, "featuredPairs": 33 }, { "q": -1, - "r": -2, - "dir": 4, - "steps": 33, - "bends": 17, - "featuredPairs": 32 - }, - { - "q": 0, - "r": 1, + "r": 0, "dir": 3, - "steps": 33, - "bends": 14, - "featuredPairs": 32 + "steps": 34, + "bends": 17, + "featuredPairs": 33 }, { "q": -2, "r": -1, - "dir": 4, + "dir": 1, + "steps": 33, + "bends": 20, + "featuredPairs": 32 + }, + { + "q": -1, + "r": 1, + "dir": 2, + "steps": 33, + "bends": 16, + "featuredPairs": 32 + }, + { + "q": -1, + "r": -2, + "dir": 1, "steps": 32, - "bends": 17, + "bends": 20, "featuredPairs": 31 }, { "q": 0, - "r": 2, + "r": 1, "dir": 1, "steps": 32, - "bends": 13, + "bends": 15, "featuredPairs": 31 }, { - "q": -3, - "r": 0, - "dir": 3, + "q": 0, + "r": -3, + "dir": 2, "steps": 31, - "bends": 16, + "bends": 19, "featuredPairs": 30 }, { "q": 1, - "r": 1, - "dir": 1, + "r": 0, + "dir": 2, "steps": 31, - "bends": 13, + "bends": 14, "featuredPairs": 30 }, { - "q": -3, - "r": 1, - "dir": 3, + "q": 1, + "r": -3, + "dir": 2, "steps": 30, - "bends": 16, + "bends": 19, "featuredPairs": 29 }, { @@ -25915,15 +22569,15 @@ "r": 0, "dir": 0, "steps": 30, - "bends": 12, + "bends": 13, "featuredPairs": 29 }, { - "q": -3, - "r": 2, - "dir": 3, + "q": 2, + "r": -3, + "dir": 2, "steps": 29, - "bends": 16, + "bends": 19, "featuredPairs": 28 }, { @@ -25931,15 +22585,15 @@ "r": -1, "dir": 0, "steps": 29, - "bends": 12, + "bends": 13, "featuredPairs": 28 }, { - "q": -3, - "r": 3, - "dir": 2, + "q": 3, + "r": -3, + "dir": 3, "steps": 28, - "bends": 15, + "bends": 18, "featuredPairs": 27 }, { @@ -25947,15 +22601,15 @@ "r": -2, "dir": 5, "steps": 28, - "bends": 11, + "bends": 12, "featuredPairs": 27 }, { - "q": -2, - "r": 3, - "dir": 2, + "q": 3, + "r": -2, + "dir": 3, "steps": 27, - "bends": 15, + "bends": 18, "featuredPairs": 26 }, { @@ -25963,15 +22617,15 @@ "r": -2, "dir": 5, "steps": 27, - "bends": 11, + "bends": 12, "featuredPairs": 26 }, { - "q": -1, - "r": 3, - "dir": 2, + "q": 3, + "r": -1, + "dir": 3, "steps": 26, - "bends": 15, + "bends": 18, "featuredPairs": 25 }, { @@ -25979,8 +22633,56 @@ "r": -2, "dir": 4, "steps": 26, + "bends": 11, + "featuredPairs": 25 + }, + { + "q": 3, + "r": 0, + "dir": 4, + "steps": 25, + "bends": 17, + "featuredPairs": 24 + }, + { + "q": -1, + "r": -1, + "dir": 4, + "steps": 25, + "bends": 11, + "featuredPairs": 24 + }, + { + "q": 2, + "r": 1, + "dir": 4, + "steps": 24, + "bends": 17, + "featuredPairs": 23 + }, + { + "q": -2, + "r": 0, + "dir": 3, + "steps": 24, "bends": 10, - "featuredPairs": 25 + "featuredPairs": 23 + }, + { + "q": 1, + "r": 2, + "dir": 0, + "steps": 23, + "bends": 16, + "featuredPairs": 22 + }, + { + "q": -2, + "r": 1, + "dir": 3, + "steps": 23, + "bends": 10, + "featuredPairs": 22 } ] }, @@ -26010,6 +22712,10 @@ "type": "tap", "id": "t5" }, + { + "type": "tap", + "id": "t6" + }, { "type": "tap", "id": "t8" @@ -26022,10 +22728,6 @@ "type": "tap", "id": "t2" }, - { - "type": "tap", - "id": "t6" - }, { "type": "rotate", "direction": 1 @@ -26041,17 +22743,17 @@ ] }, "prototype": { - "family": "orbits", + "family": "spiral", "radius": 3, "seed": 6, "target": 9, "lock": { "hero": "t0", - "heroBends": 7, + "heroBends": 16, "search": { - "checks": 93, - "formalChecks": 93, - "heroCandidates": 62, + "checks": 1393, + "formalChecks": 1393, + "heroCandidates": 57, "poolSize": 222 } }, @@ -26067,7 +22769,7 @@ 1 ], "rejected": { - "orientationless": 59, + "orientationless": 42, "shortcut": 0 }, "stats": { @@ -26077,38 +22779,38 @@ "lockedAtStart": 7, "firstTurnDirections": 2, "releasePerTurn": [ - 3, - 2, + 4, + 1, 2 ], - "minRelease": 2, + "minRelease": 1, "waves": [ 2, - 3, - 2, + 4, + 1, 1, 1 ], "states": 8 }, "audit": { - "states": 984, - "stuckStates": 51, + "states": 564, + "stuckStates": 53, "doubleDead": 6, "maxDeadTurns": 1, "unsolvable": 0, "endgameMinOpen": 2, "endgameTightStates": 0, - "endgameWorst": "t0,t3,t5", + "endgameWorst": "t0,t3", "exhausted": false }, - "monkeyActionsPerPiece": 5.208333333333333 + "monkeyActionsPerPiece": 6.430555555555556 } }, { "version": 1, - "id": "proto-d5-orbits-r4-s3", - "name": "环绕 · 深旋转", + "id": "proto-d5-spiral-r4-s6", + "name": "螺旋 · 深旋转", "cells": [ { "q": -4, @@ -26426,11 +23128,11 @@ "q": 0, "r": -4, "tracks": [ - 2, - 5, - 0, - 4, 3, + 5, + 4, + 0, + 2, 1 ] }, @@ -26438,11 +23140,11 @@ "q": 0, "r": -3, "tracks": [ - 4, - 5, 3, - 2, + 5, + 4, 0, + 2, 1 ] }, @@ -26475,35 +23177,35 @@ "r": 0, "tracks": [ 3, - 4, - 5, - 0, + 2, 1, - 2 + 0, + 5, + 4 ] }, { "q": 0, "r": 1, "tracks": [ - 1, - 0, - 4, + 3, 5, + 4, + 0, 2, - 3 + 1 ] }, { "q": 0, "r": 2, "tracks": [ - 1, - 0, - 4, + 3, 5, + 4, + 0, 2, - 3 + 1 ] }, { @@ -26522,12 +23224,12 @@ "q": 0, "r": 4, "tracks": [ - 3, - 5, 4, - 0, 2, - 1 + 1, + 5, + 0, + 3 ] }, { @@ -26570,23 +23272,23 @@ "q": 1, "r": -1, "tracks": [ - 4, + 3, 2, 1, - 5, 0, - 3 + 5, + 4 ] }, { "q": 1, "r": 0, "tracks": [ - 4, 3, + 4, 5, - 1, 0, + 1, 2 ] }, @@ -26606,23 +23308,23 @@ "q": 1, "r": 2, "tracks": [ - 3, - 4, 5, - 0, + 2, 1, - 2 + 4, + 3, + 0 ] }, { "q": 1, "r": 3, "tracks": [ - 3, - 4, - 5, - 0, 1, + 0, + 5, + 4, + 3, 2 ] }, @@ -26666,23 +23368,23 @@ "q": 2, "r": -1, "tracks": [ - 3, 4, + 2, + 1, 5, 0, - 1, - 2 + 3 ] }, { "q": 2, "r": 0, "tracks": [ - 4, - 5, - 3, 2, + 5, 0, + 4, + 3, 1 ] }, @@ -26690,11 +23392,11 @@ "q": 2, "r": 1, "tracks": [ - 3, - 4, - 5, - 0, 1, + 0, + 5, + 4, + 3, 2 ] }, @@ -26846,85 +23548,85 @@ "tiles": [ { "q": 2, - "r": -2, + "r": 0, "dir": 4, "id": "t0", "color": 0 }, { - "q": 3, - "r": -1, + "q": 1, + "r": 1, "dir": 4, "id": "t1", "color": 1 }, { - "q": -4, - "r": 4, - "dir": 2, + "q": 2, + "r": 2, + "dir": 5, "id": "t2", "color": 2 }, { - "q": 4, - "r": -1, - "dir": 3, + "q": -2, + "r": 2, + "dir": 0, "id": "t3", "color": 3 }, { - "q": 0, - "r": 4, + "q": 1, + "r": -4, "dir": 1, "id": "t4", "color": 4 }, { - "q": 0, - "r": -2, - "dir": 0, + "q": -2, + "r": 4, + "dir": 3, "id": "t5", "color": 5 }, { - "q": 1, - "r": 3, - "dir": 2, + "q": -1, + "r": 1, + "dir": 1, "id": "t6", "color": 6 }, { - "q": -2, - "r": 0, - "dir": 4, + "q": -4, + "r": 2, + "dir": 2, "id": "t7", "color": 0 }, { - "q": -2, - "r": -1, - "dir": 0, + "q": -4, + "r": 4, + "dir": 3, "id": "t8", "color": 1 }, { - "q": 4, - "r": -3, - "dir": 5, + "q": 0, + "r": 0, + "dir": 1, "id": "t9", "color": 2 }, { "q": -1, - "r": 1, + "r": -3, "dir": 4, "id": "t10", "color": 3 }, { - "q": 0, + "q": 4, "r": -3, - "dir": 0, + "dir": 5, "id": "t11", "color": 4 } @@ -26932,11 +23634,11 @@ "moveLimit": 12, "rotationEnabled": true, "routeDesign": { - "family": "orbits", + "family": "spiral", "variant": 0, - "seed": 3, + "seed": 6, "radius": 4, - "gateVariant": 3, + "gateVariant": 6, "featured": [ { "q": -4, @@ -27097,87 +23799,45 @@ { "q": 0, "r": -4, - "a": 0, + "a": 2, + "b": 4 + }, + { + "q": 0, + "r": -3, + "a": 2, + "b": 4 + }, + { + "q": 0, + "r": -2, + "a": 2, + "b": 4 + }, + { + "q": 0, + "r": -1, + "a": 2, + "b": 4 + }, + { + "q": 0, + "r": 0, + "a": 1, "b": 2 }, - { - "q": 0, - "r": -4, - "a": 3, - "b": 4 - }, - { - "q": 0, - "r": -3, - "a": 0, - "b": 4 - }, - { - "q": 0, - "r": -3, - "a": 2, - "b": 3 - }, - { - "q": 0, - "r": -2, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": -2, - "a": 2, - "b": 4 - }, - { - "q": 0, - "r": -1, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": -1, - "a": 2, - "b": 4 - }, - { - "q": 0, - "r": 0, - "a": 0, - "b": 3 - }, { "q": 0, "r": 1, - "a": 0, - "b": 1 - }, - { - "q": 0, - "r": 1, - "a": 3, + "a": 1, "b": 5 }, { "q": 0, "r": 2, - "a": 0, - "b": 1 - }, - { - "q": 0, - "r": 2, - "a": 3, + "a": 1, "b": 5 }, - { - "q": 0, - "r": 3, - "a": 0, - "b": 3 - }, { "q": 0, "r": 3, @@ -27187,13 +23847,7 @@ { "q": 0, "r": 4, - "a": 0, - "b": 3 - }, - { - "q": 0, - "r": 4, - "a": 1, + "a": 3, "b": 5 }, { @@ -27217,15 +23871,21 @@ { "q": 1, "r": -1, - "a": 3, + "a": 4, "b": 5 }, { "q": 1, "r": 0, - "a": 0, + "a": 1, "b": 4 }, + { + "q": 1, + "r": 0, + "a": 2, + "b": 5 + }, { "q": 1, "r": 1, @@ -27235,14 +23895,14 @@ { "q": 1, "r": 2, - "a": 1, + "a": 3, "b": 4 }, { "q": 1, "r": 3, - "a": 1, - "b": 4 + "a": 0, + "b": 1 }, { "q": 2, @@ -27266,19 +23926,25 @@ "q": 2, "r": -1, "a": 0, - "b": 3 + "b": 4 }, { "q": 2, "r": 0, - "a": 0, + "a": 1, + "b": 5 + }, + { + "q": 2, + "r": 0, + "a": 3, "b": 4 }, { "q": 2, "r": 1, - "a": 1, - "b": 4 + "a": 0, + "b": 1 }, { "q": 2, @@ -27310,6 +23976,12 @@ "a": 0, "b": 3 }, + { + "q": 3, + "r": -1, + "a": 1, + "b": 4 + }, { "q": 3, "r": 0, @@ -27340,6 +24012,12 @@ "a": 0, "b": 3 }, + { + "q": 4, + "r": -2, + "a": 1, + "b": 4 + }, { "q": 4, "r": -1, @@ -27355,292 +24033,292 @@ ], "heroStarts": [ { - "q": 0, - "r": 4, - "dir": 0, - "steps": 69, - "bends": 28, - "featuredPairs": 68 - }, - { - "q": 0, - "r": -4, - "dir": 2, - "steps": 69, - "bends": 27, - "featuredPairs": 68 - }, - { - "q": 0, - "r": 3, - "dir": 0, - "steps": 68, - "bends": 28, - "featuredPairs": 67 - }, - { - "q": 1, - "r": -4, - "dir": 2, - "steps": 68, - "bends": 27, - "featuredPairs": 67 - }, - { - "q": 0, - "r": 2, - "dir": 5, - "steps": 67, - "bends": 27, - "featuredPairs": 66 - }, - { - "q": 2, - "r": -4, - "dir": 2, - "steps": 67, - "bends": 27, - "featuredPairs": 66 - }, - { - "q": -1, - "r": 2, - "dir": 5, - "steps": 66, - "bends": 27, - "featuredPairs": 65 - }, - { - "q": 3, - "r": -4, - "dir": 2, - "steps": 66, - "bends": 27, - "featuredPairs": 65 - }, - { - "q": -2, - "r": 2, - "dir": 0, + "q": 4, + "r": -2, + "dir": 4, "steps": 65, - "bends": 26, + "bends": 29, "featuredPairs": 64 }, { - "q": 4, - "r": -4, - "dir": 3, + "q": 0, + "r": 4, + "dir": 5, "steps": 65, - "bends": 26, + "bends": 28, "featuredPairs": 64 }, - { - "q": -2, - "r": 1, - "dir": 0, - "steps": 64, - "bends": 26, - "featuredPairs": 63 - }, - { - "q": 4, - "r": -3, - "dir": 3, - "steps": 64, - "bends": 26, - "featuredPairs": 63 - }, - { - "q": 4, - "r": -2, - "dir": 3, - "steps": 63, - "bends": 26, - "featuredPairs": 62 - }, - { - "q": -2, - "r": 0, - "dir": 1, - "steps": 63, - "bends": 25, - "featuredPairs": 62 - }, - { - "q": 4, - "r": -1, - "dir": 3, - "steps": 62, - "bends": 26, - "featuredPairs": 61 - }, - { - "q": -1, - "r": -1, - "dir": 1, - "steps": 62, - "bends": 25, - "featuredPairs": 61 - }, - { - "q": 4, - "r": 0, - "dir": 4, - "steps": 61, - "bends": 25, - "featuredPairs": 60 - }, - { - "q": 0, - "r": -2, - "dir": 2, - "steps": 61, - "bends": 24, - "featuredPairs": 60 - }, { "q": 3, - "r": 1, - "dir": 4, - "steps": 60, - "bends": 25, - "featuredPairs": 59 - }, - { - "q": 1, - "r": -2, - "dir": 2, - "steps": 60, - "bends": 24, - "featuredPairs": 59 - }, - { - "q": 2, - "r": 2, - "dir": 4, - "steps": 59, - "bends": 25, - "featuredPairs": 58 - }, - { - "q": 2, - "r": -2, - "dir": 3, - "steps": 59, - "bends": 23, - "featuredPairs": 58 - }, - { - "q": 1, - "r": 3, - "dir": 4, - "steps": 58, - "bends": 25, - "featuredPairs": 57 - }, - { - "q": 2, "r": -1, - "dir": 3, - "steps": 58, - "bends": 23, - "featuredPairs": 57 - }, - { - "q": 0, - "r": 4, - "dir": 5, - "steps": 57, - "bends": 24, - "featuredPairs": 56 - }, - { - "q": 2, - "r": 0, "dir": 4, - "steps": 57, - "bends": 22, - "featuredPairs": 56 + "steps": 64, + "bends": 29, + "featuredPairs": 63 }, { "q": -1, "r": 4, "dir": 5, - "steps": 56, - "bends": 24, - "featuredPairs": 55 - }, - { - "q": 1, - "r": 1, - "dir": 4, - "steps": 56, - "bends": 22, - "featuredPairs": 55 + "steps": 64, + "bends": 28, + "featuredPairs": 63 }, { "q": -2, "r": 4, "dir": 5, - "steps": 55, - "bends": 24, - "featuredPairs": 54 + "steps": 63, + "bends": 28, + "featuredPairs": 62 }, { - "q": 0, - "r": 2, - "dir": 0, - "steps": 55, - "bends": 21, - "featuredPairs": 54 + "q": 2, + "r": 0, + "dir": 5, + "steps": 63, + "bends": 28, + "featuredPairs": 62 }, { "q": -3, "r": 4, "dir": 5, - "steps": 54, - "bends": 24, - "featuredPairs": 53 + "steps": 62, + "bends": 28, + "featuredPairs": 61 }, { - "q": 0, - "r": 1, + "q": 1, + "r": 0, "dir": 5, - "steps": 54, - "bends": 20, - "featuredPairs": 53 + "steps": 62, + "bends": 28, + "featuredPairs": 61 }, { "q": -4, "r": 4, "dir": 0, - "steps": 53, - "bends": 23, - "featuredPairs": 52 + "steps": 61, + "bends": 27, + "featuredPairs": 60 }, { - "q": -1, - "r": 1, - "dir": 0, - "steps": 53, - "bends": 19, - "featuredPairs": 52 + "q": 0, + "r": 0, + "dir": 1, + "steps": 61, + "bends": 27, + "featuredPairs": 60 }, { "q": -4, "r": 3, "dir": 0, - "steps": 52, - "bends": 23, - "featuredPairs": 51 + "steps": 60, + "bends": 27, + "featuredPairs": 59 + }, + { + "q": 1, + "r": -1, + "dir": 5, + "steps": 60, + "bends": 26, + "featuredPairs": 59 + }, + { + "q": -4, + "r": 2, + "dir": 0, + "steps": 59, + "bends": 27, + "featuredPairs": 58 + }, + { + "q": 0, + "r": -1, + "dir": 4, + "steps": 59, + "bends": 25, + "featuredPairs": 58 + }, + { + "q": -4, + "r": 1, + "dir": 0, + "steps": 58, + "bends": 27, + "featuredPairs": 57 }, { "q": -1, "r": 0, + "dir": 3, + "steps": 58, + "bends": 24, + "featuredPairs": 57 + }, + { + "q": -4, + "r": 0, "dir": 1, + "steps": 57, + "bends": 26, + "featuredPairs": 56 + }, + { + "q": -1, + "r": 1, + "dir": 2, + "steps": 57, + "bends": 23, + "featuredPairs": 56 + }, + { + "q": -3, + "r": -1, + "dir": 1, + "steps": 56, + "bends": 26, + "featuredPairs": 55 + }, + { + "q": 0, + "r": 1, + "dir": 1, + "steps": 56, + "bends": 22, + "featuredPairs": 55 + }, + { + "q": -2, + "r": -2, + "dir": 1, + "steps": 55, + "bends": 26, + "featuredPairs": 54 + }, + { + "q": 1, + "r": 0, + "dir": 1, + "steps": 55, + "bends": 22, + "featuredPairs": 54 + }, + { + "q": -1, + "r": -3, + "dir": 1, + "steps": 54, + "bends": 26, + "featuredPairs": 53 + }, + { + "q": 2, + "r": -1, + "dir": 0, + "steps": 54, + "bends": 21, + "featuredPairs": 53 + }, + { + "q": 0, + "r": -4, + "dir": 2, + "steps": 53, + "bends": 25, + "featuredPairs": 52 + }, + { + "q": 2, + "r": -2, + "dir": 5, + "steps": 53, + "bends": 20, + "featuredPairs": 52 + }, + { + "q": 1, + "r": -4, + "dir": 2, "steps": 52, - "bends": 18, + "bends": 25, "featuredPairs": 51 + }, + { + "q": 1, + "r": -2, + "dir": 5, + "steps": 52, + "bends": 20, + "featuredPairs": 51 + }, + { + "q": 2, + "r": -4, + "dir": 2, + "steps": 51, + "bends": 25, + "featuredPairs": 50 + }, + { + "q": 0, + "r": -2, + "dir": 4, + "steps": 51, + "bends": 19, + "featuredPairs": 50 + }, + { + "q": 3, + "r": -4, + "dir": 2, + "steps": 50, + "bends": 25, + "featuredPairs": 49 + }, + { + "q": -1, + "r": -1, + "dir": 4, + "steps": 50, + "bends": 19, + "featuredPairs": 49 + }, + { + "q": 4, + "r": -4, + "dir": 3, + "steps": 49, + "bends": 24, + "featuredPairs": 48 + }, + { + "q": -2, + "r": 0, + "dir": 3, + "steps": 49, + "bends": 18, + "featuredPairs": 48 + }, + { + "q": 4, + "r": -3, + "dir": 3, + "steps": 48, + "bends": 24, + "featuredPairs": 47 + }, + { + "q": -2, + "r": 1, + "dir": 3, + "steps": 48, + "bends": 18, + "featuredPairs": 47 } ] }, @@ -27652,11 +24330,11 @@ "actions": [ { "type": "tap", - "id": "t6" + "id": "t4" }, { "type": "tap", - "id": "t7" + "id": "t5" }, { "type": "tap", @@ -27670,60 +24348,60 @@ "type": "tap", "id": "t1" }, - { - "type": "tap", - "id": "t9" - }, { "type": "tap", "id": "t11" }, { "type": "tap", - "id": "t5" + "id": "t9" + }, + { + "type": "tap", + "id": "t6" }, { "type": "rotate", "direction": 1 }, - { - "type": "tap", - "id": "t4" - }, - { - "type": "tap", - "id": "t10" - }, { "type": "tap", "id": "t2" }, + { + "type": "tap", + "id": "t7" + }, + { + "type": "tap", + "id": "t10" + }, { "type": "rotate", "direction": 1 }, { "type": "tap", - "id": "t0" + "id": "t3" }, { "type": "tap", - "id": "t3" + "id": "t0" } ] }, "prototype": { - "family": "orbits", + "family": "spiral", "radius": 4, - "seed": 3, + "seed": 6, "target": 12, "lock": { "hero": "t0", - "heroBends": 14, + "heroBends": 8, "search": { - "checks": 125, - "formalChecks": 125, - "heroCandidates": 104, + "checks": 65, + "formalChecks": 65, + "heroCandidates": 100, "poolSize": 366 } }, @@ -27732,17 +24410,17 @@ 1, 2, 1, - 2, + 0, + 0, 1, - 0, - 0, + 2, 0, 1, 2, 1 ], "rejected": { - "orientationless": 59, + "orientationless": 118, "shortcut": 0 }, "stats": { @@ -27759,27 +24437,27 @@ "minRelease": 2, "waves": [ 3, - 3, - 1, 2, 1, 1, + 3, + 1, 1 ], "states": 8 }, "audit": { - "states": 2604, - "stuckStates": 98, - "doubleDead": 10, + "states": 2556, + "stuckStates": 75, + "doubleDead": 8, "maxDeadTurns": 2, "unsolvable": 0, - "endgameMinOpen": 2, + "endgameMinOpen": 4, "endgameTightStates": 0, - "endgameWorst": "t2,t3", + "endgameWorst": "t0,t3,t7", "exhausted": false }, - "monkeyActionsPerPiece": 5.260416666666667 + "monkeyActionsPerPiece": 6.281249999999999 } } ] diff --git a/scripts/build-board.mjs b/scripts/build-board.mjs new file mode 100644 index 0000000..8857351 --- /dev/null +++ b/scripts/build-board.mjs @@ -0,0 +1,255 @@ +#!/usr/bin/env node +// Build docs/level-board.html — the task board for "50 good levels". +// +// node scripts/build-board.mjs +// +// Task state lives in bench/board.json and is edited by hand as work moves. +// Everything else on the page is measured live from the level set and the run +// archive, so the board cannot claim progress the artifacts do not show. +import { existsSync, readFileSync, readdirSync, writeFileSync } from 'node:fs'; +import { resolve } from 'node:path'; +import { solveRotations } from '../src/core.js'; +import { metrics } from '../src/bench.js'; +import { deadTurnAudit } from '../src/deep-lock.js'; + +const board = JSON.parse(readFileSync(resolve('bench/board.json'), 'utf8')); +const OUT = resolve('docs/level-board.html'); +const esc = s => String(s ?? '').replace(/[&<>"]/g, c => ({ '&': '&', '<': '<', '>': '>', '"': '"' }[c])); +const f1 = x => x == null || Number.isNaN(x) ? '—' : (Math.round(x * 10) / 10).toFixed(1); +const f2 = x => x == null || Number.isNaN(x) ? '—' : (Math.round(x * 100) / 100).toFixed(2); +const mean = a => a.length ? a.reduce((x, y) => x + y, 0) / a.length : null; + +// ---------- live measurement ---------- +const SET = resolve('levels/prototypes/d5.json'); +let pool = { n: 0, rot: {}, apt: null, families: {}, blind: null, wrong: null, endgame: {} }; +if (existsSync(SET)) { + const raw = JSON.parse(readFileSync(SET, 'utf8')); + const levels = Array.isArray(raw) ? raw : raw.levels; + pool.n = levels.length; + for (const l of levels) { + const r = l.prototype?.stats?.rotations ?? solveRotations(l).rotations; + pool.rot[r] = (pool.rot[r] || 0) + 1; + const fam = l.id.replace('proto-d5-', '').replace(/-r\d+-s\d+$/, ''); + pool.families[fam] = (pool.families[fam] || 0) + 1; + const a = l.prototype?.audit ?? deadTurnAudit(l); + pool.endgame[a.endgameMinOpen] = (pool.endgame[a.endgameMinOpen] || 0) + 1; + } + pool.apt = mean(levels.map(l => l.prototype?.monkeyActionsPerPiece).filter(x => typeof x === 'number')); +} + +// Latest rule-bot sweep over whatever the current set is. +const RUNS = resolve('bench/runs'); +const runsBy = tagTest => { + if (!existsSync(RUNS)) return []; + const out = []; + for (const f of readdirSync(RUNS)) { + if (!f.endsWith('.json') || f === 'index.json') continue; + try { const d = JSON.parse(readFileSync(resolve(RUNS, f), 'utf8')); if (tagTest(d, f)) out.push(metrics(d)); } catch { /* torn read */ } + } + return out; +}; +const bot = runsBy((d, f) => f.startsWith('restruct-')); +if (bot.length) { + pool.blind = mean(bot.map(m => m.blindRotations)); + pool.wrong = mean(bot.map(m => m.wrongWayRotations)); +} +// Agent batches, newest label wins. +const agentBatches = {}; +for (const f of (existsSync(RUNS) ? readdirSync(RUNS) : [])) { + if (!f.endsWith('.json') || f === 'index.json') continue; + try { + const d = JSON.parse(readFileSync(resolve(RUNS, f), 'utf8')); + if (!d.agent || !d.rating) continue; + (agentBatches[d.agent] ||= []).push(metrics(d)); + } catch { /* torn read */ } +} + +const TASKS = board.phases.flatMap(p => p.tasks); +const counts = TASKS.reduce((m, t) => (m[t.status] = (m[t.status] || 0) + 1, m), {}); +const doneN = counts.done || 0; +const pct = Math.round(doneN / TASKS.length * 100); +const STATUS = { + done: ['完成', 'good'], doing: ['进行中', 'live'], todo: ['待办', 'idle'], blocked: ['受阻', 'bad'], +}; + +const quota = board.targets.rotationQuota; +const quotaRows = Object.entries(quota).map(([r, want]) => ({ r, want, have: pool.rot[r] || 0 })); + +const html = ` + + + + + +50 关任务看板 + + + +
+ +
+
HEX TRAILS · 关卡调优
+

${esc(board.goal)}

+

第 ${board.round} 轮 · 更新于 ${esc(board.updated)} · 本页每 60 秒自动刷新

+
+
+
${doneN} / ${TASKS.length} 项完成${pct}%
+
+
+ +

A现在的状态

+
+
候选关卡
${pool.n} / ${board.targets.levels}
当前关卡集
+
盲转 / 关
${f2(pool.blind)}
目标 0
+
转错方向 / 关
${f2(pool.wrong)}
目标 0
+
猴子 动作÷棋子
${f2(pool.apt)}
目标 ≥3.0(不无脑)
+
+ +
+ + +${quotaRows.map(q => ``).join('\n')} +
旋转数目标关数现有缺口
${q.r} 转${q.want}${q.have}${q.have >= q.want ? '已满足' : `还差 ${q.want - q.have}`}
+

路线家族分布:${Object.entries(pool.families).map(([k, v]) => `${esc(k)} ×${v}`).join(' · ') || '—'} 终局可走朝向分布:${JSON.stringify(pool.endgame)}

+ +

B什么叫「难度合适且好玩」

+

${esc(board.definition.why)}

+ +
+ + +${board.targets.difficultyCurve.map(b => ``).join('\n')} +
关号区间旋转数目标 difficulty 评分
${esc(b.band)}${esc(b.rot)}${esc(b.difficulty)}
+ +

C任务

+${board.phases.map(p => ` +
+

${esc(p.id)}${esc(p.title)}

+ +
`).join('\n')} + +${board.rounds.length ? ` +

D迭代记录

+
+ + +${board.rounds.map(r => ``).join('\n')} +
轮改了什么测出什么
${r.n}${esc(r.change)}${esc(r.result)}
` : ''} + +${Object.keys(agentBatches).length ? ` +

E已有的 agent 实测

+
+ + +${Object.entries(agentBatches).sort((a, b) => b[1].length - a[1].length).map(([tag, ms]) => { + const g = k => mean(ms.map(m => Number(m.rating?.[k])).filter(x => !Number.isNaN(x))); + return ``; +}).join('\n')} +
批次关数difficultystuck盲转/关多转/关
${esc(tag)}${ms.length}${f2(g('difficulty'))}${f2(g('stuck'))}${f2(mean(ms.map(m => m.blindRotations)))}${f2(mean(ms.map(m => m.rotations - m.minimumRotations)))}
+

difficulty 3 = 刚刚好;stuck 越低越好。这两项是评分里唯二复测可信的(r = 0.93 / 0.85)。

` : ''} + +

F日志

+ + + + +
+ +`; + +writeFileSync(OUT, html); +console.log(`看板已生成:${OUT}`); +console.log(` ${doneN}/${TASKS.length} 项完成(${pct}%)· 候选 ${pool.n}/${board.targets.levels} 关`); diff --git a/src/deep-lock.js b/src/deep-lock.js index 2833c30..1ce930e 100644 --- a/src/deep-lock.js +++ b/src/deep-lock.js @@ -18,12 +18,16 @@ function candidatePool(base, boards, maxBends) { const pool = []; for (const cell of base.cells) for (let dir = 0; dir < 6; dir++) { const tile = { q: cell.q, r: cell.r, dir }; - const routes = [0, 1, 2].map(turn => trace(boards[turn], tile, [], true)); - if (routes.some(route => route.status !== 'exit')) continue; - const bends = routes.map(countBends); + // All six orientations: the chain only constrains 0/1/2, but the endgame + // is played at 3/4/5 too, and leaving those to chance is what produced + // locks that open at exactly one of the six. + const routes = boards.map(board => trace(board, tile, [], true)); + if (routes.slice(0, 3).some(route => route.status !== 'exit')) continue; + const bends = routes.map(r => r.status === 'exit' ? countBends(r) : Infinity); if (bends[1] > maxBends) continue; pool.push({ tile, position: positionKey(tile), bends, cells: routes.map(route => route.steps.length), + exits: routes.map(route => route.status === 'exit'), at: routes.map(route => new Set(route.steps.slice(1).map(positionKey))), }); } @@ -38,17 +42,22 @@ export function createDeepLock(base, { seed = 0, minHeroBends = 6, maxHeroBends = 70, maxChecks = 2000000, } = {}) { const rng = random(seed); - const boards = [0, 1, 2].map(turn => rotateBoard(base, turn)); + const boards = [0, 1, 2, 3, 4, 5].map(turn => rotateBoard(base, turn)); const pool = candidatePool(base, boards, maxHeroBends); const candidates = shuffled(pool, rng); const heroes = candidates.filter(c => c.bends[1] >= minHeroBends); let checks = 0, formalChecks = 0; for (const a of heroes) { // D holds A at 0 and at +2, and never stands on A's +1 departure. + // A and D deadlock at 0 and at +2 and open at +1 — that is the chain. The + // added requirement is that +3 opens too: a player stuck at +2 turns one + // way or the other and something moves either way, instead of one + // direction being right and the other five a dead end. const tails = candidates.filter(d => d.position !== a.position && a.at[0].has(d.position) && d.at[0].has(a.position) && a.at[2].has(d.position) && d.at[2].has(a.position) - && !a.at[1].has(d.position)); + && !a.at[1].has(d.position) + && ((a.exits[3] && !a.at[3].has(d.position)) || (d.exits[3] && !d.at[3].has(a.position)))); for (const d of tails) { // C holds A at +1 and leaves alone at +2 once B is gone. const seconds = candidates.filter(c => c.position !== a.position && c.position !== d.position @@ -73,6 +82,9 @@ export function createDeepLock(base, { if (afterSecond.some(tile => trace(boards[2], tile, afterSecond).status === 'exit')) continue; if (trace(boards[1], hero, afterSecond).status !== 'exit') continue; if (trace(boards[1], tail, [tail]).status !== 'exit') continue; + // Certify the two-sided release with the real swept tracer, not the + // cell-occupancy approximation the filter above uses. + if (![hero, tail].some(t => trace(boards[3], t, afterSecond).status === 'exit')) continue; const level = { ...base, tiles, moveLimit: tiles.length }; const solution = solveRotations(level); if (!solution.solvable || solution.exhausted || solution.rotations !== 3) continue; diff --git a/tests/deep-lock.test.js b/tests/deep-lock.test.js index a6399e1..fecb4d4 100644 --- a/tests/deep-lock.test.js +++ b/tests/deep-lock.test.js @@ -4,12 +4,15 @@ import { Game, rotateBoard, solveRotations, trace, validateLevel } from '../src/ import { createRouteBoard } from '../src/route-grammar.js'; import { createDeepLock, growDeepLevel, deepLevelStats, deadTurnAudit } from '../src/deep-lock.js'; -// Seeds known to yield a chain lock; the sweep script records the full yield table. +// Seeds known to yield a chain lock; the sweep script records the full yield +// table. These moved when the tail gained its two-sided release requirement — +// a witness is whichever seed still satisfies the current construction, not a +// fixed number, so re-derive them from the sweep after changing the lock. const WITNESSES = [ { family: 'orbits', radius: 3, seed: 0 }, { family: 'weave', radius: 4, seed: 0 }, - { family: 'spiral', radius: 4, seed: 1 }, - { family: 'switchback', radius: 4, seed: 0 }, + { family: 'spiral', radius: 4, seed: 2 }, + { family: 'switchback', radius: 4, seed: 6 }, ]; for (const { family, radius, seed } of WITNESSES) {