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 关任务看板
+
+
+
+
+
+
+
+
A现在的状态
+
+
+
+
路线家族分布: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,是模型噪声,不能拿来调参。所以「好玩」必须换成机械代理。
+
+- 难度:agent 的 difficulty 评分沿关号上升,末档逼近 3.0(3 = 刚刚好),全程不超过 3.2(grok 抽样评分)
+- 不挫败:stuck ≤ 2.0,盲转 = 0,转错方向 = 0(规则机器人全量扫,12 秒)
+- 不无脑:猴子玩家 动作÷棋子 ≥ 3.0(v0.5 全库 1.67 = 乱点就能过)(生成时算)
+- 旋转是主线:0 旋转关 ≤ 5 关(10%),且随关号推进旋转数递增(求解器)
+- 不重复:50 关盘面签名互不相同,路线家族分布不偏科(deepLevelKey 去重)
+
+
+
+
C任务
+
+
+
P0判据:先说清楚什么叫「好」
+
+ T0.1难度曲线与旋转配额定义完成
50 关分三档,0 转关卡死 10% 上限(用户硬要求)
+T0.2机械验收门槛完成
盲转=0、转错=0、终局可走朝向≥2 —— 前两项已由改锁结构达成
+T0.3「好玩」的机械代理指标完成
猴子 APT ≥3.0。fun 评分复测 r=0.56 不可用,改用「乱点过不了」当代理
+
+
+
+
+
P1产能:先得有足够多的候选
+
+ T1.1深锁关(3 转)扩产到 ≥60 个候选待办
当前 14 种子出 17 关,需扩大种子与半径扫描
+T1.2中档(2 转)生成路径待办
deep-lock 固定 3 转,v0.5 最多 2 转 —— 中档要么放宽锁链,要么从 v0.5 筛
+T1.3简单档(0–1 转)候选池待办
从 v0.5 筛,但必须过猴子 APT 门槛(v0.5 全库中位 1.67,大部分会被刷掉)
+T1.4去重与家族均衡待办
6 个路线家族不能偏科;v0.5 曾出现 1000 关只有 30 个模板
+
+
+
+
+
P2标定:把机械指标映射到真实难度
+
+ T2.1grok 抽样跑候选池,收集 difficulty / stuck待办
分层抽样,覆盖各旋转档与各家族
+T2.2拟合 difficulty ~ 机械特征待办
候选特征:旋转数、锁住率、猴子 APT、棋子数、路线长度、终局路口数
+T2.3用模型给全部候选打分并按曲线选 50 关待办
+
+
+
+
+
+
+
P4交付
+
+ T4.150 关关卡集待办
+T4.2人工审核页(可直接试玩每一关)待办
+T4.3后续关卡制作流程的优化总结待办
+
+
+
+
+
+
+
E已有的 agent 实测
+
+
difficulty 3 = 刚刚好;stuck 越低越好。这两项是评分里唯二复测可信的(r = 0.93 / 0.85)。
+
+
F日志
+
+- 起点已完成前置工作:擦碰漏报修复(113/581 例)、终局单出口门槛、锁结构改为双向可开 —— 规则机器人盲转/转错/多转已全部归零
+
+
+
+
+
+
+
\ 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 关任务看板
+
+
+
+
+
+
+
+
A现在的状态
+
+
候选关卡
${pool.n} / ${board.targets.levels}
当前关卡集
+
盲转 / 关
${f2(pool.blind)}
目标 0
+
转错方向 / 关
${f2(pool.wrong)}
目标 0
+
猴子 动作÷棋子
${f2(pool.apt)}
目标 ≥3.0(不无脑)
+
+
+
+
路线家族分布:${Object.entries(pool.families).map(([k, v]) => `${esc(k)} ×${v}`).join(' · ') || '—'} 终局可走朝向分布:${JSON.stringify(pool.endgame)}
+
+
B什么叫「难度合适且好玩」
+
${esc(board.definition.why)}
+
+${board.definition.rules.map(r => `- ${esc(r.k)}:${esc(r.v)}(${esc(r.how)})
`).join('\n')}
+
+
+
+
C任务
+${board.phases.map(p => `
+
+
${esc(p.id)}${esc(p.title)}
+
+
`).join('\n')}
+
+${board.rounds.length ? `
+
D迭代记录
+
` : ''}
+
+${Object.keys(agentBatches).length ? `
+
E已有的 agent 实测
+
+
difficulty 3 = 刚刚好;stuck 越低越好。这两项是评分里唯二复测可信的(r = 0.93 / 0.85)。
` : ''}
+
+
F日志
+
+${[...board.log].reverse().map(l => `- ${esc(l.at)}${esc(l.text)}
`).join('\n')}
+
+
+
+
+
+
+`;
+
+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) {