escapetest / data.js
Lashtw's picture
Upload 24 files
5b66d64 verified
Raw History Blame Contribute Delete
18.2 kB
// ============================================================
// 遊戲資料:故事文本、場景、線索、鎖具
// ============================================================
const STORY = {
intro: `相傳明代嘉靖年間,江南有一位隱居的算學奇才,姓衛名九章,畢生鑽研「率數之學」——
也就是後世所稱的「連比例」。他認為天地萬物,凡長寬高、輕重、遠近,
皆可用「連比」串聯其中奧秘,並將畢生心血寫成《九章算餘・率數卷》,藏於自家書房之中。
衛九章晚年深居簡出,在書房裡設下重重機關,聲稱唯有真正參透「連比」精髓之人,
才能開啟書房盡頭的「歸率大門」,繼承他的畢生絕學。
你是慕名而來的求學者,今日踏入這間堆滿典籍、鐘鼎儀器的書房,
卻不慎被反鎖其中……老僕人只留下一句話:
「公子若能解開九道機關中的線索,湊齊連比之術,自然能尋得出路。」
<b>桌上的燭火忽明忽暗,書房的門「喀」一聲鎖上了。</b>
你的探索,就從這裡開始。`,
ending: `隨著最後一道機關「喀啦」一聲彈開,儀表板上的三根指針同時停在
\\(4:5:30\\) 的刻度上,密碼鎖盤緩緩浮現一個空格。
你顫抖地轉動旋鈕,輸入了 \\(x=12\\) ——
轟然一聲,書房盡頭那扇塵封多年的「歸率大門」緩緩開啟,
金色的光芒灑落一地。案上浮現一張泛黃的信箋,是衛九章留下的最後手跡:
<b>「連比之道,不在死記公式,而在看透萬物之間,環環相扣的關係。
今日你能循線推理、集腋成裘,已得我畢生所學三分神韻。
去吧,率數傳人。」</b>
恭喜你,成功逃出「衛九章的連比密室」,並繼承了「連比傳人」的稱號!`,
endingHiddenExtra: `
<hr style="border:none;border-top:1px dashed #8a5a20;margin:18px 0;">
<b>🔶 隱藏結局・衛九章印・率數傳人 🔶</b>
就在你準備離開時,懷中的五塊印璽碎片忽然發出微光,自動拼合成一枚完整的古印。
印面浮現出你從未聽過的字句:
<b>「凡能集齊此印者,不僅通曉連比之術,更懂得『處處留心』的道理——
數學之美,往往藏在最容易被忽略的角落。
此印今日傳予你,望你日後也能將這份細心,傳給更多後人。」</b>
你成為了衛九章唯一被記載於史冊的「率數傳人」,並隨身帶著這枚印璽離開了密室。`
};
// 場景清單(依左右順序排列,index 0~4)
const SCENES = [
{
id: 'A',
name: '書桌區',
bg: 'assets/scenes/scene_A_desk.png',
hotspots: [
{ id: 'clue1', type: 'clue', clueId: 'clue1', x: 32, y: 55, label: '泛黃的便條紙' },
{ id: 'clue2', type: 'clue', clueId: 'clue2', x: 62, y: 62, label: '老照片' },
{ id: 'lock1', type: 'lock', lockId: 'lock1', x: 48, y: 78, label: '機關一:黃銅抽屜鎖' },
{ id: 'seal1', type: 'seal', sealId: 'seal1', x: 14, y: 30, label: '???' }
]
},
{
id: 'B',
name: '書櫃牆',
bg: 'assets/scenes/scene_B_bookshelf.png',
hotspots: [
{ id: 'clue3', type: 'clue', clueId: 'clue3', x: 28, y: 50, label: '古董食譜卡片' },
{ id: 'clue4', type: 'clue', clueId: 'clue4', x: 70, y: 40, label: '牆上的三角畫框' },
{ id: 'lock2', type: 'lock', lockId: 'lock2', x: 30, y: 72, label: '機關二:書櫃暗格鎖' },
{ id: 'lock3', type: 'lock', lockId: 'lock3', x: 70, y: 68, label: '機關三:畫框暗鎖' },
{ id: 'seal2', type: 'seal', sealId: 'seal2', x: 90, y: 25, label: '???' }
]
},
{
id: 'C',
name: '窗邊工作台',
bg: 'assets/scenes/scene_C_window.png',
hotspots: [
{ id: 'clue5', type: 'clue', clueId: 'clue5', x: 45, y: 58, label: '老舊水塔模型' },
{ id: 'clue6', type: 'clue', clueId: 'clue6', x: 68, y: 48, label: '設計圖告示牌' },
{ id: 'lock4', type: 'lock', lockId: 'lock4', x: 45, y: 80, label: '機關四:窗台夾層鎖' },
{ id: 'seal3', type: 'seal', sealId: 'seal3', x: 12, y: 68, label: '???' }
]
},
{
id: 'D',
name: '地圖與畫框',
bg: 'assets/scenes/scene_D_map.png',
hotspots: [
{ id: 'clue7', type: 'clue', clueId: 'clue7', x: 34, y: 42, label: '三角形花園圖' },
{ id: 'clue8', type: 'clue', clueId: 'clue8', x: 66, y: 55, label: '地圖比例尺刻字' },
{ id: 'lock5', type: 'lock', lockId: 'lock5', x: 50, y: 75, label: '機關五:暗門八卦銅鎖' },
{ id: 'seal4', type: 'seal', sealId: 'seal4', x: 88, y: 78, label: '???' }
]
},
{
id: 'E',
name: '歸率大門',
bg: 'assets/scenes/scene_E_door.png',
hotspots: [
{ id: 'clue9', type: 'clue', clueId: 'clue9', x: 34, y: 42, label: '三色儀表刻度盤' },
{ id: 'clue10', type: 'clue', clueId: 'clue10', x: 68, y: 42, label: '老師的遺言字條' },
{ id: 'lock6', type: 'lock', lockId: 'lock6', x: 50, y: 56, label: '最終機關:歸率大門金庫鎖' },
{ id: 'seal5', type: 'seal', sealId: 'seal5', x: 15, y: 82, label: '???' }
]
}
];
// 印璽彩蛋:五枚碎片,集滿解鎖隱藏結局
const SEALS = {
seal1: {
id: 'seal1', title: '印璽碎片・之一', icon: '🔶',
text: `書桌一角的燭台底下,壓著一小塊溫潤的石材碎片,
邊緣刻著模糊的雲紋,像是某個印章的一角。
<b>你把它收進了錦囊深處……會不會還有更多碎片?</b>`
},
seal2: {
id: 'seal2', title: '印璽碎片・之二', icon: '🔷',
text: `書櫃最頂層的縫隙裡,卡著另一塊石材碎片,
拼接處與剛才那塊隱約吻合。`
},
seal3: {
id: 'seal3', title: '印璽碎片・之三', icon: '🔶',
text: `窗台盆栽的泥土下,埋著第三塊碎片,
似乎是主人刻意藏在容易被忽略的地方。`
},
seal4: {
id: 'seal4', title: '印璽碎片・之四', icon: '🔷',
text: `地圖畫框的邊角夾層裡,藏著第四塊碎片,
你已經可以隱約看出印璽上刻的是一個「衛」字。`
},
seal5: {
id: 'seal5', title: '印璽碎片・之五(最後一塊)', icon: '🔶',
text: `歸率大門旁的燭座暗格中,藏著最後一塊碎片。
你將五塊碎片拼在一起,浮現出完整的印文:
<b>「衛九章印・率數傳人」</b>
<b>集滿五塊印璽碎片了!也許逃出密室後,會有意想不到的驚喜……</b>`
}
};
const SEAL_ORDER = ['seal1', 'seal2', 'seal3', 'seal4', 'seal5'];
// 線索資料
const CLUES = {
clue1: {
id: 'clue1', title: '便條紙:x 與 y 之比', location: '書桌區',
icon: '📝',
text: `檯燈下壓著一張泛黃便條,字跡工整:
「\\(x\\) 比 \\(y\\),五比六整。」
也就是:\\(x : y = 5 : 6\\)`
},
clue2: {
id: 'clue2', title: '老照片背後的字跡', location: '書桌區',
icon: '🖼️',
text: `翻開桌上的老照片,背後用鋼筆潦草寫著:
「\\((x+z)\\) 這麼多,恰是 \\(z\\) 的……不對,是 \\(4\\) 比 \\(3\\) 才對。」
也就是:\\((x+z) : z = 4 : 3\\)
<b>提示:</b>這兩個線索合在一起,或許能解開書桌抽屜的機關。`
},
clue3: {
id: 'clue3', title: '古董食譜卡片', location: '書櫃牆',
icon: '📇',
text: `書櫃第二層夾著一張食譜卡片,背面是加密過的秤重紀錄:
「麵粉、糖、奶油的用量,若 \\(2\\) 份麵粉配 \\(5\\) 份糖配 \\(4\\) 份奶油,
其實對應到我常用的秤重刻度是 \\(8:15:12\\)。」
也就是:\\(2x : 5y : 4z = 8 : 15 : 12\\)`
},
clue4: {
id: 'clue4', title: '牆上畫框的刻字', location: '書櫃牆',
icon: '🖼️',
text: `畫框裡是一幅三角形花園設計圖,下方刻著一行小字:
「花園是三角形,三邊 \\(a\\)、\\(b\\)、\\(c\\) 公分,周長剛好 \\(210\\) 公分。
且知 \\(a\\) 比 \\(b\\) 是 \\(2\\) 比 \\(3\\),\\(b\\) 比 \\(c\\) 是 \\(4\\) 比 \\(5\\)。」
也就是:周長 \\(=210\\),\\(a:b=2:3\\),\\(b:c=4:5\\)`
},
clue5: {
id: 'clue5', title: '水塔模型底座刻字', location: '窗邊工作台',
icon: '🏺',
text: `窗台上一座精巧的水塔模型,底座刻著:
「原水塔:長 \\(3\\) 公尺、寬 \\(2.5\\) 公尺、高 \\(1.5\\) 公尺。」`
},
clue6: {
id: 'clue6', title: '設計圖告示牌', location: '窗邊工作台',
icon: '📋',
text: `模型旁的小告示牌寫著:
「新水塔要依原比例擴建,長要多 \\(0.6\\) 公尺。」
<b>提示:</b>把這兩則線索合起來,就能求出新水塔的寬與高。`
},
clue7: {
id: 'clue7', title: '三角形花園圖', location: '牆上地圖',
icon: '🧩',
image: 'assets/props/triangle_garden_diagram.png',
text: `地圖旁掛著一幅三角形花園設計圖,上面清楚標註著:
「這座花園的三邊 \\(a\\)、\\(b\\)、\\(c\\) 公分,\\(a\\) 比 \\(b\\) 是 \\(2\\) 比 \\(3\\),
\\(b\\) 比 \\(c\\) 是 \\(3\\) 比 \\(4\\)。」`
},
clue8: {
id: 'clue8', title: '地圖比例尺上的刻字', location: '牆上地圖',
icon: '📏',
text: `地圖邊緣的比例尺上刻著一行小字:
「這個花園三角形的周長,跟你在書櫃找到的那座不一樣哦,這座周長是 \\(180\\) 公分。」
<b>提醒:</b>別跟鎖三的 210 公分搞混了!這裡是全新的一題。`
},
clue9: {
id: 'clue9', title: '三色儀表刻度盤', location: '歸率大門',
icon: '⚙️',
image: 'assets/props/dashboard.png',
text: `儀表板上有三根指針,分別標示 \\(x\\)、\\(y\\)、\\(z\\),下方刻著:
「當年我設計時,讓 \\(5x\\)、\\(4y\\)、\\(\\dfrac{2}{3}z\\) 三者的指針指向同一刻度。」
也就是:\\(5x = 4y = \\dfrac{2}{3}z\\)`
},
clue10: {
id: 'clue10', title: '老師的遺言字條', location: '歸率大門',
icon: '✉️',
text: `儀表板下方壓著最後一張字條,字跡與先前幾道機關的筆跡一致:
「孩子,你手上的錦囊與機關紀錄裡,早已藏著開啟此門的關鍵——
機關一抽屜裡的 \\(z\\) 值、機關三畫框裡的 \\(b\\) 值、機關五暗門裡的 \\(a\\) 值,
三者相加,再加上老夫的姓名筆畫數 \\(5\\),就是本題的 \\(x + 2y + z\\)。」
<b>這是最後一道機關了:先翻開「機關紀錄」,找出那三個數字,再回來解題吧!</b>`
}
};
// 鎖具資料
// inputType: 'triplet'(多格數字) | 'single'(單一數字)
const LOCKS = {
lock1: {
id: 'lock1', title: '機關一:書桌抽屜', requiresClues: ['clue1', 'clue2'],
lockImg: 'assets/locks/lock_1_drawer.png',
findHint: `抽屜上的鎖刻著兩行小字,其中一個條件不知去向……
請在<b>書桌區</b>找找看,桌上是否有夾著便條紙或老照片?`,
question: `若 \\(x:y=5:6\\),且 \\((x+z):z=4:3\\),求 \\(x:y:z\\)。
請將答案的三個最簡整數比依序填入下方轉盤。`,
hint: `先處理 \\((x+z):z=4:3\\):交叉相乘可得 \\(3(x+z)=4z\\),化簡後可得 \\(x:z=1:3=5:15\\),
再與 \\(x:y=5:6\\) 合併成完整的連比。`,
inputType: 'triplet',
labels: ['x', 'y', 'z'],
answer: [5, 6, 15],
recordSummary: {
formula: '\\(x:y=5:6\\),\\((x+z):z=4:3\\)',
result: '\\(x : y : z = 5 : 6 : 15\\)',
keyNote: '關鍵數值:\\(z = 15\\)',
isKeyForFinal: true
},
reward: '抽屜彈開,取得「書櫃鑰匙」,可以前往書櫃牆探索了!',
unlocksScene: 'B'
},
lock2: {
id: 'lock2', title: '機關二:書櫃暗格', requiresClues: ['clue3'],
lockImg: 'assets/locks/lock_2_bookshelf.png',
findHint: `暗格的鎖上刻著一段秤重換算的殘缺算式。
請在<b>書櫃牆</b>找找看,書架夾層裡是否藏著古董食譜卡片?`,
question: `已知 \\(2x : 5y : 4z = 8 : 15 : 12\\),求 \\(x:y:z\\)。`,
hint: `把等式兩邊同時「除以」\\(x\\)、\\(y\\)、\\(z\\) 前面的係數:
\\(x:y:z = \\dfrac{8}{2} : \\dfrac{15}{5} : \\dfrac{12}{4} = 4 : 3 : 3\\)`,
inputType: 'triplet',
labels: ['x', 'y', 'z'],
answer: [4, 3, 3],
recordSummary: {
formula: '\\(2x : 5y : 4z = 8 : 15 : 12\\)',
result: '\\(x : y : z = 4 : 3 : 3\\)',
keyNote: '連比化簡結果為 4 : 3 : 3',
isKeyForFinal: false
},
reward: '書櫃暗格打開,取得「三角形拼圖畫」的一角!記得帶著它去牆上地圖區使用。',
grantsProp: 'prop_puzzle'
},
lock3: {
id: 'lock3', title: '機關三:畫框後的鎖', requiresClues: ['clue4'],
lockImg: 'assets/locks/lock_3_frame.jpeg',
findHint: `鎖上只寫著「花園周長 210 公分」,其餘比例條件被撕去了。
請在<b>書櫃牆</b>找找看,牆上掛著的三角畫框上有沒有刻字?`,
question: `三角形三邊 \\(a, b, c\\) 公分,周長 \\(210\\) 公分,\\(a:b=2:3\\),\\(b:c=4:5\\),求 \\(b\\)。`,
hint: `先把兩個比合併成連比:\\(a:b=2:3=8:12\\),\\(b:c=4:5=12:15\\),
所以 \\(a:b:c=8:12:15\\)(總份數 \\(8+12+15=35\\))。
每份 \\(=210\\div35=6\\),\\(b=12\\times6=72\\)。`,
inputType: 'single',
label: 'b 的值',
answer: 72,
recordSummary: {
formula: '周長 \\(=210\\),\\(a:b=2:3\\),\\(b:c=4:5\\) \\(\\to a:b:c=8:12:15\\)',
result: '\\(a=48\\), \\(b=72\\), \\(c=90\\)',
keyNote: '關鍵數值:\\(b = 72\\)',
isKeyForFinal: true
},
reward: '取得「窗台鑰匙」,可以前往窗邊工作台探索了!',
unlocksScene: 'C'
},
lock4: {
id: 'lock4', title: '機關四:窗台夾層', requiresClues: ['clue5', 'clue6'],
lockImg: 'assets/locks/lock_4_windowsill.png',
findHint: `夾層的鎖需要水塔的原始尺寸與擴建幅度,兩者你都還沒拿到。
請在<b>窗邊工作台</b>找找看,是否有模型或告示牌?`,
question: `原水塔長寬高為 \\(3:2.5:1.5\\)(公尺)。新水塔依同比例擴建,
長比原來多 \\(0.6\\) 公尺,求新水塔的寬與高各是多少公尺?
請依序輸入「寬」與「高」。`,
hint: `新長 \\(=3+0.6=3.6\\),放大倍率 \\(=3.6\\div3=1.2\\)。
寬 \\(=2.5\\times1.2=3\\),高 \\(=1.5\\times1.2=1.8\\)。`,
inputType: 'triplet',
labels: ['寬', '高'],
answer: [3, 1.8],
recordSummary: {
formula: '原長寬高 \\(3:2.5:1.5\\),新長 \\(=3.6\\)(放大 \\(1.2\\) 倍)',
result: '新水塔 寬 \\(=3\\) 公尺,高 \\(=1.8\\) 公尺',
keyNote: '等比例縮放應用',
isKeyForFinal: false
},
reward: '窗台夾層打開,取得「地圖比例尺」道具,通往牆上地圖區的通道也開啟了!',
grantsProp: 'prop_scale',
unlocksScene: 'D'
},
lock5: {
id: 'lock5', title: '機關五:暗門八卦銅鎖', requiresClues: ['clue7', 'clue8'],
lockImg: 'assets/locks/lock_5_map_door.jpg',
findHint: `暗門的鎖需要一幅完整的三角形設計圖,以及它的周長數字。
請在<b>牆上地圖區</b>找找看——注意:拼圖畫可能需要先集齊書櫃暗格與窗台的道具才能拼出全貌!`,
question: `三角形花園三邊 \\(a\\)、\\(b\\)、\\(c\\) 公分,\\(a:b=2:3\\),\\(b:c=3:4\\),
周長為 \\(180\\) 公分,求 \\(a\\)、\\(b\\)、\\(c\\) 各是多少?`,
hint: `先把兩個比合併成連比:\\(a:b=2:3\\),\\(b:c=3:4\\),兩式的 \\(b\\) 剛好都是 \\(3\\),
可以直接接起來變成 \\(a:b:c=2:3:4\\)(總份數 \\(2+3+4=9\\))。
每份 \\(=180\\div9=20\\),故 \\(a=40, b=60, c=80\\)。`,
inputType: 'triplet',
labels: ['a', 'b', 'c'],
answer: [40, 60, 80],
recordSummary: {
formula: '周長 \\(=180\\),\\(a:b=2:3\\),\\(b:c=3:4\\) \\(\\to a:b:c=2:3:4\\)',
result: '\\(a=40\\), \\(b=60\\), \\(c=80\\)',
keyNote: '關鍵數值:\\(a = 40\\)',
isKeyForFinal: true
},
reward: '牆面地圖後方浮現暗門,通往最終的「歸率大門」!',
unlocksScene: 'E'
},
lock6: {
id: 'lock6', title: '最終機關:歸率大門金庫鎖', requiresClues: ['clue9', 'clue10'],
lockImg: 'assets/locks/lock_6_final_vault.jpg',
findHint: `大門的金庫鎖需要三根指針的關係式,以及一個神秘的總和條件。
請在<b>歸率大門</b>這個房間找找看,儀表板附近是否有字條?`,
isFinal: true,
isTwoStage: true,
// 第一階段:展示核心題目骨架(常數以封印神秘符號呈現),輸入 15, 72, 40 解鎖
verifyLabel: '注入關鍵數值・解開封印常數',
verifyPrompt: `在解開最終題目之前,大門金庫鎖要求你證明自己已破解前面的核心機關。
請翻開頂部的「📜 機關紀錄」,依序輸入:機關一的 \\(z\\) 值、機關三的 \\(b\\) 值、機關五的 \\(a\\) 值。`,
verifyLabels: ['機關一的 z', '機關三的 b', '機關五的 a'],
verifyAnswer: [15, 72, 40],
verifySuccessMsg: '封印解除!關鍵數值匯聚:\\(15 + 72 + 40 + 5 = 132\\) —— 終極常數重磅現世!',
// 第二階段:真正的最終題目(常數 132 已由第一階段驗證得出並重磅登場)
question: `已知 \\(5x = 4y = \\dfrac{2}{3}z\\),且 \\(x + 2y + z = 132\\),求 \\(x\\) 的值。`,
hint: `設 \\(5x=4y=\\frac23 z=k\\),可得 \\(x=\\frac{k}{5}, y=\\frac{k}{4}, z=\\frac{3k}{2}\\),
化簡同乘以 20 得 \\(x:y:z=4:5:30\\)。
設 \\(x=4r, y=5r, z=30r\\),代入 \\(x+2y+z = 4r+10r+30r = 44r = 132\\),得 \\(r=3\\)。
故 \\(x = 4 \\times 3 = 12\\)。`,
inputType: 'single',
label: 'x 的值',
answer: 12,
recordSummary: {
formula: '\\(5x=4y=\\frac{2}{3}z \\to x:y:z=4:5:30\\),\\(x+2y+z=132\\)',
result: '\\(x = 12\\) (\\(y=15, z=90\\))',
keyNote: '最終解鎖成功,開啟歸率大門!',
isKeyForFinal: false
},
reward: ''
}
};
const LOCK_ORDER = ['lock1', 'lock2', 'lock3', 'lock4', 'lock5', 'lock6'];