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}

{/* Edges */} {graphStep >= 1 && edges.map((edge, index) => { if (graphStep === 1 && (edge.id !== 'e1' && edge.id !== 'e2')) return null; if (graphStep === 2 && (edge.id === 'e7' || edge.id === 'e8')) return null; const sourceNode = nodes.find(n => n.id === edge.source); const targetNode = nodes.find(n => n.id === edge.target); return ( ); })} {/* Nodes */} {nodes.map((node) => { // Node visibility logic if (graphStep === 0 && node.type === 'word') return null; if (graphStep === 1 && node.type === 'word' && node.id !== 'w-nov' && node.id !== 'w-rub') return null; if (graphStep === 2 && node.type === 'word' && (node.id === 'w-cof' || node.id === 'w-clu')) return null; const isSymbol = node.type === 'symbol'; return ( {isSymbol ? ( ) : ( )} {isSymbol ? node.label.split(' ')[0] : node.label} {isSymbol && ( {node.label.split(' ')[1]} )} {/* English Translation under Words */} {!isSymbol && graphStep >= 1 && ( {graphStep >= 1 && node.id === 'w-nov' ? 'November' : graphStep >= 2 && node.id === 'w-rub' ? 'rubber' : graphStep >= 2 && node.id === 'w-aun' ? 'auntie' : graphStep >= 2 && node.id === 'w-egy' ? 'Egypt' : graphStep >= 2 && node.id === 'w-jac' ? 'Jack' : graphStep >= 3 ? node.eng : '?'} )} ); })}
{[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}

{/* 矩陣表格 */}
{matrixData.map((row, idx) => ( ))}
緬文單詞 視覺方塊 (音節) 結尾 ဘာ (ba) 開頭 အ (a) 含 ဂျ (j) 含 က (k) 破譯英文
{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)
交集確認:အီဂျစ် = Egypt
)}
)}
{[0, 1, 2, 3].map(step => (
))}
); }; return (
{/* Header */}

文字破譯解題思維動態模擬

2019 TOL 台灣語奧 問題6:緬甸文外來語 (Script Decipherment)

{/* Info Alert */}
解題核心:從語義學跨界到書寫系統!
這題考驗的不是詞彙的「意思組合」,而是「視覺符號」與「英文語音」的映射。我們同樣可以使用矩陣提取「音節長度與共用字母」,或者用圖表建構「字首與字尾網絡」,這正是語言學分析法能通用於各大題型的魅力所在!
{/* Main Content Area */}
{activeMode === 'graph' ? : }