diff --git a/text-to-cards.html b/text-to-cards.html
index 739de8d..1bc51b8 100644
--- a/text-to-cards.html
+++ b/text-to-cards.html
@@ -92,9 +92,9 @@
編碼:文字 → 撲克牌
-
+
-
0 / 14 字符
+
0 / 14 字元
等待輸入文字...
@@ -259,8 +259,8 @@
/**
* 將文字轉換為撲克牌排列
- * 新版本:直接編碼14個字符,不足的用null字符填充
- * 步驟:文字 → 填充到14字符 → 數字編碼 → 排列 → 撲克牌順序
+ * 新版本:直接編碼14個字元,不足的用null字元填充
+ * 步驟:文字 → 填充到14字元 → 數字編碼 → 排列 → 撲克牌順序
*
* @param {string} text - 要編碼的文字
* @returns {Array} 對應的撲克牌索引排列
@@ -268,16 +268,16 @@
function textToCards(text) {
// 檢查文字長度是否超出限制
if (text.length > 14) {
- throw new Error('文字長度不能超過 14 個字符');
+ throw new Error('文字長度不能超過 14 個字元');
}
- // 將文字填充到14個字符,不足的用null字符(\u0000)填充
+ // 將文字填充到14個字元,不足的用null字元(\u0000)填充
let paddedText = text.padEnd(14, '\u0000');
// 將填充後的文字轉換為一個大數字
let bigNumber = 0n;
- // 將每個字符的Unicode編碼拼接到數字中(每個字符佔16位)
+ // 將每個字元的Unicode編碼拼接到數字中(每個字元佔16位)
for (let i = 0; i < 14; i++) {
let charCode = paddedText.charCodeAt(i);
bigNumber = bigNumber * (2n ** 16n) + BigInt(charCode);
@@ -289,8 +289,8 @@
/**
* 將撲克牌排列轉換回文字
- * 新版本:解碼14個字符,遇到第一個null字符就停止
- * 步驟:撲克牌順序 → 排列 → 數字解碼 → 14字符字串 → 去除null填充
+ * 新版本:解碼14個字元,遇到第一個null字元就停止
+ * 步驟:撲克牌順序 → 排列 → 數字解碼 → 14字元字串 → 去除null填充
*
* @param {Array} cardOrder - 撲克牌索引排列
* @returns {string} 解碼出的文字
@@ -310,23 +310,23 @@
// 將排列轉換回數字
let bigNumber = convertFromPermutation(cardOrder);
- // 逐個字符解碼(從低位開始,總共14個字符)
+ // 逐個字元解碼(從低位開始,總共14個字元)
let chars = [];
for (let i = 0; i < 14; i++) {
let charCode = Number(bigNumber % (2n ** 16n)); // 取低16位
chars.unshift(String.fromCharCode(charCode)); // 插入到數組開頭
- bigNumber = bigNumber >> 16n; // 右移16位,處理下一個字符
+ bigNumber = bigNumber >> 16n; // 右移16位,處理下一個字元
}
- // 將字符數組合併成字串
+ // 將字元數組合併成字串
let fullText = chars.join('');
- // 找到第一個null字符的位置,如果沒有則返回完整字串
+ // 找到第一個null字元的位置,如果沒有則返回完整字串
let nullIndex = fullText.indexOf('\u0000');
if (nullIndex === -1) {
- return fullText; // 沒有null字符,返回完整的14字符
+ return fullText; // 沒有null字元,返回完整的14字元
} else {
- return fullText.substring(0, nullIndex); // 在第一個null字符處截斷
+ return fullText.substring(0, nullIndex); // 在第一個null字元處截斷
}
}
@@ -356,9 +356,9 @@
throw new Error(`無效的撲克牌格式: "${cardName}"`);
}
- // 提取花色(最後一個字符)
+ // 提取花色(最後一個字元)
let suit = cardName.slice(-1).toLowerCase();
- // 提取點數(除了最後一個字符)
+ // 提取點數(除了最後一個字元)
let rank = cardName.slice(0, -1);
// 標準化點數表示法
@@ -490,8 +490,8 @@
const charCountEl = document.getElementById('charCount');
const cardsOutputEl = document.getElementById('cardsOutput');
- // 更新字符計數顯示
- charCountEl.textContent = `${text.length} / 14 字符`;
+ // 更新字元計數顯示
+ charCountEl.textContent = `${text.length} / 14 字元`;
// 如果沒有輸入文字,顯示等待訊息
if (text.length === 0) {
@@ -507,7 +507,7 @@
const cardString = indicesToCardString(cardOrder);
// 格式化顯示
cardsOutputEl.textContent = formatCardsForDisplay(cardString);
- showMessage(`成功編碼 "${text}" (${text.length} 字符)`, 'success');
+ showMessage(`成功編碼 "${text}" (${text.length} 字元)`, 'success');
} catch (error) {
// 處理編碼錯誤
cardsOutputEl.textContent = '編碼失敗';
@@ -532,7 +532,7 @@
const decodedText = cardStringToText(cardString);
// 顯示解碼結果(如果是空字串則顯示特殊標記)
textOutputEl.textContent = decodedText || '(空字串)';
- showMessage(`成功解碼: "${decodedText}" (${decodedText.length} 字符)`, 'success');
+ showMessage(`成功解碼: "${decodedText}" (${decodedText.length} 字元)`, 'success');
} catch (error) {
// 處理解碼錯誤
textOutputEl.textContent = '解碼失敗';