Files
HexTrails/labs/airport/levels.js
T
toshiocn 1be0e9caf1 feat(airport): add the Hex Airport dispatch lab as a baseline snapshot
Six-side aprons, frozen levels, solver, rewards and verify scripts; the edge-runway readability work continues from here.
2026-09-21 14:25:09 +08:00

3487 lines
48 KiB
JavaScript

// Frozen, deterministic airport fixtures. Four teaching lessons plus radius-3 and radius-4 practice.
export const LEVELS = [
{
"id": "airport-1",
"name": "留一点空间",
"cells": [
{
"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": -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": 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": 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": 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
]
}
],
"stands": [
{
"id": "P1",
"q": 0,
"r": 0,
"color": 8
}
],
"arrivals": [
{
"id": "in1",
"color": 8,
"side": 0
}
],
"originals": [
{
"id": "out1",
"q": -2,
"r": 2,
"dir": 0,
"color": 2
},
{
"id": "out2",
"q": 0,
"r": 2,
"dir": 2,
"color": 5
},
{
"id": "out3",
"q": 1,
"r": 1,
"dir": 2,
"color": 3
}
],
"moveLimit": 3,
"reward": {
"steps": 5,
"maxClaims": 3
},
"lesson": "点击场外的可可色飞机,它会飞进同色的可可色机位。",
"solution": [
{
"type": "tap",
"id": "in1"
}
],
"experience": [
{
"type": "tap",
"id": "in1"
}
],
"evidence": {
"minimumActions": 1,
"remainingOriginals": 3,
"clearFirst": {
"status": "solved",
"minimumActions": 4
},
"experienceActions": 1,
"uniqueEmptyBoard": true
}
},
{
"id": "airport-2",
"name": "同色才停靠",
"cells": [
{
"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": -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": 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": 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": 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
]
}
],
"stands": [
{
"id": "P1",
"q": 0,
"r": 0,
"color": 0
}
],
"arrivals": [
{
"id": "in1",
"color": 0,
"side": 2
}
],
"originals": [
{
"id": "out1",
"q": 0,
"r": -1,
"dir": 0,
"color": 7
},
{
"id": "out2",
"q": 0,
"r": 2,
"dir": 4,
"color": 5
},
{
"id": "out3",
"q": -1,
"r": -1,
"dir": 4,
"color": 3
}
],
"moveLimit": 3,
"reward": {
"steps": 5,
"maxClaims": 3
},
"lesson": "只有草莓色机位能停草莓色飞机,别被玫瑰色飞机混淆。",
"solution": [
{
"type": "tap",
"id": "in1"
}
],
"experience": [
{
"type": "tap",
"id": "in1"
}
],
"evidence": {
"minimumActions": 1,
"remainingOriginals": 3,
"clearFirst": {
"status": "solved",
"minimumActions": 4
},
"experienceActions": 1,
"uniqueEmptyBoard": true
}
},
{
"id": "airport-3",
"name": "转一下再接入",
"cells": [
{
"q": -2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 1,
"tracks": [
3,
4,
5,
0,
1,
2
]
},
{
"q": -2,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 1,
"tracks": [
3,
4,
5,
0,
1,
2
]
},
{
"q": 0,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": -1,
"tracks": [
3,
2,
1,
0,
5,
4
]
},
{
"q": 1,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
}
],
"stands": [
{
"id": "P1",
"q": -1,
"r": 1,
"color": 8
}
],
"arrivals": [
{
"id": "in1",
"color": 8,
"side": 3
}
],
"originals": [
{
"id": "out1",
"q": 0,
"r": -2,
"dir": 4,
"color": 2
},
{
"id": "out2",
"q": -2,
"r": 1,
"dir": 4,
"color": 5
},
{
"id": "out3",
"q": 2,
"r": -2,
"dir": 3,
"color": 3
}
],
"moveLimit": 4,
"reward": {
"steps": 5,
"maxClaims": 3
},
"lesson": "跑道还没连通。旋转棋盘,让来机所在边通到停机位。",
"solution": [
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "in1"
}
],
"experience": [
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "in1"
}
],
"evidence": {
"minimumActions": 2,
"remainingOriginals": 3,
"clearFirst": {
"status": "solved",
"minimumActions": 5
},
"experienceActions": 2,
"uniqueEmptyBoard": true
}
},
{
"id": "airport-4",
"name": "清障再接入",
"cells": [
{
"q": -2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 2,
"tracks": [
2,
3,
0,
1,
5,
4
]
},
{
"q": -1,
"r": -1,
"tracks": [
5,
3,
4,
1,
2,
0
]
},
{
"q": -1,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": -2,
"tracks": [
3,
2,
1,
0,
5,
4
]
},
{
"q": 1,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
}
],
"stands": [
{
"id": "P1",
"q": 0,
"r": -1,
"color": 8
},
{
"id": "P2",
"q": 0,
"r": 1,
"color": 0
}
],
"arrivals": [
{
"id": "in1",
"color": 8,
"side": 0
},
{
"id": "in2",
"color": 0,
"side": 2
}
],
"originals": [
{
"id": "out1",
"q": -2,
"r": 0,
"dir": 0,
"color": 2
},
{
"id": "out2",
"q": -1,
"r": 2,
"dir": 2,
"color": 5
},
{
"id": "out3",
"q": -1,
"r": 1,
"dir": 4,
"color": 3
},
{
"id": "out4",
"q": 1,
"r": -1,
"dir": 0,
"color": 4
},
{
"id": "out5",
"q": 2,
"r": -2,
"dir": 0,
"color": 6
}
],
"moveLimit": 6,
"reward": {
"steps": 5,
"maxClaims": 3
},
"lesson": "跑道要连通,通路也不能被飞机挡住。先移开阻挡,再旋转接入两架来机。",
"solution": [
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "out2"
},
{
"type": "tap",
"id": "in1"
},
{
"type": "tap",
"id": "in2"
}
],
"experience": [
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "out2"
},
{
"type": "tap",
"id": "in1"
},
{
"type": "tap",
"id": "in2"
}
],
"evidence": {
"minimumActions": 4,
"remainingOriginals": 4,
"clearFirst": {
"status": "solved",
"minimumActions": 8
},
"experienceActions": 4,
"uniqueEmptyBoard": true
}
},
{
"id": "airport-5",
"name": "更大的停机坪",
"cells": [
{
"q": -3,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 3,
"tracks": [
1,
0,
4,
5,
2,
3
]
},
{
"q": -2,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 1,
"tracks": [
2,
5,
0,
4,
3,
1
]
},
{
"q": -2,
"r": 2,
"tracks": [
2,
4,
0,
5,
1,
3
]
},
{
"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": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 0,
"tracks": [
3,
5,
4,
0,
2,
1
]
},
{
"q": -1,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 2,
"tracks": [
3,
2,
1,
0,
5,
4
]
},
{
"q": -1,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"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": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 1,
"tracks": [
4,
2,
1,
5,
0,
3
]
},
{
"q": 1,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": -3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": -1,
"tracks": [
3,
4,
5,
0,
1,
2
]
},
{
"q": 3,
"r": 0,
"tracks": [
4,
5,
3,
2,
0,
1
]
}
],
"stands": [
{
"id": "P1",
"q": -1,
"r": -1,
"color": 8
},
{
"id": "P2",
"q": -1,
"r": 2,
"color": 8
}
],
"arrivals": [
{
"id": "in1",
"color": 8,
"side": 0
},
{
"id": "in2",
"color": 8,
"side": 4
}
],
"originals": [
{
"id": "out1",
"q": 3,
"r": 0,
"dir": 1,
"color": 2
},
{
"id": "out2",
"q": 0,
"r": -3,
"dir": 0,
"color": 3
},
{
"id": "out3",
"q": 3,
"r": -3,
"dir": 0,
"color": 4
},
{
"id": "out4",
"q": 0,
"r": 3,
"dir": 0,
"color": 5
},
{
"id": "out5",
"q": -2,
"r": 0,
"dir": 0,
"color": 1
},
{
"id": "out6",
"q": 2,
"r": -2,
"dir": 5,
"color": 6
},
{
"id": "out7",
"q": -2,
"r": -1,
"dir": 0,
"color": 7
},
{
"id": "out8",
"q": 3,
"r": -2,
"dir": 2,
"color": 9
}
],
"moveLimit": 12,
"reward": {
"steps": 5,
"maxClaims": 3
},
"lesson": "棋盘变大了,规则不变:清出通路,把来机停到同色机位。",
"solution": [
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "out2"
},
{
"type": "tap",
"id": "out7"
},
{
"type": "tap",
"id": "in1"
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "in2"
}
],
"experience": [
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "out2"
},
{
"type": "tap",
"id": "out7"
},
{
"type": "tap",
"id": "in1"
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "in2"
}
],
"evidence": {
"seedAttempt": 86,
"radius": 3,
"cells": 37,
"minimumActions": 8,
"remainingOriginals": 6,
"clearFirst": {
"status": "solved",
"minimumActions": 18
},
"experienceActions": 8,
"uniqueEmptyBoard": true
}
},
{
"id": "airport-6",
"name": "绕一圈再接入",
"cells": [
{
"q": -3,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 2,
"tracks": [
4,
3,
5,
1,
0,
2
]
},
{
"q": -3,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 3,
"tracks": [
3,
2,
1,
0,
5,
4
]
},
{
"q": -1,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 2,
"tracks": [
5,
4,
3,
2,
1,
0
]
},
{
"q": -1,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -2,
"tracks": [
4,
3,
5,
1,
0,
2
]
},
{
"q": 0,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 0,
"tracks": [
5,
3,
4,
1,
2,
0
]
},
{
"q": 0,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"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": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 2,
"tracks": [
4,
2,
1,
5,
0,
3
]
},
{
"q": 2,
"r": -3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": -3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
}
],
"stands": [
{
"id": "P1",
"q": 0,
"r": -1,
"color": 8
},
{
"id": "P2",
"q": 0,
"r": 1,
"color": 0
}
],
"arrivals": [
{
"id": "in1",
"color": 8,
"side": 5
},
{
"id": "in2",
"color": 0,
"side": 2
}
],
"originals": [
{
"id": "out1",
"q": 0,
"r": -3,
"dir": 4,
"color": 2
},
{
"id": "out2",
"q": -2,
"r": -1,
"dir": 0,
"color": 3
},
{
"id": "out3",
"q": 1,
"r": 0,
"dir": 4,
"color": 4
},
{
"id": "out4",
"q": -1,
"r": 0,
"dir": 0,
"color": 5
},
{
"id": "out5",
"q": -1,
"r": 2,
"dir": 5,
"color": 1
},
{
"id": "out6",
"q": -3,
"r": 3,
"dir": 0,
"color": 6
},
{
"id": "out7",
"q": 1,
"r": 1,
"dir": 3,
"color": 7
},
{
"id": "out8",
"q": 3,
"r": -3,
"dir": 4,
"color": 9
}
],
"moveLimit": 15,
"reward": {
"steps": 5,
"maxClaims": 3
},
"lesson": "在 37 格上转动轨道,让不同边的来机各自停好。",
"solution": [
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "out2"
},
{
"type": "tap",
"id": "out7"
},
{
"type": "tap",
"id": "out3"
},
{
"type": "tap",
"id": "in2"
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "out1"
},
{
"type": "tap",
"id": "out4"
},
{
"type": "tap",
"id": "in1"
}
],
"experience": [
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "out2"
},
{
"type": "tap",
"id": "out7"
},
{
"type": "tap",
"id": "out3"
},
{
"type": "tap",
"id": "in2"
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "out1"
},
{
"type": "tap",
"id": "out4"
},
{
"type": "tap",
"id": "in1"
}
],
"evidence": {
"seedAttempt": 106,
"radius": 3,
"cells": 37,
"minimumActions": 11,
"remainingOriginals": 3,
"clearFirst": {
"status": "solved",
"minimumActions": 17
},
"experienceActions": 11,
"uniqueEmptyBoard": true
}
},
{
"id": "airport-7",
"name": "空港全景",
"cells": [
{
"q": -4,
"r": 0,
"tracks": [
2,
3,
0,
1,
5,
4
]
},
{
"q": -4,
"r": 1,
"tracks": [
3,
4,
5,
0,
1,
2
]
},
{
"q": -4,
"r": 2,
"tracks": [
3,
5,
4,
0,
2,
1
]
},
{
"q": -4,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -4,
"r": 4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -3,
"r": 4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -2,
"r": 4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"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": [
1,
0,
4,
5,
2,
3
]
},
{
"q": -1,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": -1,
"r": 4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 0,
"r": 3,
"tracks": [
3,
5,
4,
0,
2,
1
]
},
{
"q": 0,
"r": 4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": -4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"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": [
4,
5,
3,
2,
0,
1
]
},
{
"q": 1,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 1,
"r": 3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 2,
"r": 2,
"tracks": [
4,
3,
5,
1,
0,
2
]
},
{
"q": 3,
"r": -4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": -3,
"tracks": [
2,
4,
0,
5,
1,
3
]
},
{
"q": 3,
"r": -2,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 3,
"r": 1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 4,
"r": -4,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 4,
"r": -3,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 4,
"r": -2,
"tracks": [
1,
0,
4,
5,
2,
3
]
},
{
"q": 4,
"r": -1,
"tracks": [
1,
0,
3,
2,
5,
4
]
},
{
"q": 4,
"r": 0,
"tracks": [
1,
0,
3,
2,
5,
4
]
}
],
"stands": [
{
"id": "P1",
"q": -3,
"r": 0,
"color": 8
},
{
"id": "P2",
"q": 3,
"r": 0,
"color": 0
}
],
"arrivals": [
{
"id": "in1",
"color": 8,
"side": 4
},
{
"id": "in2",
"color": 0,
"side": 3
}
],
"originals": [
{
"id": "out1",
"q": 1,
"r": 2,
"dir": 2,
"color": 2
},
{
"id": "out2",
"q": 3,
"r": -2,
"dir": 1,
"color": 3
},
{
"id": "out3",
"q": 2,
"r": 2,
"dir": 3,
"color": 4
},
{
"id": "out4",
"q": 3,
"r": 1,
"dir": 3,
"color": 5
},
{
"id": "out5",
"q": -4,
"r": 2,
"dir": 4,
"color": 1
},
{
"id": "out6",
"q": -4,
"r": 0,
"dir": 4,
"color": 6
},
{
"id": "out7",
"q": 4,
"r": -3,
"dir": 1,
"color": 7
},
{
"id": "out8",
"q": 4,
"r": -2,
"dir": 1,
"color": 9
},
{
"id": "out9",
"q": 3,
"r": -4,
"dir": 0,
"color": 10
},
{
"id": "out10",
"q": 1,
"r": 3,
"dir": 3,
"color": 11
},
{
"id": "out11",
"q": 4,
"r": -4,
"dir": 1,
"color": 0
},
{
"id": "out12",
"q": -3,
"r": 2,
"dir": 5,
"color": 8
},
{
"id": "out13",
"q": -4,
"r": 4,
"dir": 4,
"color": 2
}
],
"moveLimit": 14,
"reward": {
"steps": 5,
"maxClaims": 3
},
"lesson": "61 格空港:原有飞机更多,先在人群里清出通路,再把两色来机各自接好。",
"solution": [
{
"type": "tap",
"id": "out5"
},
{
"type": "tap",
"id": "out6"
},
{
"type": "tap",
"id": "out10"
},
{
"type": "tap",
"id": "out3"
},
{
"type": "tap",
"id": "out4"
},
{
"type": "tap",
"id": "in1"
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "in2"
}
],
"experience": [
{
"type": "tap",
"id": "out5"
},
{
"type": "tap",
"id": "out6"
},
{
"type": "tap",
"id": "out10"
},
{
"type": "tap",
"id": "out3"
},
{
"type": "tap",
"id": "out4"
},
{
"type": "tap",
"id": "in1"
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "rotate",
"direction": -1
},
{
"type": "tap",
"id": "in2"
}
],
"evidence": {
"seedAttempt": 17,
"radius": 4,
"cells": 61,
"minimumActions": 10,
"remainingOriginals": 8,
"clearFirst": {
"status": "solved",
"minimumActions": 20
},
"experienceActions": 10,
"uniqueEmptyBoard": true
}
}
];