数字文旅实训模拟仓 PBL 游戏化工作台
🌟 满意度
75%
🛡️ 合规度
80%
💰 预算
65%
🏛️ 文化度
70%
STAGE 01 · TEAM FORMATION

认领你的数字文旅职业身份与实训大案

面向真实文旅产业岗位需求,选择一个核心角色并挑选一个贵州/安顺的一线实战命题,开启项目制实训。

第一步:挑选实训职业角色(各角色具备专属技能与初始加成)

📊

AI 算法与大数据分析师

擅长多源客流时空建模、情感分析与数据脱敏。对数据真实性有偏执要求。

合规度 +15% 五步技术路线
💡

数字文旅创意策划师

擅长挖掘文化内核、设计文旅微创新产品与社交裂变打法。注重体验闭环。

满意度 +15% 商业模式画布
🚦

目的地智慧运营指挥官

负责景区高峰客流调度、运力资源动态平衡与应急指挥。讲究成本与效率。

预算健康 +15% 时空微沙盘
🎭

文旅 IP 与非遗数字主理人

专注屯堡文化、地戏面具与蜡染苗绣的数字孪生转译,坚守文化原真性。

文化度 +20% AIGC 纹样工坊

第二步:确认实训项目主场(安顺与贵州一线实战命题)

🌊

黄果树国家 5A 景区 · 高峰客流智能调度与错峰方案

【痛点情境】黄金周大瀑布观景台人流爆表,天星桥与陡坡塘分布不均。需通过大数据时空预测与盲盒票务权益实现跨片区动态分流。

国家 5A 景区标杆 时空大数据 动态调度
🏯

安顺屯堡 600 年大明风华 · 非遗数字活化与元宇宙转译

【痛点情境】屯堡地戏与石头寨面临年轻客群断层。需运用多模态 AIGC、声音频谱与 AI 伴游数字人,打造可交互的沉浸式文化体验馆。

大明军傩非遗 数字孪生 元宇宙转译
❄️

“21℃的城市”安顺避暑季 · 全域旅游 AI 营销与智能伴游

【痛点情境】如何把安顺“夏季平均 21℃”的气候优势,转化为游客全域停留时长?运用提示词工程与社交裂变智能体,定制避暑环线。

气候康养研学 智能行程生成 短视频裂变
🏀

贵州“村BA / 村超” · 乡土体育流量向“票根经济”生态转化

【痛点情境】泼天流量如何防止“球赛一散,全城寂静”?设计基于移动端和数据标签的票根经济闭环,联动周边民宿与农特产消费。

乡村振兴 票根经济模型 农旅融合
STAGE 02 · REAL-WORLD DECISIONS

突发情境分支推演与战略抉择

实训不是做填空题。在真实文旅一线,每个方案都有代价与收益。你的决策将直接联动顶部仪表盘各项指标!

真实行业事件 · 决策回合 1/2

突发:瞬时客流超出核定承载量 130%,网络负面舆情开始萌芽!

上午 11:15,黄果树大瀑布大瀑布核心观景台瞬时人流密度达到警戒红线,索道与摆渡车排队时长突破 55 分钟。已有游客在小红书、抖音发布排队吐槽短视频。作为项目团队,你的应急与数据干预策略是:
方案 A:立刻关闸限流,调配全体安保人工喊话劝导 最保守的安全做法,但会严重挫伤已到场游客情绪,容易引发排队冲突。
满意度 -15% | 合规度 +15%
方案 B:启动智慧大脑动态分流,向排队游客定向推送“天星桥非遗盲盒权益与快速通行券” 通过时空置换将客流引导至下游较为空闲的景点,同时利用 AI 数字人播报舒缓排队焦虑。
满意度 +15% | 文化度 +10% | 预算 -10%
方案 C:增派 3 倍燃油应急接驳车全力接驳,不限制进入 短时间内加快运力周转,但核心景区依然超负荷,且运营成本与碳排放急剧激增。
满意度 +5% | 预算 -25% | 合规度 -10%
STAGE 03 · HANDS-ON MINI LABS

数字文旅四大核心技术微实训

对应课程《大数据与旅游业》与《AI 文旅》的核心技能训练,完成四个微实训以积累你的五维量规评测数据。

关卡 1:文旅数据合规脱敏与清洗扫雷

严守数据安全铁律!从下方实时爬虫数据流中,点击剔除个人隐私(真实学号、手机号、身份证、恶意注入),放行合规文旅特征!

已净化敏感项: 0 / 4
● 模拟数据流接入中 (Raw Data Feed) 等待实训生审计...

关卡 2:文旅智能体 System Prompt 模块拼装

为安顺屯堡非遗智能体配置提示词。选择不同积木块注入角色,测试其在准确度、文化原真度与抗幻觉维度的表现。

可选提示词积木(点击组合):
🎭 资深屯堡学者角色设定 原真度 +20%
🛡️ 严格防幻觉与合规边界 合规度 +25%
🗣️ 黔中地域方言亲和力 满意度 +15%
🗺️ 场景延伸推荐策略 转化率 +10%
实时 System Prompt 编排预览:
预期性能评级: 优秀 (A级)

关卡 3:黄果树景区时空客流运力调度沙盘

观察各节点客流聚集情况(绿色安全、黄色拥挤、红色过载)。点击调度按钮派出接驳车并释放分流盲盒!

沙盘状态: 运营正常

关卡 4:实训八件套 PRD 画布组装与答辩突发题

实训交付的关键是标准化!点击将要素填入 PRD 画布,并直面来自答辩评委的挑刺问题。

① 问题定义 (20%) 黄果树核心区峰值时空分布不均
② 数据脱敏清洗 (15%) 已剥离真实 PII,建立特征集
③ 分析建模 (25%) 多源客流预测 + 提示词工程
④ 可视化叙事 (20%) 拓扑微沙盘 + 动态仪表盘
⑤ 落地决策建议 (20%) 错峰盲盒券 + 运力动态调度闭环
⑥ 实训反思与边界 注明算法假设与极端天气兜底
🎓 答辩评委突击挑刺盲盒:

“同学,你的方案非常漂亮,但如果黄金周遇到山洪暴雨,导致外部基站网络中断、AI 智能体无法联网,你的调度与导览系统会彻底瘫痪吗?”

回答 A:系统设计有本地离线降级机制,端侧缓存预置应急路线图,不依赖云端大模型依然能离线工作 【专业严谨】符合工程鲁棒性与《AIGC 赋能文旅合规治理》底线要求。
评委高度认可 +20分
回答 B:不可能断网,景区肯定有备用光纤 【避重就轻】缺乏容灾兜底考量。
扣 10 分
STAGE 04 · RUBRIC & ARCHIVE

实训评测档案与通关成就护照

对标安顺学院《大数据与旅游业》课程公开五维量规,系统根据你在此次沙盘推演与微实训中的表现综合生成。

AI 算法与大数据分析师

黄果树国家 5A 景区·高峰调度
🎖️
实训综合总评 94.5 / 100
实训荣誉称号 卓越数字文旅操盘手
问题定义能力 (20%) 19.0 分
数据清洗合规 (15%) 14.5 分
分析建模方法 (25%) 23.5 分
可视化叙事 (20%) 19.0 分
决策建议落地 (20%) 18.5 分
📌 祝刚老师寄语与评价:
“你在数据清洗、情境抉择与离线容灾答辩中展现出严谨的专业素养。实训不是演练空想,而是让技术切实为目的地游客体验与文化赋能。建议将本次生成的方案整理为《实训八件套》,投递至学生优秀成果墙!”
验证编码: ZGDGT-SIM-202609-8832 防伪戳记: 安顺学院旅游管理学院
提示内容
在搜索栏注入。', isPII: true, label: '恶意脚本攻击字符串' }, { text: '合规数据:屯堡地戏文创雪糕与冰箱贴当日销量 1,420 件。', isPII: false, label: '脱敏文创消费数据' }, { text: '敏感泄露:教师办公电话 0851-3341**** 内部巡检账号密码写在公开接口。', isPII: true, label: '内部敏感运维凭据' } ]; function initSweeper() { const wrap = document.getElementById('sweeperStream'); wrap.innerHTML = ''; state.sweeper.cleaned = 0; document.getElementById('cleanedCount').innerText = '0'; document.getElementById('sweepStatus').innerText = '请点击脱敏并消灭红色隐私威胁!'; sweeperDataSamples.forEach((item, idx) => { const bubble = document.createElement('div'); bubble.className = 'data-bubble'; bubble.innerHTML = `
[${item.label}] ${item.text}
`; bubble.onclick = () => onBubbleClick(bubble, item); wrap.appendChild(bubble); }); } function onBubbleClick(bubble, item) { if (item.isPII) { playSound('success'); bubble.classList.add('disinfected'); bubble.querySelector('button').innerText = '已脱敏净化'; state.sweeper.cleaned++; document.getElementById('cleanedCount').innerText = state.sweeper.cleaned; state.gauges.acc = Math.min(100, state.gauges.acc + 5); updateGauges(); showToast(`✓ 成功净化:${item.label}`); if (state.sweeper.cleaned >= 4) { document.getElementById('sweepStatus').innerText = '🎉 数据流净化完毕!合规度显著提升!'; state.scores.cleaning = 15.0; } } else { playSound('warn'); bubble.classList.add('error-hit'); setTimeout(() => bubble.classList.remove('error-hit'), 350); showToast('❌ 这是合法合规的脱敏特征数据,切勿误删!'); } } function resetSweeper() { playSound('click'); initSweeper(); } /* 关卡 2:提示词炼金 */ function togglePromptBlock(el, blockText) { playSound('click'); el.classList.toggle('active'); updatePromptAlchemy(); } function updatePromptAlchemy() { const activeBlocks = document.querySelectorAll('.prompt-block.active'); const texts = []; activeBlocks.forEach(b => { const text = b.getAttribute('onclick').match(/'([^']+)'/)[1]; texts.push(text); }); document.getElementById('promptText').value = texts.join('\n\n'); const count = activeBlocks.length; const gradeEl = document.getElementById('promptGrade'); if (count >= 3) { gradeEl.innerText = '卓越 (S 级 · 鲁棒防幻觉)'; gradeEl.style.color = '#22c55e'; state.scores.method = 24.5; } else if (count === 2) { gradeEl.innerText = '良好 (A 级 · 具备基础约束)'; gradeEl.style.color = 'var(--primary)'; state.scores.method = 22.0; } else { gradeEl.innerText = '警惕 (B 级 · 缺乏防护可能产生幻觉)'; gradeEl.style.color = 'var(--accent-red)'; state.scores.method = 18.0; } } function testPrompt() { playSound('success'); showToast('✓ 运行模拟测试中... 幻觉发生率 < 0.8%,非遗史料匹配度 96%!'); state.gauges.sat = Math.min(100, state.gauges.sat + 5); updateGauges(); } /* 关卡 3:时空运力拓扑沙盘 (Canvas 仿真) */ let canvasAnimId = null; const nodes = [ { id: 'gate', name: '景区大门', x: 0.15, y: 0.5, crowd: 45, max: 100 }, { id: 'waterfall', name: '大瀑布核心区', x: 0.5, y: 0.3, crowd: 85, max: 100 }, { id: 'bridge', name: '天星桥景区', x: 0.82, y: 0.35, crowd: 35, max: 100 }, { id: 'tang', name: '陡坡塘瀑布', x: 0.5, y: 0.75, crowd: 40, max: 100 } ]; let busParticles = []; function initCanvasSandbox() { const canvas = document.getElementById('topoCanvas'); if (!canvas) return; const ctx = canvas.getContext('2d'); const rect = canvas.getBoundingClientRect(); canvas.width = rect.width; canvas.height = rect.height; cancelAnimationFrame(canvasAnimId); function draw() { ctx.clearRect(0, 0, canvas.width, canvas.height); // 绘制拓扑连线 ctx.strokeStyle = '#1e293b'; ctx.lineWidth = 2; ctx.setLineDash([4, 4]); const drawLink = (n1, n2) => { ctx.beginPath(); ctx.moveTo(n1.x * canvas.width, n1.y * canvas.height); ctx.lineTo(n2.x * canvas.width, n2.y * canvas.height); ctx.stroke(); }; drawLink(nodes[0], nodes[1]); drawLink(nodes[0], nodes[3]); drawLink(nodes[1], nodes[2]); drawLink(nodes[3], nodes[2]); ctx.setLineDash([]); // 绘制接驳车光点 for (let i = busParticles.length - 1; i >= 0; i--) { const p = busParticles[i]; p.t += 0.015; const curX = (p.from.x + (p.to.x - p.from.x) * p.t) * canvas.width; const curY = (p.from.y + (p.to.y - p.from.y) * p.t) * canvas.height; ctx.fillStyle = '#38bdf8'; ctx.beginPath(); ctx.arc(curX, curY, 5, 0, Math.PI * 2); ctx.fill(); if (p.t >= 1) busParticles.splice(i, 1); } // 绘制节点 nodes.forEach(n => { const nx = n.x * canvas.width; const ny = n.y * canvas.height; const ratio = n.crowd / n.max; // 颜色根据拥挤度变化 let color = '#22c55e'; if (ratio > 0.75) color = '#ef4444'; else if (ratio > 0.55) color = '#f59e0b'; // 节点光圈 ctx.beginPath(); ctx.arc(nx, ny, 22, 0, Math.PI * 2); ctx.fillStyle = 'rgba(13, 24, 48, 0.85)'; ctx.fill(); ctx.lineWidth = 3; ctx.strokeStyle = color; ctx.stroke(); // 节点文字 ctx.fillStyle = '#fff'; ctx.font = '12px sans-serif'; ctx.textAlign = 'center'; ctx.fillText(n.name, nx, ny - 30); ctx.fillStyle = color; ctx.font = 'bold 11px sans-serif'; ctx.fillText(`${n.crowd} / ${n.max}人`, nx, ny + 5); }); canvasAnimId = requestAnimationFrame(draw); } draw(); } function dispatchBus(route) { playSound('success'); if (route === 'entrance_to_waterfall') { busParticles.push({ from: nodes[0], to: nodes[1], t: 0 }); nodes[1].crowd = Math.max(30, nodes[1].crowd - 15); nodes[0].crowd = Math.max(20, nodes[0].crowd - 10); showToast('已向大瀑布调度无人直达快车,缓解等车排队!'); } else if (route === 'waterfall_to_bridge') { busParticles.push({ from: nodes[1], to: nodes[2], t: 0 }); nodes[1].crowd = Math.max(30, nodes[1].crowd - 25); nodes[2].crowd = Math.min(90, nodes[2].crowd + 20); showToast('已启动天星桥跨区分流车,大瀑布过载缓解!'); } state.scores.visual = 19.5; } function issueBlindBoxPromo() { playSound('success'); nodes[1].crowd = Math.max(25, nodes[1].crowd - 30); nodes[2].crowd = Math.min(85, nodes[2].crowd + 25); showToast('天星桥非遗盲盒权益发放!超300名游客自愿移步天星桥!'); state.gauges.sat = Math.min(100, state.gauges.sat + 10); updateGauges(); } /* 关卡 4:答辩盲盒 */ function answerDefense(opt) { if (opt === 1) { playSound('success'); showToast('✓ 回答极佳!现场评委一致打出高分!'); state.scores.decision = 20.0; } else { playSound('warn'); showToast('评委追问:工程系统不能做假设,需注重极端情况容灾!'); state.scores.decision = 14.0; } } /* ==================== 阶段四:量规计算与雷达图 ==================== */ function calculateFinalRubric() { document.getElementById('passRoleName').innerText = state.role.name; document.getElementById('passProjName').innerText = state.project.name; const total = state.scores.definition + state.scores.cleaning + state.scores.method + state.scores.visual + state.scores.decision; document.getElementById('finalScore').innerText = total.toFixed(1) + ' / 100'; let title = '优秀数字文旅新秀'; if (total >= 92) title = '卓越数字文旅总架构师 (S级)'; else if (total >= 85) title = '高级数智文旅操盘手 (A级)'; document.getElementById('finalTitle').innerText = title; document.getElementById('scoreDef').innerText = state.scores.definition.toFixed(1) + ' 分'; document.getElementById('scoreCln').innerText = state.scores.cleaning.toFixed(1) + ' 分'; document.getElementById('scoreMtd').innerText = state.scores.method.toFixed(1) + ' 分'; document.getElementById('scoreVis').innerText = state.scores.visual.toFixed(1) + ' 分'; document.getElementById('scoreDec').innerText = state.scores.decision.toFixed(1) + ' 分'; } function drawRadarChart() { const canvas = document.getElementById('radarCanvas'); if (!canvas) return; const ctx = canvas.getContext('2d'); const w = canvas.width; const h = canvas.height; ctx.clearRect(0, 0, w, h); const cx = w / 2; const cy = h / 2; const r = 85; const labels = ['问题定义', '数据清洗', '分析建模', '可视叙事', '落地建议']; const maxVals = [20, 15, 25, 20, 20]; const curVals = [ state.scores.definition, state.scores.cleaning, state.scores.method, state.scores.visual, state.scores.decision ]; const num = 5; // 绘制网状多边形 ctx.strokeStyle = 'rgba(255,255,255,0.12)'; ctx.lineWidth = 1; for (let level = 1; level <= 4; level++) { ctx.beginPath(); const curR = (r / 4) * level; for (let i = 0; i < num; i++) { const angle = (Math.PI * 2 / num) * i - Math.PI / 2; const x = cx + Math.cos(angle) * curR; const y = cy + Math.sin(angle) * curR; if (i === 0) ctx.moveTo(x, y); else ctx.lineTo(x, y); } ctx.closePath(); ctx.stroke(); } // 绘制射线 for (let i = 0; i < num; i++) { const angle = (Math.PI * 2 / num) * i - Math.PI / 2; ctx.beginPath(); ctx.moveTo(cx, cy); ctx.lineTo(cx + Math.cos(angle) * r, cy + Math.sin(angle) * r); ctx.stroke(); } // 绘制实际得分多边形 ctx.beginPath(); for (let i = 0; i < num; i++) { const angle = (Math.PI * 2 / num) * i - Math.PI / 2; const ratio = curVals[i] / maxVals[i]; const x = cx + Math.cos(angle) * (r * ratio); const y = cy + Math.sin(angle) * (r * ratio); if (i === 0) ctx.moveTo(x, y); else ctx.lineTo(x, y); } ctx.closePath(); ctx.fillStyle = 'rgba(45, 212, 191, 0.35)'; ctx.fill(); ctx.lineWidth = 2; ctx.strokeStyle = '#2dd4bf'; ctx.stroke(); // 绘制标签 ctx.fillStyle = '#cbd5e1'; ctx.font = '11px sans-serif'; ctx.textAlign = 'center'; for (let i = 0; i < num; i++) { const angle = (Math.PI * 2 / num) * i - Math.PI / 2; const lx = cx + Math.cos(angle) * (r + 18); const ly = cy + Math.sin(angle) * (r + 14); ctx.fillText(labels[i], lx, ly); } } function copyPassportReport() { const text = `【数字文旅游戏化实训认证报告】 实训学员身份:${state.role.name} 实训研究大案:${state.project.name} 实训总评成绩:${document.getElementById('finalScore').innerText} 获得荣誉称号:${document.getElementById('finalTitle').innerText} 各项量规评定: - 问题定义能力 (20%):${document.getElementById('scoreDef').innerText} - 数据合规清洗 (15%):${document.getElementById('scoreCln').innerText} - 分析建模技术 (25%):${document.getElementById('scoreMtd').innerText} - 可视化与叙事 (20%):${document.getElementById('scoreVis').innerText} - 落地建议闭环 (20%):${document.getElementById('scoreDec').innerText} 验证机构:安顺学院旅游管理学院 · 祝刚老师个人网站 (zgdgt.cn)`; if (navigator.clipboard) { navigator.clipboard.writeText(text).then(() => { showToast('✓ 认证报告已复制到剪贴板!'); }); } else { showToast('请直接长按或截图保存护照卡!'); } } function resetSim() { playSound('warn'); state.gauges = { sat: 75, acc: 80, bud: 65, cul: 70 }; state.scores = { definition: 19.0, cleaning: 14.5, method: 23.5, visual: 19.0, decision: 18.5 }; updateGauges(); switchStage(1); showToast('沙盘已重置,请重新挑选角色与选题'); } // 页面加载自动初始化 window.addEventListener('DOMContentLoaded', () => { updateGauges(); });