- 玩法一 数字一笔:规则库、求解器、26 关、竖屏触摸 Web 原型、测试 - 玩法二 连连气球:连消畅玩版核心、Web 原型、Cocos 球槽组件与导出脚本 - 玩法三 六边一笔:规则库、求解器、10 关 + 转墙实验包、Web 原型、测试 - 产品文档、UI 设计规范、各玩法 GDD / HANDOFF - 文档移除全部外部参考作引用;删除玩法二 v0 旧稿
153 lines
6.7 KiB
JSON
153 lines
6.7 KiB
JSON
{
|
|
"mode": "01-number-stroke",
|
|
"pack": 1,
|
|
"title": "入门",
|
|
"notes": "10 关。1-1 到 1-4 是竖直切面必须手做的关;每关只加一个旋钮。坐标原点左上,单位格。全部经 tools/validate.ts 断言唯一解。",
|
|
"levels": [
|
|
{
|
|
"id": "1-1",
|
|
"teach": "滑动,邻格自动出步号",
|
|
"caption": "从 1 开始,滑到旁边的格",
|
|
"cells": [
|
|
{ "id": "a", "x": 0, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "b", "x": 1, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "c", "x": 2, "y": 0, "w": 1, "h": 1 }
|
|
]
|
|
},
|
|
{
|
|
"id": "1-2",
|
|
"teach": "必须走完所有格",
|
|
"caption": "走完每一格,数字要对上",
|
|
"cells": [
|
|
{ "id": "a", "x": 0, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "b", "x": 0, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "c", "x": 0, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "d", "x": 1, "y": 2, "w": 1, "h": 1, "clue": 4 }
|
|
]
|
|
},
|
|
{
|
|
"id": "1-3",
|
|
"teach": "走错可以退。先往下会错过 3。",
|
|
"caption": "走错了,点已走格就能退回",
|
|
"cells": [
|
|
{ "id": "start", "x": 0, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "a", "x": 1, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "b", "x": 2, "y": 0, "w": 1, "h": 1, "clue": 3 },
|
|
{ "id": "d", "x": 1, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "c", "x": 2, "y": 1, "w": 1, "h": 1 }
|
|
]
|
|
},
|
|
{
|
|
"id": "1-4",
|
|
"teach": "大格只算一步",
|
|
"caption": "大格也只算一步",
|
|
"cells": [
|
|
{ "id": "start", "x": 0, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "a", "x": 1, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "b", "x": 2, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "big", "x": 1, "y": 1, "w": 2, "h": 2, "clue": 3 }
|
|
]
|
|
},
|
|
{
|
|
"id": "1-5",
|
|
"teach": "中段线索。必须先走完顶行,4 才落在右上角。",
|
|
"cells": [
|
|
{ "id": "start", "x": 0, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "a", "x": 1, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "b", "x": 2, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "c", "x": 3, "y": 0, "w": 1, "h": 1, "clue": 4 },
|
|
{ "id": "d", "x": 2, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "e", "x": 3, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "f", "x": 2, "y": 2, "w": 1, "h": 1 }
|
|
]
|
|
},
|
|
{
|
|
"id": "1-6",
|
|
"teach": "空洞。中间缺一格,a 与 f 隔洞不相邻;9 在左边,必须绕环一圈最后到它。先往下走会把 9 提前踩成 3。",
|
|
"cells": [
|
|
{ "id": "s", "x": 1, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "a", "x": 2, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "b", "x": 3, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "t", "x": 0, "y": 1, "w": 1, "h": 1, "clue": 9 },
|
|
{ "id": "c", "x": 1, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "d", "x": 3, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "e", "x": 1, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "f", "x": 2, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "g", "x": 3, "y": 2, "w": 1, "h": 1 }
|
|
]
|
|
},
|
|
{
|
|
"id": "1-7",
|
|
"teach": "先推再画。三处分叉:b 处要走 f 才能让 e=4;k 处要走 g 才能让 g=8;g 处要先取 c,否则 l 被孤立。",
|
|
"cells": [
|
|
{ "id": "a", "x": 0, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "b", "x": 1, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "c", "x": 2, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "d", "x": 3, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "e", "x": 0, "y": 1, "w": 1, "h": 1, "clue": 4 },
|
|
{ "id": "f", "x": 1, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "g", "x": 2, "y": 1, "w": 1, "h": 1, "clue": 8 },
|
|
{ "id": "h", "x": 3, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "i", "x": 0, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "j", "x": 1, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "k", "x": 2, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "l", "x": 3, "y": 2, "w": 1, "h": 1 }
|
|
]
|
|
},
|
|
{
|
|
"id": "1-8",
|
|
"teach": "2×2 当枢纽。B 有 6 个出口,但只能进出各一次:从 B 出去必须挑 c 或 d(远角),挑 e/f/h/i 都会孤立一侧。h=8 决定顺时针。",
|
|
"cells": [
|
|
{ "id": "a", "x": 1, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "b", "x": 1, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "c", "x": 0, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "B", "x": 1, "y": 2, "w": 2, "h": 2 },
|
|
{ "id": "d", "x": 3, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "e", "x": 0, "y": 3, "w": 1, "h": 1 },
|
|
{ "id": "f", "x": 3, "y": 3, "w": 1, "h": 1 },
|
|
{ "id": "g", "x": 0, "y": 4, "w": 1, "h": 1 },
|
|
{ "id": "h", "x": 1, "y": 4, "w": 1, "h": 1, "clue": 8 },
|
|
{ "id": "i", "x": 2, "y": 4, "w": 1, "h": 1 },
|
|
{ "id": "j", "x": 3, "y": 4, "w": 1, "h": 1 }
|
|
]
|
|
},
|
|
{
|
|
"id": "1-9",
|
|
"teach": "横长条,出口在长边上。b 紧挨着 1 却要第 6 步才到:只能从长条 H 的下边进、上边出(h→H→b),先绕左下角。",
|
|
"cells": [
|
|
{ "id": "a", "x": 0, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "b", "x": 1, "y": 0, "w": 1, "h": 1, "clue": 6 },
|
|
{ "id": "c", "x": 2, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "d", "x": 3, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "e", "x": 0, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "H", "x": 1, "y": 1, "w": 2, "h": 1 },
|
|
{ "id": "f", "x": 3, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "g", "x": 0, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "h", "x": 1, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "i", "x": 2, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "j", "x": 3, "y": 2, "w": 1, "h": 1 }
|
|
]
|
|
},
|
|
{
|
|
"id": "1-10",
|
|
"teach": "小考:2×2 + 竖长条 + 空洞。顶行直走到 e 只有 5 步,e=6 要求多垫一步——从 b 下到 B 再回 c(a,b,B,c,d,e)。之后绕右下回到左侧,V 收尾。陷阱:a,V,B,c 也能让 e=6,但 b 会被孤立。",
|
|
"cells": [
|
|
{ "id": "a", "x": 0, "y": 0, "w": 1, "h": 1, "clue": 1 },
|
|
{ "id": "b", "x": 1, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "c", "x": 2, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "d", "x": 3, "y": 0, "w": 1, "h": 1 },
|
|
{ "id": "e", "x": 4, "y": 0, "w": 1, "h": 1, "clue": 6 },
|
|
{ "id": "V", "x": 0, "y": 1, "w": 1, "h": 2 },
|
|
{ "id": "B", "x": 1, "y": 1, "w": 2, "h": 2 },
|
|
{ "id": "f", "x": 4, "y": 1, "w": 1, "h": 1 },
|
|
{ "id": "g", "x": 3, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "h", "x": 4, "y": 2, "w": 1, "h": 1 },
|
|
{ "id": "i", "x": 0, "y": 3, "w": 1, "h": 1 },
|
|
{ "id": "j", "x": 1, "y": 3, "w": 1, "h": 1 },
|
|
{ "id": "k", "x": 2, "y": 3, "w": 1, "h": 1 },
|
|
{ "id": "l", "x": 3, "y": 3, "w": 1, "h": 1 }
|
|
]
|
|
}
|
|
]
|
|
}
|