import React, { useState } from 'react';
import { ChevronRight, ChevronLeft, CheckCircle2, Info, Network, Grid3X3, ArrowRight } from 'lucide-react';
// --- 資料定義 ---
const nodes = [
// Symbols (Core Nodes)
{ id: 'sym-ba', label: 'ဘာ (ba)', x: 450, y: 150, type: 'symbol' },
{ id: 'sym-a', label: 'အ (vowel)', x: 150, y: 150, type: 'symbol' },
{ id: 'sym-gy', label: 'ဂျ (j/gy)', x: 300, y: 300, type: 'symbol' },
{ id: 'sym-k', label: 'က (k)', x: 300, y: 450, type: 'symbol' },
// Words (Leaf Nodes)
{ id: 'w-nov', label: 'နိုဝင်ဘာ', eng: 'November', x: 500, y: 50, type: 'word' },
{ id: 'w-rub', label: 'ရော်ဘာ', eng: 'rubber', x: 550, y: 250, type: 'word' },
{ id: 'w-aun', label: 'အန်တီ', eng: 'auntie', x: 50, y: 50, type: 'word' },
{ id: 'w-egy', label: 'အီဂျစ်', eng: 'Egypt', x: 150, y: 250, type: 'word' },
{ id: 'w-jac', label: 'ဂျက်', eng: 'Jack', x: 450, y: 350, type: 'word' },
{ id: 'w-cof', label: 'ကော်ဖီ', eng: 'coffee', x: 150, y: 450, type: 'word' },
{ id: 'w-clu', label: 'ကလပ်', eng: 'club', x: 450, y: 500, type: 'word' },
];
const edges = [
{ source: 'w-nov', target: 'sym-ba', id: 'e1' },
{ source: 'w-rub', target: 'sym-ba', id: 'e2' },
{ source: 'w-aun', target: 'sym-a', id: 'e3' },
{ source: 'w-egy', target: 'sym-a', id: 'e4' },
{ source: 'w-egy', target: 'sym-gy', id: 'e5' },
{ source: 'w-jac', target: 'sym-gy', id: 'e6' },
{ source: 'w-cof', target: 'sym-k', id: 'e7' },
{ source: 'w-clu', target: 'sym-k', id: 'e8' },
];
export default function BurmeseScriptApp() {
const [activeMode, setActiveMode] = useState('graph');
const [graphStep, setGraphStep] = useState(0);
const [matrixStep, setMatrixStep] = useState(0);
// --- 圖表法元件 ---
const GraphView = () => {
const steps = [
{
title: "步驟 1:提取重複的視覺符號",
desc: "觀察緬甸文單詞,找出重複出現的「方塊」。例如:「ဘာ」在兩個詞中出現;「အ」在兩個詞開頭;「ဂျ」和「က」也各自出現兩次。我們將這些符號設為核心節點。"
},
{
title: "步驟 2:音節長度與錨點定位",
desc: "最長的是「နိုဝင်ဘာ」(3個方塊),英文只有 November 是3音節,所以確定它是 November。這意味著共用的結尾「ဘာ」發音是 /ber/ 或 /ba/!"
},
{
title: "步驟 3:透過共用節點進行連鎖解碼",
desc: "連著「ဘာ」的另一個詞是「ရော်ဘာ」,對應有 /ber/ 結尾的 rubber(橡皮)。\n同時,auntie 和 Egypt 都是母音開頭,共用「အ」。而 Egypt 又跟 Jack 共用代表 /j/ 音的「ဂျ」。"
},
{
title: "步驟 4:網絡完全解析",
desc: "最後,帶有「က」(k音) 的兩個詞,自然對應發音有 /k/ 的 coffee 與 club。圖表法利用「共用部件連線」將字體與音韻網路完美疊合!"
}
];
return (
{steps[graphStep].title}
{steps[graphStep].desc}
{[0, 1, 2, 3].map(step => (
))}
);
};
// --- 矩陣法元件 ---
const MatrixView = () => {
const steps = [
{
title: "步驟 1:建立視覺特徵矩陣",
desc: "不需懂緬文,我們只需像算數學一樣,計算每個單詞的「視覺方塊數(音節)」,並標記它們是否包含某些特殊的重複符號(如:結尾的 ဘာ、開頭的 အ)。"
},
{
title: "步驟 2:音節長度配對 (Syllable Length)",
desc: "最明顯的特徵:唯一的三音節詞「နိုဝင်ဘာ」➔ 必然對應選項中唯一的 3 音節字 November。\n唯一的一音節詞「ဂျက်」➔ 對應 Jack 或 club。"
},
{
title: "步驟 3:字根與語音特徵代換 (Phonetic Substitution)",
desc: "既然 နိုဝင်ဘာ = November,那結尾的 ဘာ = ber。\n尋找另一個有 ဘာ 結尾的字「ရော်ဘာ」,對應到 rub-ber (橡皮)。"
},
{
title: "步驟 4:矩陣交集解密完成",
desc: "有 อ (母音開頭) 特徵的是 auntie, Egypt。\n有 ဂျ (j音) 特徵的是 Jack, Egypt。\n取交集:「အီဂျစ်」兼具母音與 j 音 ➔ 必然是 Egypt!其餘依此類推。"
}
];
const matrixData = [
{ word: 'နိုဝင်ဘာ', blocks: 3, endBa: true, startA: false, hasJ: false, hasK: false, meaning: matrixStep >= 1 ? 'November' : '?' },
{ word: 'ရော်ဘာ', blocks: 2, endBa: true, startA: false, hasJ: false, hasK: false, meaning: matrixStep >= 2 ? 'rubber' : '?' },
{ word: 'အန်တီ', blocks: 2, endBa: false, startA: true, hasJ: false, hasK: false, meaning: matrixStep >= 3 ? 'auntie' : '?' },
{ word: 'အီဂျစ်', blocks: 2, endBa: false, startA: true, hasJ: true, hasK: false, meaning: matrixStep >= 3 ? 'Egypt' : '?' },
{ word: 'ဂျက်', blocks: 1, endBa: false, startA: false, hasJ: true, hasK: false, meaning: matrixStep >= 1 ? 'Jack' : '?' },
{ word: 'ကော်ဖီ', blocks: 2, endBa: false, startA: false, hasJ: false, hasK: true, meaning: matrixStep >= 3 ? 'coffee' : '?' },
{ word: 'ကလပ်', blocks: 2, endBa: false, startA: false, hasJ: false, hasK: true, meaning: matrixStep >= 3 ? 'club' : '?' },
];
return (
{steps[matrixStep].title}
{steps[matrixStep].desc}
{/* 矩陣表格 */}
| 緬文單詞 |
視覺方塊 (音節) |
結尾 ဘာ (ba) |
開頭 အ (a) |
含 ဂျ (j) |
含 က (k) |
破譯英文 |
{matrixData.map((row, idx) => (
| {row.word} |
{row.blocks} |
{row.endBa ? : '-'} |
{row.startA ? : '-'} |
{row.hasJ ? : '-'} |
{row.hasK ? : '-'} |
{row.meaning} |
))}
{/* 公式推導區塊 */}
{matrixStep >= 1 && (
特徵交集推導 (Feature Intersection)
{matrixStep >= 1 && (
Length = 3:
နိုဝင်ဘာ ➔ November
)}
{matrixStep >= 2 && (
Suffix [ဘာ]:
從 November 得知 ဘာ = /ber/。剩下 ရော်ဘာ ➔ rubber
)}
{matrixStep >= 3 && (
// 矩陣特徵多重交集 (Intersection logic)
1. Prefix [အ] = 母音開頭 (auntie, Egypt)
2. Contain [ဂျ] = 含有 /j/ 音 (Jack, Egypt)
)}
)}
{[0, 1, 2, 3].map(step => (
))}
);
};
return (
{/* Header */}
文字破譯解題思維動態模擬
2019 TOL 台灣語奧 問題6:緬甸文外來語 (Script Decipherment)
{/* Info Alert */}
解題核心:從語義學跨界到書寫系統!
這題考驗的不是詞彙的「意思組合」,而是「視覺符號」與「英文語音」的映射。我們同樣可以使用矩陣提取「音節長度與共用字母」,或者用圖表建構「字首與字尾網絡」,這正是語言學分析法能通用於各大題型的魅力所在!
{/* Main Content Area */}
{activeMode === 'graph' ? : }
);
}
/* 這是一道非常精彩的**文字解密(Script Decipherment)**題目!雖然它不完全屬於我們前面討論的「語義學(Semantics)」,而是屬於「書寫系統(Writing Systems)」或「語音學(Phonetics)」,但**「圖表法」與「矩陣與特徵分析法」的核心邏輯,完全可以跨領域套用來破解這種類型的題目!**
在處理未知文字的外來語時,我們尋找的不再是「意義的組合」,而是**「視覺符號的重複」與「語音特徵的對應」**。
### 解題邏輯確認:將方法轉化為「符號與語音的映射」
我們從你提供的 2019 TOL 緬甸文外來語片段中,挑出 7 個特徵最明顯的單詞來進行破解驗證:
#### 1. 矩陣法:視覺特徵與音節長度分析
我們將緬甸文的「視覺方塊數(通常對應音節)」與「重複出現的特殊符號」列成矩陣,再與英文發音對比:
* **長度特徵**:
* 3 個方塊:`နိုဝင်ဘာ` $\rightarrow$ 對應 3 音節英文:**November** (11月)。
* 1 個方塊:`ဂျက်` $\rightarrow$ 對應單音節英文:**Jack**。
* **字尾符號對應 (Suffix/Ending)**:
* `နိုဝင်ဘာ` (November) 的結尾是 `ဘာ` (ba)。
* 另一個字 `ရော်ဘာ` 也以 `ဘာ` 結尾,且為 2 音節 $\rightarrow$ 對應發音結尾有 -ber 的:**rubber** (橡皮)。
* **字首與字根對應 (Prefix/Root)**:
* `အန်တီ` 和 `အီဂျစ်` 有共同的開頭 `အ` (代表母音開頭) $\rightarrow$ 對應 **auntie** (阿姨) 和 **Egypt** (埃及)。
* `အီဂျစ်` (Egypt) 和 單音節的 `ဂျက်` (Jack) 有共同符號 `ဂျ` $\rightarrow$ 證實 `ဂျ` 就是 /j/ (傑) 的音。
* `ကော်ဖီ` 和 `ကလပ်` 都有 `က` 開頭 $\rightarrow$ 對應 /k/ 音的 **coffee** 和 **club**。
#### 2. 圖表法:建立「字形與音素的關聯網」
* 將共同的「緬文符號」設為中心節點,將「包含該符號的單詞」連向它。
* 例如:`November` 和 `rubber` 同時連向節點 `[ဘာ]`;`Egypt` 連向 `[အ]` 與 `[ဂျ]`;`Jack` 連向 `[ဂျ]`;`auntie` 連向 `[အ]`。
* 透過這個圖表網絡,只要確定一個詞,就能像骨牌一樣推倒出所有相連單詞的讀音。
這兩種方法在破譯未知文字時同樣具有強大的威力。我已經將這個破譯過程,製作成**緬甸文外來語的動態模擬器**,請在右側操作體驗:
### 兩種方法的跨界應用總結:
1. **「矩陣與特徵法」無比適合解密書寫系統**:
我們不再填入「意思」,而是填入**「視覺長度」**(1個方塊、2個方塊)和**「特定符號」**(結尾是否有 ဘာ)。這種作法可以讓大腦不被陌生的「毛毛蟲文字」干擾,直接將圖像轉為「Boolean (是/否) 邏輯表」,精準找出像 November 這種突破口。
2. **「圖表法」揭露語音網絡**:
透過畫線,我們可以清晰看到 /j/ 音(傑、埃及)和 /a/ 音(阿姨、埃及)是如何在 `အီဂျစ်` (Egypt) 這個詞上產生交集的。
透過這種系統化的工具思考,不論是「語義學」還是「文字解密」,解題都會變得像在解數獨一樣有邏輯且暢快! */