$(document).ready(function() { // 大阿尔克那牌组 const majorArcana = [ "愚者", "魔术师", "女祭司", "女皇", "皇帝", "教皇", "恋人", "战车", "力量", "隐士", "命运之轮", "正义", "倒吊人", "死神", "节制", "恶魔", "塔", "星星", "月亮", "太阳", "审判", "世界" ]; // 中文数字数组 const chineseNumbers = ["一", "二", "三", "四", "五"]; // 牌阵定义 const spreads = { "3": { name: "圣三角牌阵", description: ["我以为的状态", "真实的状态", "建言"], template: "我以为的状态➊ 》真实的状态➋ 》建言 - {牌一}-{牌二}-{牌三}" }, "4": { name: "四张牌牌阵", description: ["问题核心", "障碍", "对策", "优势"], template: "问题核心➊ 》障碍➋ 》对策➌ 》优势➍ - {牌一}-{牌二}-{牌三}-{牌四}" }, "5": { name: "二选一牌阵", description: ["选项A的状态", "选项B的状态", "选项A可能的结果", "选项B可能的结果", "当事人的状态"], template: "选项A的状态➊ 》选项B的状态➋ 》选项A可能的结果➌ 》选项B可能的结果➍ 》当事人的状态➎ - {牌一}-{牌二}-{牌三}-{牌四}-{牌五}" }, "5_standard": { name: "五张牌牌阵", description: ["位置1", "位置2", "位置3", "位置4", "位置5"], template: "位置1➊ 》位置2➋ 》位置3➌ 》位置4➍ 》位置5➎ - {牌一}-{牌二}-{牌三}-{牌四}-{牌五}" }, "5_love": { name: "感情五张牌牌阵", description: ["我的状态", "本人对我的感情态度", "对方的状态", "对方对我的感情态度", "可能的结果"], template: "我的状态➊ 》本人对我的感情态度➋ 》对方的状态➌ 》对方对我的感情态度➍ 》可能的结果➎ - {牌一}-{牌二}-{牌三}-{牌四}-{牌五}" } }; // 随机抽取不重复的牌 function drawCards(count) { let shuffled = [...majorArcana].sort(() => 0.5 - Math.random()); return shuffled.slice(0, count).map(card => { return { name: card, position: Math.random() > 0.5 ? "正位" : "逆位" }; }); } // 更新UI显示牌 function displayCards(cards) { let container = $("#cardContainer"); container.empty(); cards.forEach((card, index) => { let cardDiv = $(`
${card.name}
${card.position}
`); container.append(cardDiv); }); } // 生成描述模板 function generateTemplate(spreadKey, cards) { let spread = spreads[spreadKey]; if (!spread) return ""; let template = spread.template; cards.forEach((card, index) => { // 使用中文数字替换占位符 template = template.replace(`{牌${chineseNumbers[index]}}`, `${card.name} ${card.position}`); }); return template; } // 处理抽牌按钮点击 $("#drawButton").click(function() { let spreadKey = $("#spreadSelect").val(); if (!spreadKey) { alert("请选择一个牌阵!"); return; } let spread = spreads[spreadKey]; let cardCount = spread.description.length; let drawnCards = drawCards(cardCount); displayCards(drawnCards); let template = generateTemplate(spreadKey, drawnCards); $("#templateText").text(template); $("#templateSection").show(); }); // 复制模板功能 $("#copyButton").click(function() { let text = $("#templateText").text(); navigator.clipboard.writeText(text).then(() => { alert("模板已复制!"); }).catch(err => { alert("复制失败,请手动复制。"); }); }); });