refactor: organize design documents and consolidate AI function specifications

- Move ai-algorithm-specs.md to common specifications
- Move content-management-specs.md and ui-ux-guidelines.md to common
- Add new common specifications: pragmatic-analysis-specs.md, progressive-stage-system.md, speaking-evaluation-specs.md, user-flow-diagrams.md
- Update business rules with comprehensive payment system, user roles, and progressive learning mechanics
- Consolidate business logic rules into common business rules
- Archive deprecated ai-algorithm-specs.md to maintain version history
- Improve document organization for better cross-platform reference

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
鄭沛軒 2025-09-11 02:53:42 +08:00
parent f8b47bdf5a
commit 32cc10ffd5
21 changed files with 3086 additions and 620 deletions

View File

@ -24,6 +24,34 @@
- 用戶可透過客服申請帳戶刪除後重新註冊
```
#### BR-USER-01: 付費用戶分級規則
```yaml
規則名稱: 用戶付費等級與權益管理
適用範圍: 所有付費用戶類別
用戶等級定義:
試用用戶:
- 期限: 7天免費體驗訂閱用戶
- 權益: 完整功能體驗
- 限制: 試用期結束後自動轉訂閱用戶
- 轉換: 若不訂閱,需自行到設定取消訂閱
訂閱用戶:
- 定價: NT$600/月 或 NT$6,000/年 (8.3折優惠)
- 權益: 無限制學習次數,進階統計報告
- 特權: 每日3次免費限時挑戰命條恢復加速
- 期限: 按月/年自動續訂,可隨時取消
進階用戶(第二階段功能開放後提供):
- 定價: NT$900/月 或 NT$9,000/年 (8.3折優惠)
- 權益: 訂閱用戶所有功能 + 進階自訂學習功能 + 更優質的學習體驗(tts)
- 特權: 更多命條上限,更快回復速度,專屬學習模式
- 階段: 第二階段功能開放後提供
高價值用戶(第三階段功能開放後提供):
- 定義: 累計購買鑽石超過NT$3,000的用戶
- 權益: VIP客服支援專屬活動邀請
- 特權: 新功能優先體驗,限定道具折扣,獲得限定道具
```
#### BR-AUTH-02: 密碼安全規則
```yaml
規則名稱: 密碼複雜度要求
@ -111,9 +139,8 @@
- 用戶初始生命值為5條
- 答錯或失敗會消耗1條生命
- 生命值為0時無法進行新的學習活動
- 每6小時自動回復1條生命最多回復到5條
- 每4小時自動回復1條生命最多回復到5條
生命恢復:
- 付費用戶生命回復速度提升至4小時1條
- 可使用鑽石立即購買生命(50鑽石=1條生命)
- 完成每日任務獎勵1條生命
- 觀看廣告可獲得1條生命(每日最多3次)
@ -158,14 +185,12 @@
規則名稱: 詞彙掌握度評估
適用範圍: 所有詞彙學習活動
規則內容:
- 新詞彙初始掌握度為0%
- 正確使用一次增加20%掌握度
- 錯誤使用一次減少10%掌握度
- 掌握度80%以上視為已掌握
- 起始點: 新詞彙 0% 掌握度
- 成功獎勵: +20% 掌握度
- 錯誤懲罰: -5% 掌握度
- 掌握標準: 80% 以上視為已掌握
複習機制:
- 掌握度<50%: 24小時後複習
- 掌握度50-79%: 3天後複習
- 掌握度80%+: 7天後複習
- 複習時間 = 最近複習日期 + (2^成功次數) 天
- 連續3次正確可延長複習間隔
```
@ -201,38 +226,18 @@
- 專精(C2): 學術表達與文化語境
```
### ⏰ 時間與限制
#### BR-TIME-01: 限時挑戰規則
```yaml
規則名稱: 300秒挑戰機制
適用範圍: 限時挑戰模式
規則內容:
- 每次挑戰固定300秒(5分鐘)
- 需要消耗1張挑戰門票
- 時間結束立即停止,不可延長
- 成績根據正確率和剩餘時間計算
門票機制:
- 免費用戶每日獲得2張門票
- 付費用戶每日獲得5張門票
- 可用鑽石購買額外門票(100鑽石/張)
- 門票不累積,當日未用完隔日重置
```
#### BR-TIME-02: 學習會話時限
```yaml
規則名稱: 學習會話超時處理
適用範圍: 所有學習活動會話
規則內容:
- 單次學習會話最長2小時
- 30分鐘無操作自動暫停
- 暫停狀態保持30分鐘後自動結束
- 會話結束自動保存當前進度
- 單次學習會話最長5分鐘
- 5分鐘後自動結束
- 會話結束會自動結算,並存到紀錄
數據保存:
- 已完成的練習立即保存
- 進行中的練習保存狀態
- 學習時間準確記錄
- 經驗值和獎勵延遲結算
- 經驗值和獎勵結算
```
### 🤝 社群互動
@ -258,15 +263,14 @@
規則名稱: 競爭排名計算
適用範圍: 所有排行榜功能
規則內容:
- 排行榜分為好友榜和全球榜
- 排行榜分為好友榜
- 每週一凌晨重置週排行榜
- 每月1號重置月排行榜
- 年度排行榜保持全年累積
排名計算:
- 主要依據: 學習時間 × 正確率 × 連續天數加成
- 主要依據: 遊玩關卡所獲得的經驗值
- 相同分數按學習開始時間排序
- 作弊或異常數據將被排除
- 排行榜前10名獲得特殊獎勵
```
### 🛡️ 安全與隱私

View File

@ -16,8 +16,9 @@
- **進階者** - 語言程度C1-C2精進專業溝通
#### 💰 付費用戶 (Premium User)
- **試用用戶** - 7天免費體驗期間
- **試用用戶** - 7天免費體驗訂閱期間
- **訂閱用戶** - 月費/年費訂閱會員
- **進階用戶** - 除了基礎功能,還有更多自訂學習功能可使用
- **高價值用戶** - 大量購買鑽石和道具
#### 🎯 目標導向用戶

View File

@ -64,6 +64,8 @@ https://docs.google.com/spreadsheets/d/1HiiqBKFF3cw73TNaCb0Xf3fTmg8Wefi5qVEVrXIy
時光關卡
時光關卡
依照順序挑選前階未玩過對話訓練關卡,若都玩過則隨機挑選,點選「我要挑戰」,則消耗一張時光卷

View File

@ -1,300 +0,0 @@
# 商業邏輯與營收規則
## 概述
基於實際 UI 設計,定義 Drama Ling 的遊戲化商業模式,以鑽石貨幣系統為主的道具購買機制,搭配簡潔的訂閱服務。
## 鑽石貨幣系統 (主要營收機制)
### 鑽石獲得方式
- [ ] **初始贈送**: 新用戶註冊贈送1500鑽石
- [ ] **每日登入**: 登入獎勵鑽石
- [ ] **學習成就**: 完成關卡獲得鑽石獎勵
- [ ] **現金購買**: 直接購買鑽石包
- [ ] **廣告獎勵**: 觀看廣告獲得少量鑽石
### 道具商店系統
#### 加時道具 🕰️
**功能**: 為對話訓練加時1分3秒
- [ ] **單個購買**: 1個 = 300鑽石
- [ ] **組合包**: 5個 = 1,200鑽石 (節省20%)
- [ ] **使用情境**: 挑戰關卡時間不夠時使用
- [ ] **效果**: 獲得更長的思考和組織時間
#### 補命道具 ❤️
**功能**: 為對話學習的時間卡復活1次機會
- [ ] **單個購買**: 1個 = 100鑽石
- [ ] **組合包**: 5個 = 400鑽石 (節省20%)
- [ ] **使用情境**: 對話練習失敗時使用
- [ ] **效果**: 可重新挑戰失敗的關卡
#### 時光卷 ✨ *(更新基於最新規格)*
**功能**: 可挑戰1次前階段關卡或獲得失敗安慰獎勵
- [ ] **獲得方式**:
- 詞彙認識關卡失敗獲得1張
- 詞彙熟悉關卡失敗獲得1張
- 對話訓練失敗獲得1張
- 複習詞彙失敗安慰獎勵
- [ ] **使用情境**:
- 挑戰時光關卡(前階段未玩過的對話訓練)
- 若前階段都已完成則隨機挑選關卡
- [ ] **消費機制**: 點擊「我要挑戰」消耗1張時光卷
- [ ] **特殊效果**: 成功通關的詞彙一樣加入詞彙複習清單
#### 回覆提示道具 💡 *(更新基於最新規格)*
**功能**: 當用戶在扮演角色遇到卡關,不知道該講什麼或怎麼講時提供協助
- [ ] **單個購買**: 1個 = 30鑽石
- [ ] **組合包**: 10個 = 250鑽石 (節省17%)
- [ ] **觸發條件**: 用戶主動請求回覆協助時使用
- [ ] **效果**: 根據對話室中最後一句話生成三層引導內容
**回覆引導內容** (消耗道具):
- [ ] **對方意圖分析**: 分析對方說這句話的意圖
- [ ] **回應思緒引導**: 分析用戶聽到這句話的反應及可能的回覆方向
- [ ] **回覆範例生成**: 生成一句具體的回覆範例
**免費輔助功能** (不消耗道具):
- [ ] **劇情任務範例**: 點擊任務提示按鈕顯示「這樣說可以完成任務」的範例
- [ ] **指定詞彙範例**: 展示指定詞彙的正確使用方式
- [ ] **中翻英翻譯**: 直接將使用者的中文以Google翻譯轉譯成英文
**使用規則**:
- [ ] **任務完成狀態**: 當任務已經完成時,不會顯示任務提示按鈕
- [ ] **使用限制**: 每次對話合理使用,避免過度依賴
- [ ] **學習導向**: 鼓勵用戶從輔助逐步過渡到獨立表達
## 關卡命條系統 *(新增核心機制)*
### 命條管理機制
基於最新規格的闖關生命值系統:
#### 命條基本規則
- [ ] **初始設定**: 新用戶預設5個命條上限為5
- [ ] **闖關門檻**: 開始闖關前檢查命條是否大於1
- [ ] **自動回復**: 每5小時自動獲得1個命條
- [ ] **命條歸零**: 當命條扣完歸零時即闖關失敗
#### 命條消耗規則
- [ ] **詞彙認識關卡**: 答錯題目扣除1個命條
- [ ] **詞彙熟悉關卡**: 答錯題目扣除1個命條
- [ ] **對話訓練關卡**: 通關失敗扣除1個命條
- [ ] **重複答題**: 答錯的題目需在最後重新回答,再次答錯繼續扣命條
#### 命條不足處理
- [ ] **闖關阻擋**: 命條不足時無法開始新的關卡挑戰
- [ ] **購買機制**: 命條不足時可使用鑽石購買命條
- 1個命條 = 100鑽石
- 5個命條組合包 = 400鑽石節省20%
- [ ] **等待恢復**: 用戶可選擇等待5小時自然恢復命條
- [ ] **視覺提示**: 金錢不夠時購買按鈕顯示為disable狀態
### 關卡結構系統 *(新增基於最新規格)*
基於13階段的完整學習路徑
#### 階段化學習架構
- [ ] **學習階層**: 第x階段 > 第x劇本 > 某某關卡
- [ ] **總體規劃**: 共13個學習階段
- [ ] **劇本數量**: 每階段包含20個以上劇本持續增加
- [ ] **關卡類型**: 每個劇本固定包含三種關卡
- 詞彙認識關卡
- 詞彙熟悉關卡
- 對話訓練關卡
#### 關卡解鎖機制
- [ ] **順序闖關**: 必須按照關卡順序進行,不可跳關
- [ ] **解鎖條件**: 完成前一關卡才能解鎖下一關
- [ ] **通關標準**: 即使獲得零顆星,成功通關仍會解鎖下一關
- [ ] **星級獎勵**: 詞彙認識和詞彙熟悉關卡通關直接給予三顆星
#### 連續學習獎勵
- [ ] **連續學習天數**: 追蹤用戶連續學習的天數
- [ ] **每日學習判定**: 當日完成至少一個關卡即計為學習一天
- [ ] **連續獎勵機制**: 基於連續天數給予額外獎勵
- 7天連續: 額外經驗值獎勵
- 14天連續: 免費命條補充
- 30天連續: 特殊成就徽章
## 情境對話核心商業機制 *(新增功能)*
### 雙重通關條件獎勵系統
基於最新規格的結構化通關獎勵機制:
#### 劇情任務完成獎勵
- [ ] **基礎完成獎勵**: 完成劇情任務獲得 +10 鑽石 + 10 閃電能量
- [ ] **任務品質加成**: 高品質完成劇情任務額外 +5 鑽石
- [ ] **即時獎勵機制**: 任務完成立即觸發獎勵通知和發放
- [ ] **進度追蹤獎勵**: 連續完成劇情任務的連擊獎勵機制
#### 指定詞彙使用獎勵
- [ ] **詞彙掌握獎勵**: 正確使用指定詞彙獲得 +5 鑽石 + 5 閃電能量
- [ ] **自然使用加成**: 詞彙使用自然且符合語境額外 +3 鑽石
- [ ] **即時反饋獎勵**: 使用詞彙時立即觸發成功通知
- [ ] **詞彙精通獎勵**: 單次對話使用多個指定詞彙的組合獎勵
#### 結算獎勵系統 *(更新基於最新規格)*
**過關獎勵** (同時滿足劇情任務和詞彙要求):
- [ ] **基礎通關獎勵**: 獲得金幣和經驗值
- [ ] **星級獎勵系統**: 基於三維度評分獲得1-3顆星
- 語意合適分數 > 60 (滿分100) = 1顆星
- 語法錯誤率 = 0 (所有句子正確或訂正後正確) = 1顆星
- 表達流暢平均分數 > 60 (滿分100) = 1顆星
- [ ] **訂正後獎勵**: 選擇立即訂正後獲得訂正後的獎勵數值
**失敗安慰獎勵**:
- [ ] **安慰獎**: 獲得時光卷一張(可重新挑戰關卡)
- [ ] **鼓勵機制**: 提供重新挑戰的動機和資源
### 300秒限時挑戰機制
基於最新規格的時間管理商業系統:
#### 限時挑戰入場機制
- [ ] **挑戰門票**: 參與300秒限時挑戰需消耗 50鑽石 入場費
- [ ] **免費次數**: 每日首次限時挑戰免費,後續挑戰需付費
- [ ] **VIP特權**: 付費用戶每日3次免費限時挑戰機會
- [ ] **好友邀請**: 邀請好友一同挑戰可減免入場費用
#### 時間相關道具系統
- [ ] **時間暫停道具**: 暫停倒數計時30秒消耗 100鑽石
- [ ] **時間加成道具**: 增加額外60秒挑戰時間消耗 150鑽石
- [ ] **快速完成獎勵**: 在180秒內完成獲得 +15 鑽石時間獎勵
- [ ] **壓力測試獎勵**: 在最後30秒完成挑戰獲得 +25 鑽石壓力獎勵
#### 限時結算獎勵機制
- [ ] **基礎完成獎勵**: 300秒內完成對話獲得 +30 鑽石 + 30 閃電能量
- [ ] **時間效率獎勵**: 基於完成時間給予 1.2x - 2.0x 獎勵倍數
- [ ] **雙重條件加成**: 限時環境下達成雙重條件額外 +50 鑽石
- [ ] **排行榜獎勵**: 每週限時挑戰排行榜前10名特殊獎勵
## 簡化訂閱系統 (次要營收)
### 訂閱服務設計
- [ ] **7天免費體驗**: 新用戶可免費使用7天完整功能
- [ ] **目標**: 與靈兔一起闖關學英文,玩出一口流利的口說英文
- [ ] **成功頁面**: 可愛外星人角色設計增加親切感
- [ ] **續約提醒**: "還在等什麼先來7天免費體驗看看"
### 資源不足機制
- [ ] **提醒彈窗**: "任務提示需要消耗30資石但你目前資石不足"
- [ ] **引導購買**: 直接引導用戶到道具商店
- [ ] **清楚的需求說明**: 顯示具體需要的資源數量
- [ ] **一鍵解決**: 提供"了解"按鈕引導至購買頁面
## 道具購買流程設計
### 購買確認機制
#### 加時道具購買確認
- [ ] **視覺化設計**: 大型時鐘圖示加上加號圖示
- [ ] **清楚的價值說明**: "用加時道具去玩出更高的分數吧!"
- [ ] **遊戲化設計**: 對話式的遊戲要求,而非單純交易
- [ ] **即時購買**: "立即購買 300鑽石"按鈕
- [ ] **取消選項**: 簡單的"不,謝謝"選項
#### 補命道具購買確認
- [ ] **心形圖示**: 愛心加號的視覺設計
- [ ] **功能說明**: 明確告知為學習時間復活用途
- [ ] **價格透明**: 直接顯示100鑽石的明確價格
- [ ] **低價格策略**: 相對低廉的價格降低購買的障礙感
#### 回覆提示道具購買確認
- [ ] **燈泡圖示**: 智慧提示的視覺設計
- [ ] **功能說明**: "獲得AI智慧引導突破對話卡關"
- [ ] **價格透明**: 直接顯示30鑽石的低門檻價格
- [ ] **價值展示**: 強調包含四合一功能(意圖分析+思維引導+回覆範例+翻譯)
- [ ] **即時解決**: "立即獲得對話靈感"的行動導向按鈕
- [ ] **低價策略**: 最低價道具降低首次付費心理障礙
### 購買成功機制
- [ ] **即時生效**: 購買後立即可在遊戲中使用
- [ ] **清楚的庫存顯示**: 在主界面右上角顯示目前鑽石數量(1500)
- [ ] **使用指引**: 在需要使用道具時提供明確的使用方式
## 訂閱成功體驗設計
### 成功頁面設計理念
- [ ] **可愛風格**: 使用外星人角色創造親切感
- [ ] **清楚的價值主張**: "和靈兔一起闖關學英文!玩出一口流利的口說英文!"
- [ ] **緊迫性設計**: "還在等什麼先來7天免費體驗看看"
- [ ] **行動導向**: 大型明顯的CTA按鈕"領取7天體驗資格"
### 用戶心理設計
- [ ] **降低抵觸**: 免費體驗降低初次購買的心理障礙
- [ ] **社交證明**: 使用外星人形象增加記憶點
- [ ] **成就感**: 體驗成功的成就感與滿意度
- [ ] **持續動機**: 透過可愛設計建立情感連結
## 鑽石購買套餐設計
### 推薦套餐結構
- [ ] **新手包**: 500鑽石 = NT$30 (首次購買優惠)
- [ ] **基礎包**: 1,200鑽石 = NT$60
- [ ] **價值包**: 2,500鑽石 = NT$99 (最受歡迎)
- [ ] **豪華包**: 5,000鑽石 = NT$190
- [ ] **至尊包**: 12,000鑽石 = NT$390
### 定價策略考量
- [ ] **低門檻**: NT$30的新手包降低進入的障礙
- [ ] **價值感**: 每1鑽石約NT$0.04的合理價格
- [ ] **組合購買優惠**: 5個裝比單購節省20-25%
- [ ] **心理定位**: 道具價格設定在100-1200鑽石區間
## 付費轉換優化
### 轉換漏斗設計
- [ ] **無縫體驗**: 從免費使用到需要購買的自然過渡
- [ ] **第一次付費**: 通常為最低價的道具(回覆提示道具30鑽石)
- [ ] **漸進式需求**:
- **入門級**: 回覆提示道具(30鑽石) - 解決即時卡關問題
- **成長級**: 限時挑戰門票(50鑽石) - 體驗競技式學習
- **進階級**: 補命道具(100鑽石) - 提供重新挑戰機會
- **專家級**: 時間相關道具(100-150鑽石) - 優化限時挑戰表現
- **大師級**: 加時道具(300鑽石) - 獲得更充裕練習時間
- [ ] **成就動機**: 通過道具使用獲得更好成績和雙重通關的成就感
- [ ] **學習進步感**: 回覆提示功能和即時獎勵讓用戶感受到明顯的學習支援
- [ ] **競技驅動**: 300秒限時挑戰創造緊張感和競爭動機
- [ ] **社交壓力**: 好友排行榜和限時挑戰排名驅動持續消費
## 簡化廣告系統
### 廣告展示策略
- [ ] **非強制性**: 主要用於獲得額外鑽石獎勵
- [ ] **獎勵導向**: 觀看廣告獲得25-50鑽石
- [ ] **頻率控制**: 避免影響核心遊戲體驗
- [ ] **品質篩選**: 優先顯示教育和遊戲相關廣告
## 技術實現考量
### 支付系統整合
- [ ] **第三方支付串接**: 整合多種支付方式API
- [ ] **交易安全**: PCI DSS合規的支付安全機制
- [ ] **即時到帳**: 購買後立即可使用的鑽石發放
- [ ] **退款處理**: 簡化的退款處理流程
### 道具系統管理
- [ ] **即時庫存**: 即時更新用戶鑽石和道具庫存
- [ ] **使用追蹤**: 追蹤道具使用情況和效果
- [ ] **防作弊機制**: 防止道具被不正當獲得或使用
- [ ] **數據分析**: 道具使用率和購買轉換率分析
---
## 關鍵差異與實際設計對齊
### 與原規劃的主要不同
1. **簡化商業模式**: 從複雜的4層訂閱制改為鑽石道具+簡單訂閱
2. **遊戲化貨幣**: 使用鑽石取代直接台幣定價
3. **低門檻策略**: 最低100鑽石的道具降低付費門檻
4. **視覺化購買**: 可愛的確認彈窗而非複雜的訂閱頁面
5. **即時獎勵**: 購買後立即可用,增加滿足感
### 實際應用案例
- **道具商店頁面**: 清楚的分類和價格顯示
- **購買確認彈窗**: 遊戲化的對話式確認
- **資源不足提醒**: 直接引導到解決方案
- **訂閱成功頁**: 可愛外星人增加品牌親和力
---
**最後更新**: 2024年9月5日
**基於實際設計**: 05_views 目錄中的商業相關UI設計
**審查週期**: 與實際UI設計保持同步更新

View File

@ -0,0 +1,425 @@
# AI 對話分析算法規格
## 概述
定義 Drama Ling 應用中 AI 對話分析系統的具體實現方案,整合語法評分與共用的口說評分、語用分析模組。
## 共用模組引用
本規格依賴以下共用模組,請參閱對應規格文件:
- **[口說評分系統](./speaking-evaluation-specs.md)** - 五維度口說表達評估
- **[語用分析系統](./pragmatic-analysis-specs.md)** - 六維語用標準建議系統
## 核心評分維度
基於 UI_LevelResult_ScoreSummary.png 的實際設計,採用三維對話評估指標顯示:
### 三維對話評估系統
**目標**: 提供清楚的學習反饋,觸發對應成就獎勵
#### 三維對話評分指標
- [ ] **語法評分**: 評估語法正確性
- 所有對話皆正確時即為完美表現,若有藉由錯誤訂正功能將全部錯誤訂正完畢,則一樣給予完美表現
- 獲得完美表現則過關獎勵雙倍
- 過關獎勵: +1 鑽石 + 10 XP
- [ ] **口說評分**: 評估口說表現的自然度和流暢性
- 詳細規格請參閱 → **[口說評分系統規格](./speaking-evaluation-specs.md)**
- [ ] **語用分析**: 評估內容理解和表達適切性(只建議,不評分)
- 詳細規格請參閱 → **[語用分析系統規格](./pragmatic-analysis-specs.md)**
#### 技術實現方案
- [ ] **AI 模型選擇**: 待決定 (GPT-4/Claude/自建模型)
- [ ] **即時分析**: 目標響應時間 < 2秒
- [ ] **成就觸發機制**: 於遊戲結束時,自動檢測並發放對應獎勵
## AI 對話分析功能
### 即時分析機制
基於最新規格的詳細分析系統:
- [ ] **每句話即時分析**: 用戶說出的每句話都進行即時判斷
- 語法正確性分析(即時顯示於對話功能欄)
- 口說評分(即時顯示於對話功能欄)→ 使用 [口說評分系統](./speaking-evaluation-specs.md)
- 任務完成狀態檢測
- 指定詞彙使用檢測
- [ ] **即時成功通知**: 當用戶提及詞彙或完成任務時立即回饋
## 情境對話核心系統
### 情境對話通關檢測系統 *(核心功能)*
基於最新規格的結構化通關和評分機制:
#### 劇情任務識別系統
##### 意圖表達任務機制
每個劇本包含多個**情境意圖表達任務**,玩家需要在對話中適切地表達出指定意圖:
**三級完成標準**
- 🔴 **未完成** (0%) - 完全沒有表達該意圖
- 🟡 **部分完成** (50%) - 有表達意圖但不夠清楚或完整
- 🟢 **完美完成** (100%) - 清楚、自然地表達了該意圖
**⭐ 任務星獲得條件**:當劇本中**所有意圖任務都達到完美完成**時獲得任務星
##### 技術實現
- [ ] **任務目標解析**:
- 解析每個劇本的具體意圖表達要求
- 定義每個意圖的完成判定標準
- 例如:"預約餐廳" → 必須包含時間、人數、聯絡方式等要素
- [ ] **意圖完成度評估**:
- AI即時分析用戶對話是否達成意圖目標
- 按三級標準評估完成程度 (未完成/部分完成/完美完成)
- 即時顯示任務進度給用戶參考
- [ ] **任務進度追蹤及即時反饋機制**:
- 即時監控所有意圖任務的完成狀態
- 當任務達成時觸發即時成功通知
- 記錄每個任務的完成品質評分
#### 指定詞彙檢測系統
- [ ] **詞彙識別引擎**:
- 精準識別用戶是否使用指定的關鍵詞彙
- 支援詞彙的不同變化形式(單複數、時態等)
- 處理同義詞和相關變體的檢測
- [ ] **即時反饋機制**:
- 使用詞彙時立即觸發成功通知
- 提供詞彙使用品質的評分
- 記錄詞彙掌握程度的學習數據
### 回覆卡關輔助系統
#### 回覆協助功能 (消耗寶石)
**觸發時機**: 用戶在扮演角色遇到卡關,不知道該講什麼或怎麼講時
**三層引導內容**:
- [ ] **對方意圖分析**: 根據對話室中最後一句話,分析對方說這句話的意圖
- [ ] **回應思緒引導**: 分析用戶聽到這句話的反應及可能的回覆方向
- [ ] **回覆範例生成**: 生成一句具體的回覆範例
#### 任務輔助功能 (免費)
- [ ] **劇情任務範例**:
- 點擊任務提示按鈕後,先跳出警示,確認後即顯示一句範例
- 說明「這樣說可以完成任務」
- 當任務已完成時不顯示此按鈕
- 完全免費,不消耗任何道具
- 使用後,當前任務將不會獲得「⭐ 任務星」
- [ ] **指定詞彙範例**:
- 展示指定詞彙的正確使用方式
- 提供詞彙在不同語境下的使用示例
- 包含詞彙變化形式的學習支援
### 中翻英輔助功能
- [ ] **Google翻譯整合**: 直接將使用者的中文以Google翻譯轉譯成英文 (訂閱用戶)
- [ ] **情境翻譯優化**: AI分析對話情境後調整翻譯結果 (進階用戶)
- 根據角色身份調整語氣 (正式/非正式/友善/專業)
- 考慮文化背景提供更自然的表達方式
- 修正直譯問題,提供更符合英語習慣的說法
- 例如:「不好意思」→ 商務場合「I apologize」vs 日常「Sorry」
### 語音處理系統
- [ ] **語音轉文字**: 以語音輸入為主,文字輸入為輔的對話方式
- [ ] **中文檢測**: 當用戶講中文或輸入中文時,角色表示聽不懂
- [ ] **語音品質檢測**: 如果聽不到聲音,顯示「抱歉,好像沒有聲音,請重新錄製」
- [ ] **口說表現分析**: 整合 [口說評分系統](./speaking-evaluation-specs.md) 進行分析
## 闖關學習系統整合 *(重構為四關線性闖關)*
本AI算法系統整合到 [線性闖關學習系統](./progressive-stage-system.md) 的四關架構中。
### 四關AI算法支援
#### 第1關詞彙學習 (Vocabulary Learning)
基於詞彙認知的AI輔助學習機制
- [ ] **詞彙展示功能**:
- 顯示詞彙本身、詞義、例句和示意圖
- 協助用戶初步記住詞彙的核心資訊
- 為後續關卡做準備
- [ ] **詞彙選擇題**:
- 根據示意圖選出正確的英文詞彙
- 4選1的單選題形式
- 答錯時,將題目在最後重新測試
- [ ] **通關機制**: 所有詞彙題目都答對才算通關自動獲得3顆星解鎖第2關
#### 第2關詞彙熟悉 (Vocabulary Mastery)
基於語境應用的AI練習系統
- [ ] **例句重組功能**:
- 從單字選取區點選組出示意圖的原句
- 訓練詞彙在語境中的使用能力
- 強化語法結構理解
- [ ] **詞彙配對功能**:
- 左邊示意圖與右邊詞彙進行配對
- 全部配對正確才算完成
- 提升詞彙識別和記憶連結
- [ ] **通關機制**: 所有配對和重組正確才算通關自動獲得3顆星解鎖第3關
#### 第2+關:口說練習特別關卡 (Speaking Practice Bonus)
基於 [口說評分系統](./speaking-evaluation-specs.md) 的付費訓練關卡:
**關卡機制**
- [ ] **付費模式**: 消耗5鑽石開始遊戲
- [ ] **特別機制**: 唯一可跳過的關卡,不影響主線闖關進度
- [ ] **關卡流程**: 逐一展示詞彙例句,用戶需朗讀每個例句
- [ ] **五維即時評分**: 發音/流暢度/韻律/完整度/準確度即時評估
**通關與獎勵**
- [ ] **通關條件**: 所有詞彙例句平均分數達到70分以上
- [ ] **星級與獎勵機制**:
- 70-79分1星獲得1鑽石 + 10 XP (回收部分成本)
- 80-89分2星獲得3鑽石 + 10 XP (略有虧損但有進步)
- 90-100分3星獲得5鑽石 + 20 XP (獲利且大幅經驗值)
- [ ] **解鎖效果**: 通關後解鎖第3關
**AI學習支援**
- [ ] **發音精進**: 針對特定詞彙的精確發音訓練
- [ ] **記憶強化**: 透過語音輸出深化詞彙印象
- [ ] **個性化反饋**: 每個詞彙提供詳細的發音改善建議
#### 第3關情境對話 (Situational Dialogue)
基於AI對話分析的綜合應用關卡
**關卡機制**
- [ ] **免費模式**: 免費進入失敗扣1命條
- [ ] **AI角色對話**: 與AI角色進行劇本情境對話
- [ ] **雙重任務系統**: 完成劇情意圖 + 使用前三關學習的5個指定詞彙
**通關與星級系統**
- [ ] **基本通關**: 所有意圖任務≥50%完成 + 所有詞彙至少提及一次
- [ ] **三星評分標準**:
- ⭐ 任務星所有意圖任務100%完成
- ⭐ 語法星:語法錯誤率 = 0
- ⭐ 口說星:口說平均分數 > 80
- [ ] **解鎖效果**: 通關後解鎖下一劇本第1關
**AI分析支援**
- [ ] **即時分析**: 語法、口說、任務完成三維度即時分析
- [ ] **語用建議**: 使用 [語用分析系統](./pragmatic-analysis-specs.md) 提供學習建議
- [ ] **回覆輔助**: 三層引導內容 (對方意圖分析/回應思緒引導/回覆範例生成)
### 共用詞彙設計標準
四關共用的詞彙組合設計:
- [ ] **詞彙組合**: 每個劇本包含5個詞彙
- 3個常用單字
- 1個常用片語
- 1個常用俚語
- [ ] **詞彙範例結構**:
- 買菜小冒險: market, vegetables, price + "ask for a discount" + "a steal"
- 遲到的咖啡約會: coffee, late, apologize + "run into traffic" + "my bad"
- 失而復得的手機: phone, lost, find + "look around for" + "lucky break"
### 間隔複習系統 *(Spaced Repetition)*
基於遺忘曲線的智慧複習機制:
#### 複習清單管理
- [ ] **自動加入機制**:
- 詞彙認識、詞彙熟悉、對話訓練通關後自動加入詞彙
- 避免重複加入已存在的詞彙
- 維護個人化的複習詞彙庫
- [ ] **複習時機計算**:
- 下次複習時間 = 當日 + (2^複習次數)
- 首次加入當日即為第一次複習時間
- 例如3/4學習 → 3/6複習 → 3/10複習 → 3/18複習
#### 每日複習排程
- [ ] **待複習詞彙判定**:
- 複習日期為當日或已過期的詞彙
- 未準時複習的詞彙持續標記為待複習
- 延遲複習時重新計算下次複習時間
- [ ] **複習關卡執行**:
- 以「詞彙熟悉」關卡形式進行複習
- 答錯題目複製到當前最後一題
- 直到所有題目都答對才完成複習
#### 進度保存機制
- [ ] **中途離開處理**:
- 保留用戶當前複習進度和狀態
- 再次進入時繼續上次未完成的複習
- [ ] **完成獎勵機制**:
- 全部複習完成後給予經驗值獎勵
- 更新詞彙複習次數和下次複習時間
- 強化學習動機和持續性
## 情境對話關卡結算系統 *(專屬於情境對話訓練)*
### 情境對話關卡表現結算
**觸發時機**:
- 當劇本時間用完
- 任務已完成後,使用者自行離開
- 任務未完成,使用者自行離開不會觸發關卡表現結算
#### 情境對話過關判斷標準
- [ ] **基本通關條件**:
- 所有意圖任務至少達到🟡部分完成(50%)
- 所有指定詞彙至少被提及一次
- **過關標準**: 完成基本對話要求,可獲得通關獎勵
- [ ] **星星獲得條件**:
- 依據上述三星評分標準 (任務星/語法星/口說星)
- 每顆星星獨立計算玩家可獲得0-3顆星星
#### 情境對話表現評分系統
##### 星星獲得標準 ⭐
每達成一項條件即可獲得一顆星最多3顆星
- [ ] **⭐ 任務星** - **所有意圖任務完美完成**
- 劇本中每個意圖表達任務都達到🟢完美完成(100%)
- 玩家成功在對話中自然表達出所有指定意圖
- **獲得條件**: 所有意圖任務完成度 = 100%
- [ ] **⭐ 語法星** - **語法錯誤率 = 0**
- 用戶說的每句話經過語法判定都正確
- 或者透過訂正功能將全部錯誤訂正完畢亦可
- **獲得條件**: 完全無語法錯誤
- [ ] **⭐ 口說星** - **口說評分 > 80** (滿分100)
- 使用 [口說評分系統](./speaking-evaluation-specs.md) 評估
- 計算用戶所有句子的口說平均分數
- **獲得條件**: 口說平均分數超過80分
##### 學習建議系統 💡
不影響星星獲得,僅提供改善建議:
- [ ] **💡 語用建議** - **對話語用分析**
- 使用 [語用分析系統](./pragmatic-analysis-specs.md) 分析
- 提供六維語用標準的具體改善建議
- **用途**: 幫助用戶理解更自然的溝通方式
### 情境對話結算流程系統
#### 過關流程
- [ ] **成功宣告**: 恭喜過關訊息
- [ ] **表現結算**: 顯示詳細評分和星級
- [ ] **訂正選擇**:
- 如果點擊「立即訂正」→ 執行訂正流程 → 完成後領取訂正後獎勵
- 如果點擊「不訂正」→ 直接領獎
- [ ] **獎勵發放**: 領取通關獎勵
#### 失敗流程
- [ ] **失敗宣告**: 顯示失敗原因
- [ ] **安慰獎勵**: 領取時光卷一張
### 情境對話AI訂正系統
#### 語法錯誤訂正
- [ ] **錯誤收集**: 系統收集該劇本對話中所有語法錯誤的句子
- [ ] **依序訂正**: 讓用戶依序對每個錯誤句子進行訂正
- [ ] **進度追蹤**: 分子=訂正次數,分母=語法錯誤句數+表達不順句數
- [ ] **語音練習**: 點擊練習按鈕後播放說話動畫,再次點擊送出錄音
- [ ] **結果反饋**: 檢查完成後回饋正確或錯誤
#### 口說錯誤訂正
- [ ] **口說評估**: 使用 [口說評分系統](./speaking-evaluation-specs.md) 進行評估
- [ ] **口說錯誤收集**: 收集口說錯誤的句子進行訂正
- [ ] **語音重錄**: 使用語音方式重新錄製和練習
- [ ] **品質提升**: 透過重複練習提升口說表現
### 技術實現重點
- [ ] **快速響應**: 優先保證系統響應速度
- [ ] **準確評估**: 確保評分的一致性和準確性
- [ ] **獎勵整合**: 與遊戲化系統無縫整合
## 技術架構設計
### 核心技術需求 *(更新基於最新規格)*
- [ ] **AI 服務選擇**: 確定主要 AI 模型供應商
- [ ] **語法評分算法**: 建立語法正確性評分的具體邏輯
- [ ] **雙重檢測引擎**: 實現劇情任務和詞彙檢測的AI系統
- [ ] **即時反饋系統**: 任務完成和詞彙使用的立即通知機制
- [ ] **回覆輔助引擎**: 實現意圖分析和回應引導的AI模型
- [ ] **翻譯服務整合**: Google翻譯API的無縫整合
- [ ] **限時系統整合**: 300秒計時和結算觸發機制
- [ ] **訂正系統AI**: 語法錯誤和表達流暢度的訂正引擎
- [ ] **成就系統整合**: 自動觸發獎勵機制
- [ ] **性能優化**: 確保響應時間 < 2秒
- [ ] **共用模組整合**:
- 整合 [口說評分系統](./speaking-evaluation-specs.md)
- 整合 [語用分析系統](./pragmatic-analysis-specs.md)
### 數據來源架構 *(新增基於最新規格)*
#### 預先準備的數據 (事前手動生成)
- [ ] **開場對話**: 包含場景描述的4-8句開場對話
- [ ] **任務定義**: 中文描述、完成範例、範例翻譯
- [ ] **詞彙數據**: 包含翻譯、圖片、題庫等完整詞彙資料
- [ ] **劇情大綱**: 完整的劇本背景和角色設定
- [ ] **獎勵設定**: 關卡經驗值獎勵、寶石獎勷、訂正後獎勵數目
#### 即時生成的數據 (關卡進行當下)
- [ ] **AI角色對話**: 基於劇情和用戶回應的AI動態生成
- [ ] **用戶對話**: 語音轉文字後存入資料庫
- [ ] **語法錯誤評估**: AI即時分析每句話的語法正確性
- [ ] **語意合適度評估**: AI評估對話的語境適應性
- [ ] **任務完成評估**: AI判斷劇情任務的完成狀態
- [ ] **口說分析**: 使用 [口說評分系統](./speaking-evaluation-specs.md) 分析
- [ ] **語用建議**: 使用 [語用分析系統](./pragmatic-analysis-specs.md) 生成建議
- [ ] **回覆引導**: AI生成的三層輔助內容
- [ ] **對話翻譯**: Google翻譯提供的中翻英服務
#### 詞彙檢測系統
- [ ] **詞彙變化形式**: 資料庫儲存詞彙所有型態供模糊比對
- 例如eat, ate, eats, eaten
- [ ] **即時比對機制**: 每次對話結束後進行模糊比對
- [ ] **語境適配**: 確保詞彙使用的自然性和合理性
### 情境對話技術架構 *(新增)*
- [ ] **劇情解析引擎**: 理解和追蹤劇本任務的完成狀態
- [ ] **詞彙監控系統**: 即時檢測指定詞彙的使用情況
- [ ] **雙重成功判定**: 同時滿足劇情任務和詞彙要求的邏輯
- [ ] **時間管理核心**: 精確的300秒倒數計時系統
### 回覆輔助技術架構
- [ ] **意圖識別模型**: 基於context理解對方話語意圖
- [ ] **回應策略生成**: 提供多元化的回應思路建議
- [ ] **範例生成算法**: 根據使用者等級生成適當的回覆範例
- [ ] **情境適應性**: 確保建議符合對話場景和文化背景
### 基本品質控制
- [ ] **準確性測試**: 驗證評分結果的一致性
- [ ] **用戶體驗**: 確保獎勵系統運作順暢
- [ ] **資料隱私**: 基本的用戶資料保護
---
## 待完成任務
### 高優先級 *(更新基於最新規格)*
1. [ ] 建立每句話的即時分析系統(語法、任務、詞彙三重檢測)
2. [ ] 實現劇情任務完成狀態的AI檢測引擎
3. [ ] 建立指定詞彙模糊比對系統(支援詞彙變化形式)
4. [ ] 開發詞彙學習關卡系統(詞彙認識和詞彙熟悉)
5. [ ] 實現間隔複習算法2^複習次數的遺忘曲線計算)
6. [ ] 開發即時成功通知機制(任務完成和詞彙使用立即反饋)
7. [ ] 實現三維度結算評分系統語意60+、語法0錯、流暢60+
8. [ ] 建立語音轉文字和中文檢測系統
9. [ ] 整合共用模組:口說評分系統和語用分析系統
10. [ ] 開發回覆輔助的三層引導AI意圖分析、思緒引導、範例生成
### 中優先級
1. [ ] 建立雙重通關條件的邏輯驗證系統
2. [ ] 優化時間壓力下的AI分析準確性
3. [ ] 設計三類輔助工具的智能推薦機制
4. [ ] 建立意圖分析模型的準確性測試
5. [ ] 優化回覆範例生成的品質控制
6. [ ] 建立評分一致性的測試機制
7. [ ] 優化與遊戲化系統的整合
8. [ ] 確保基本的資料隱私保護
### 新增功能優先級
1. [ ] 設計劇情任務的複雜度分級系統
2. [ ] 建立指定詞彙的學習進度追蹤
3. [ ] 優化限時環境下的用戶體驗
4. [ ] 設計回覆卡關的觸發時機和條件
5. [ ] 建立輔助功能使用的數據追蹤
6. [ ] 優化中翻英結果的情境適應性
7. [ ] 設計輔助功能的學習成效測量
---
**最後更新**: 2025-09-11 - 重構:拆分共用模組並建立引用機制
**版本**: 2.0 - 模組化版本:整合口說評分和語用分析共用模組
**維護者**: Drama Ling 開發團隊

View File

@ -13,79 +13,300 @@
### 基本規則
- **初始命條**: 新用戶獲得5個命條
- **最大命條**: 普通用戶5個訂閱用戶10個
- **恢復機制**: 每30分鐘自動恢復1個命條
- **命條消耗**: 答錯題目扣除1個命條
- **最大命條**:
- 免費用戶: 5個
- 訂閱用戶: 30個
- 進階用戶: 50個
- **恢復機制**:
- 免費用戶: 每5小時自動恢復1個命條
- 訂閱用戶: 每小時自動恢復3個命條
- 進階用戶: 每小時自動恢復5個命條
- **命條消耗**: 1、2、3關啟動時消耗命條(第2+關不消耗)
### 消耗場景
| 場景 | 命條消耗 | 說明 |
|------|----------|------|
| 答錯選擇題 | 1個 | 詞彙學習、對話練習 |
| 跳過題目 | 1個 | 視為答錯處理 |
| 對話失敗 | 2個 | 情境對話完全失敗 |
| 挑戰失敗 | 3個 | 特殊挑戰任務失敗 |
### 消耗場景 (四關闖關系統)
| 場景 | 命條消耗 | 說明 |
| -------------- | -------- | ---------------------------- |
| 第1關詞彙學習 | 1個 | 啟動關卡時消耗,無論答對答錯 |
| 第2關詞彙熟悉 | 1個 | 啟動關卡時消耗,無論答對答錯 |
| 第2+關:口說練習特別關卡 | 0個 | 付費關卡,不消耗命條 |
| 第3關情境對話 | 1個 | 啟動關卡時消耗,無論成功失敗 |
| 對話有辱罵情形 | 3個 | 額外扣除懲罰 |
### 獲得命條方式
- **自動恢復**: 每30分鐘恢復1個
- **自動恢復**: 依用戶等級不同恢復速度(見上方基本規則)
- **廣告觀看**: 觀看廣告恢復1個命條 (每日3次)
- **道具購買**: 使用鑽石購買命條補充包
- **訂閱獎勵**: 訂閱用戶命條上限提升至10個
## 💎 經濟系統 (Economy System)
## 💰 付費與虛擬貨幣系統
### 貨幣類型
### 💎 鑽石購買與管理規則
#### BR-PAY-01: 鑽石購買規則
```yaml
規則名稱: 虛擬貨幣交易規則
適用範圍: 所有鑽石購買交易
技術實現:
- 鑽石最小購買單位為100顆
- 單次購買上限為10000顆
- 24小時內購買總額不超過1000美金等值
- 未成年用戶需要監護人授權
支付處理:
- 支援Apple Pay、Google Pay、信用卡
- 交易記錄完整保存
- 實時風險評估和反欺詐檢測
退款政策:
- 購買後24小時內可申請退款
- 已使用的鑽石不予退還
- 退款處理時間為3-7個工作日
- 惡意退款用戶將被列入黑名單
購買套餐:
- 新手包: 500鑽石 = NT$30 (首次購買優惠)
- 基礎包: 1,200鑽石 = NT$60
- 價值包: 2,500鑽石 = NT$99 (最受歡迎)
- 豪華包: 5,000鑽石 = NT$190
- 至尊包: 12,000鑽石 = NT$390
```
#### BR-PAY-02: 鑽石消費規則
```yaml
規則名稱: 虛擬貨幣使用限制
適用範圍: 所有鑽石消費行為
技術實現:
- 鑽石只能用於平台內購買
- 不可轉讓給其他用戶
- 不可兌換現金
- 帳戶停用後鑽石餘額凍結
消費順序:
1. 優先使用即將到期的鑽石
2. 按照獲得時間先進先出
3. 贈送鑽石優先於購買鑽石使用
獲得方式:
- 初始贈送: 新用戶註冊贈送1500鑽石
- 每日登入: 登入獎勵鑽石
- 學習成就: 完成關卡獲得鑽石獎勵
- 現金購買: 直接購買鑽石包
- 廣告獎勵: 觀看廣告獲得25-50鑽石
```
#### BR-PAY-03: 道具商店系統
```yaml
規則名稱: 遊戲內道具購買機制
適用範圍: 所有道具消費行為
道具定價:
- 回覆提示道具: 30鑽石/個250鑽石/10個包 (節省17%)
- 補命道具: 100鑽石/個400鑽石/5個包 (節省20%)
- 加時道具: 300鑽石/個1200鑽石/5個包 (節省20%)
- 時間暫停道具: 100鑽石/個 (限時挑戰專用)
- 時間加成道具: 150鑽石/個 (限時挑戰專用)
- 限時挑戰門票: 50鑽石/次 (首次每日免費)
道具功能:
- 回覆提示道具: 提供AI智慧對話引導包含四合一功能 (消耗5鑽石/次使用)
* 對方意圖分析: 分析對方說話意圖
* 回應思緒引導: 分析用戶反應及可能回覆方向
* 回覆範例生成: 生成具體回覆範例
* 翻譯功能: 中文轉英文翻譯輔助
- 補命道具: 對話學習失敗時復活機會,重新挑戰失敗關卡
- 加時道具: 對話訓練增加1分3秒思考時間提升成績表現
- 時光卷: 失敗安慰獎勵,可重新挑戰前階段關卡或隨機挑選
* 獲得方式: 詞彙認識/熟悉關卡失敗、對話訓練失敗
* 使用機制: 點擊「我要挑戰」消耗1張時光卷
- 時間管理道具組:
* 時間暫停道具: 限時挑戰中暫停倒數計時30秒
* 時間加成道具: 限時挑戰中增加額外60秒挑戰時間
免費輔助功能:
- 劇情任務範例: 點擊任務提示顯示完成範例
- 指定詞彙範例: 展示詞彙正確使用方式
- Google翻譯: 直接中文轉英文翻譯
```
#### BR-PAY-04: 訂閱服務規則
```yaml
規則名稱: 簡化訂閱服務設計
適用範圍: 所有訂閱用戶
訂閱服務設計:
- 7天免費體驗: 新用戶可免費使用完整功能【7天
- 目標: 與靈兔一起闖關學英文,玩出一口流利的口說英文
- 成功頁面: 可愛外星人角色設計增加親切感
- 續約提醒: "還在等什麼先來7天免費體驗看看"
資源不足機制:
- 提醒彈窗: "任務提示需要消耗資石,但你目前資石不足"
- 引導購買: 直接引導用戶到道具商店
- 清楚的需求說明: 顯示具體需要的資源數量
- 一鍵解決: 提供"了解"按鈕引導至購買頁面
權益管理:
- 訂閱期間享有所有付費功能
- VIP特權: 每日3次免費限時挑戰機會
- 命條優惠: 訂閱用戶命條上限30個、每小時恢復3個命條
- 完整記錄保存: 暫停或取消訂閱後學習資料保留
```
#### BR-PAY-05: 道具購買流程設計
```yaml
規則名稱: 道具購買確認和体驗設計
適用範圍: 所有道具購買流程
加時道具購買確認:
- 視覺化設計: 大型時鐘圖示加上加號圖示
- 清楚的價值說明: "用加時道具去玩出更高的分數吧!"
- 遊戲化設計: 對話式的遊戲要求,而非單純交易
- 即時購買: "立即購買 300鑽石"按鈕
- 取消選項: 簡單的"不,謝謝"選項
補命道具購買確認:
- 心形圖示: 愛心加號的視覺設計
- 功能說明: 明確告知為學習時間復活用途
- 價格透明: 直接顯示100鑽石的明確價格
- 低價格策略: 相對低廉的價格降低購買的障礙感
回覆提示道具購買確認:
- 燈泡圖示: 智慧提示的視覺設計
- 功能說明: "獲得AI智慧引導突破對話卡關"
- 價格透明: 直接顯示30鑽石的低門檻價格
- 價值展示: 強調包含四合一功能(意圖分析+思維引導+回覆範例+翻譯)
- 即時解決: "立即獲得對話靈感"的行動導向按鈕
- 低價策略: 最低價道具降低首次付費心理障礙
購買成功機制:
- 即時生效: 購買後立即可在遊戲中使用
- 清楚的庫存顯示: 在主界面右上角顯示目前鑽石數量
- 使用指引: 在需要使用道具時提供明確的使用方式
```
#### BR-PAY-06: 付費轉換優化系統
```yaml
規則名稱: 漸進式付費轉換機制
適用範圍: 全平台付費流程
轉換漏斗設計:
- 無縫體驗: 從免費使用到需要購買的自然過渡
- 第一次付費: 通常為最低價的道具(回覆提示道具30鑽石)
- 漸進式需求:
* 入門級: 回覆提示道具(30鑽石) - 解決即時卡關問題
* 成長級: 限時挑戰門票(50鑽石) - 體驗競技式學習
* 進階級: 補命道具(100鑽石) - 提供重新挑戰機會
* 專家級: 時間相關道具(100-150鑽石) - 優化限時挑戰表現
* 大師級: 加時道具(300鑽石) - 獲得更充裕練習時間
動機設計:
- 成就動機: 通過道具使用獲得更好成績和雙重通關的成就感
- 學習進步感: 回覆提示功能和即時獎勵讓用戶感受到明顯的學習支援
- 競技驅動: 300秒限時挑戰創造緊張感和競爭動機
- 社交壓力: 好友排行榜和限時挑戰排名驅動持續消費
```
### 💎 經濟系統概覽
#### 貨幣類型
1. **鑽石 (Diamonds)**: 高級貨幣,可購買道具和服務
2. **經驗值 (XP)**: 學習進度貨幣,用於解鎖內容
3. **學習幣 (Learning Coins)**: 日常活動貨幣,購買基礎道具
2. **經驗值 (XP)**: 學習進度貨幣,用於解鎖內容,達成成就,達成任務,排行榜排名依據
### 經驗值獲得規則
| 活動類型 | 經驗值獲得 | 條件 |
|----------|------------|------|
| 完成詞彙學習 | 50-100 XP | 根據準確率調整 |
| 完成對話練習 | 100-200 XP | 根據對話質量調整 |
| 連續學習 | 額外20% XP | 連續學習天數獎勵 |
| 完美通關 | 雙倍 XP | 全部答對且用時短 |
| 每日任務 | 50 XP | 完成每日學習目標 |
#### 經驗值與閃電能量獲得規則
| 活動類型 | 經驗值獲得 | XP | 條件 |
| ------------ | ---------- | ----- | -------------------------------- |
| 完成詞彙學習 | 100 XP | 5 | 根據準確率調整 |
| 完成對話練習 | 200 XP | 10-30 | 根據對話質量和雙重通關條件調整 |
| 連續學習 | 額外20% XP | 額外5 | 連續學習天數獎勵 |
| 完美通關 | 50 XP | 10 | 全部答對 |
| 劇情任務完成 | - | 10 | 完成對話劇情任務 |
| 指定詞彙使用 | - | 5-8 | 正確使用指定詞彙,自然使用有加成 |
| 每日任務 | 50 XP | 5 | 完成任務 |
### 鑽石獲得與消費
#### 鑽石獲得與消費
**獲得方式**:
- 初始贈送: 新用戶註冊贈送300鑽石
- 每日登入獎勵: 2鑽石
- 完成成就: 10-50鑽石
- 觀看廣告: 1鑽石 (每日5次)
- 觀看廣告: 25-50鑽石 (每日5次)
- 學習成就: 完成關卡獲得鑽石獎勵
- 內購: 實際貨幣購買
**消費項目**:
- 命條補充包 (5個): 20鑽石
- 時光卷道具: 10鑽石
- 提示道具: 5鑽石
- 解鎖高級內容: 100-500鑽石
**消費管道**:
- 道具購買: 回覆提示(30)、補命(100)、加時(300)等
- 時間管理道具: 暫停(100)、加成(150)鑽石
## 📈 學習進度系統
### 掌握度分級
- **初識 (Beginner)**: 0-25% 掌握度
- **熟悉 (Familiar)**: 26-60% 掌握度
- **應用 (Applied)**: 61-85% 掌握度
- **掌握 (Mastered)**: 86-100% 掌握度
### 🎯 線性闖關系統 (Progressive Stage System)
### 難度自適應算法
基於 [線性闖關學習系統規格](./progressive-stage-system.md) 的核心業務規則:
#### 四關闖關架構
- **13階段×20劇本×4關卡** 的完整學習架構
- **四關順序**: 詞彙學習 → 詞彙熟悉 → 口說練習特別關卡 → 情境對話
- **線性解鎖**: 除第2+關外必須按順序完成,口說練習特別關卡可跳過
- **學習階層**: 第x階段 > 第x劇本 > 第x關卡
#### 關卡類型與規則
| 關卡類型 | 收費模式 | 命條消耗 | 星級獲得 | 解鎖條件 | 通關條件 |
|---------|---------|----------|----------|----------|----------|
| 詞彙學習 | 免費 | 啟動扣1條 | 自動3星 | 無 | 全部答對 |
| 詞彙熟悉 | 免費 | 啟動扣1條 | 自動3星 | 完成第1關 | 全部答對 |
| 口說練習特別關卡 | 5鑽石 | 不扣命條 | 1-3星 | 完成第2關 | 平均70分+ |
| 情境對話 | 免費 | 啟動扣1條 | 1-3星 | 完成第2+關或跳過 | 雙重通關條件 |
### 舊版關卡結構系統
#### BR-LEARN-01: 階段化學習架構
```yaml
規則名稱: 13階段學習路徑
適用範圍: 整體學習進度管理
結構設計:
- 學習階層: 第x階段 > 第x劇本 > 某某關卡
- 總體規劃: 共13個學習階段
- 劇本數量: 每階段包含20個以上劇本持續增加
- 關卡類型: 每個劇本固定包含三種關卡
* 詞彙認識關卡
* 詞彙熟悉關卡
* 對話訓練關卡
關卡解鎖機制:
- 順序闖關: 必須按照關卡順序進行,不可跳關
- 解鎖條件: 完成前一關卡才能解鎖下一關
- 通關標準: 即使獲得零顆星,成功通關仍會解鎖下一關
- 星級獎勵: 詞彙認識和詞彙熟悉關卡通關直接給予三顆星
```
新難度 = 基礎難度 + 表現調整係數
表現調整係數 = (正確率 - 0.7) × 0.5 + (平均反應時間調整)
若正確率 > 85%: 提升一個難度級別
若正確率 < 40%: 降低一個難度級別
若連續3次滿分: 跳過下一個同類題目
### 🏆 情境對話核心商業機制
#### BR-LEARN-02: 雙重通關條件獎勵系統
```yaml
規則名稱: 結構化通關獎勵機制
適用範圍: 所有對話練習關卡
劇情任務完成獎勵:
- 基礎完成獎勵: +10 鑽石 + 10 閃電能量
- 任務品質加成: 高品質完成額外 +5 鑽石
- 即時獎勵機制: 任務完成立即觸發獎勵通知和發放
- 進度追蹤獎勵: 連續完成劇情任務的連擊獎勵機制
指定詞彙使用獎勵:
- 詞彙掌握獎勵: 正確使用指定詞彙獲得 +5 鑽石 + 5 閃電能量
- 自然使用加成: 詞彙使用自然且符合語境額外 +3 鑽石
- 即時反饋獎勵: 使用詞彙時立即觸發成功通知
- 詞彙精通獎勵: 單次對話使用多個指定詞彙的組合獎勵
結算獎勵系統:
- 過關獎勵: 同時滿足劇情任務和詞彙要求獲得金幣和經驗值
- 星級獎勵系統: 基於三維度評分獲得1-3顆星
* 語意合適分數 > 60 (滿分100) = 1顆星
* 語法錯誤率 = 0 (所有句子正確或訂正後正確) = 1顆星
* 表達流暢平均分數 > 60 (滿分100) = 1顆星
- 訂正後獎勵: 選擇立即訂正後獲得訂正後的獎勵數值
- 失敗安慰獎勵: 獲得時光卷一張(可重新挑戰關卡)
```
### ⚡ 連續學習獎勵機制
#### BR-LEARN-04: 連續學習激勵系統
```yaml
規則名稱: 連續學習天數追蹤與獎勵
適用範圍: 所有學習活動
連續學習規則:
- 連續學習天數: 追蹤用戶連續學習的天數
- 每日學習判定: 當日完成至少一個關卡即計為學習一天
- 連續獎勵機制: 基於連續天數給予額外獎勵
* 7天連續: 額外經驗值獎勵
* 14天連續: 免費命條補充
* 30天連續: 特殊成就徽章
斷線處理:
- 寬限期: 24小時內補完可維持連續記錄
- 保護機制: VIP用戶享有3天的連續中斷保護
```
### 間隔複習機制
基於艾賓浩斯遺忘曲線:
- **第1次複習**: 學習後1小時
- **第2次複習**: 學習後1天
- **第3次複習**: 學習後3天
- **第4次複習**: 學習後7天
- **第5次複習**: 學習後15天
- **後續複習**: 每30天一次
參考艾賓浩斯遺忘曲線:
- 第1次成功: 1天後複習 (2¹ = 2天)
- 第2次成功: 4天後複習 (2² = 4天)
- 第3次成功: 8天後複習 (2³ = 8天)
- 第4次成功: 16天後複習 (2⁴ = 16天)
- 依此類推...
## 🏆 成就與獎勵系統
@ -97,34 +318,122 @@
### 獎勵機制
| 成就等級 | 鑽石獎勵 | 經驗值獎勵 | 特殊獎勵 |
|----------|----------|------------|----------|
| 青銅 | 10鑽石 | 100 XP | 稱號 |
| 白銀 | 25鑽石 | 250 XP | 頭像框 |
| 黃金 | 50鑽石 | 500 XP | 特殊主題 |
| 鉑金 | 100鑽石 | 1000 XP | 高級功能 |
| -------- | -------- | ---------- | -------- |
| 青銅 | 10鑽石 | 100 XP | 稱號 |
| 白銀 | 25鑽石 | 250 XP | 稱號 |
| 黃金 | 50鑽石 | 500 XP | 稱號 |
| 鉑金 | 100鑽石 | 1000 XP | 稱號 |
## 🔐 權限控制系統
## 🔐 用戶認證與權限系統
### 用戶角色
### 🔑 用戶註冊與認證規則
#### BR-AUTH-01: 帳戶註冊規則
```yaml
規則名稱: 帳戶唯一性驗證
適用範圍: 新用戶註冊
技術實現:
- 一個信箱地址只能註冊一個帳戶
- Apple ID 和 Google 帳戶不能與已註冊信箱重複
- 用戶名稱必須唯一且長度3-20字符
- 不允許使用系統保留關鍵字作為用戶名
驗證機制:
- 註冊時即時檢查Email唯一性
- 用戶名黑名單過濾
- 第三方登入綁定檢查
例外處理:
- 管理員可手動合併重複帳戶
- 用戶可透過客服申請帳戶刪除後重新註冊
```
#### BR-AUTH-02: 密碼安全規則
```yaml
規則名稱: 密碼複雜度要求
適用範圍: 所有密碼設定和更改
技術實現:
- 最小長度8字符最大長度128字符
- 必須包含大小寫字母和數字
- 不能包含用戶名或常見弱密碼
- bcrypt加密存儲不可逆
安全措施:
- 連續5次錯誤輸入將鎖定帳戶15分鐘
- 密碼重設連結24小時內有效
- 密碼歷史記錄防止重複使用最近5組密碼
- 90天後系統建議更換密碼
```
#### BR-AUTH-03: 會話管理規則
```yaml
規則名稱: 用戶會話控制
適用範圍: 用戶登入狀態管理
技術實現:
- 標準會話有效期為7天
- JWT Token自動續期機制
- 30天內無活動自動登出
- 同一帳戶最多允許3個設備同時登入
會話延長:
- 付費用戶會話有效期延長至30天
- 記住登入狀態最長可保持90天
- 異地登入需要進行安全驗證
```
### 👥 用戶角色分級系統
#### BR-USER-ROLES: 用戶角色定義
```yaml
規則名稱: 用戶等級與權益管理
適用範圍: 所有用戶類別
用戶角色定義:
免費用戶 (FREE_USER):
- 狀態: 默認用戶類型
- 權益: 基礎學習功能、有限的學習次數
- 限制: 每日3次對話練習、基礎詞庫
試用用戶 (TRIAL_USER):
- 期限: 7天免費體驗訂閱用戶權益
- 權益: 完整功能體驗、無廣告、無限制學習
- 轉換: 試用期結束後自動轉訂閱用戶(需手動取消)
訂閱用戶 (SUBSCRIBER):
- 定價: NT$600/月 或 NT$6,000/年
- 權益: 無限制學習、進階統計報告、命條上限30個、每小時恢復3個命條
- 特權: 每日3次免費限時挑戰、優先客服支援
進階用戶 (PREMIUM_USER):
- 階段: 第二階段功能開放後提供
- 定價: NT$900/月 或 NT$9,000/年
- 權益: 訂閱用戶所有功能 + 進階自訂學習功能 + 更優質學習體驗(TTS)
- 特權: 命條上限50個、每小時恢復5個命條、專屬學習模式
高價值用戶 (HIGH_VALUE_USER):
- 階段: 第三階段功能開放後提供
- 定義: 累計購買鑽石超過NT$3,000的用戶
- 權益: VIP客服支援、專屬活動邀請、新功能優先體驗
- 特權: 限定道具折扣、獲得限定道具、專屬客戶經理
管理員 (ADMIN):
- 權益: 系統管理、用戶管理、內容管理
- 特權: 完整系統訪問權限、數據分析功能
```
#### 用戶角色枚舉定義
```typescript
enum UserRole {
FREE_USER = "free_user", // 免費用戶
SUBSCRIBER = "subscriber", // 訂閱用戶
ADMIN = "admin" // 管理員
FREE_USER = "free_user", // 免費用戶
TRIAL_USER = "trial_user", // 試用用戶 (7天)
SUBSCRIBER = "subscriber", // 訂閱用戶
PREMIUM_USER = "premium_user", // 進階用戶 (第2階段)
HIGH_VALUE_USER = "high_value_user", // 高價值用戶 (第3階段)
ADMIN = "admin" // 管理員
}
```
### 功能權限矩陣
| 功能 | 免費用戶 | 訂閱用戶 | 管理員 |
|------|----------|----------|---------|
| 基礎對話練習 | 3次/日 | 無限制 | 無限制 |
| 高級對話功能 | ❌ | ✅ | ✅ |
| 詞彙學習 | 基礎詞庫 | 完整詞庫 | 完整詞庫 |
| AI分析報告 | 簡化版 | 詳細版 | 完整版 |
| 離線模式 | ❌ | ✅ | ✅ |
| 數據匯出 | ❌ | ✅ | ✅ |
| 管理功能 | ❌ | ❌ | ✅ |
| 功能 | 試用用戶 | 訂閱用戶 | 進階用戶 | 高價值用戶 | 管理員 |
| ------------ | ----------- | -------- | -------- | ---------- | -------- |
| 基礎對話練習 | 無限制(7天) | 無限制 | 無限制 | 無限制 | 無限制 |
| 詞彙學習 | 完整詞庫 | 完整詞庫 | 完整詞庫 | 完整詞庫 | 完整詞庫 |
| AI分析報告 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 自訂學習功能 | ❌ | ❌ | ✅ | ✅ | ✅ |
| 優質TTS體驗 | ❌ | ❌ | ✅ | ✅ | ✅ |
| 命條恢復 | ✅ | ✅ | ✅+ | ✅++ | 無限 |
| 口說練習關卡 | 消耗鑽石 | 消耗鑽石 | ✅ | ✅ | 無限 |
| 管理功能 | ❌ | ❌ | ❌ | ❌ | ✅ |
## ⚡ 防作弊機制
### 答題時間檢查
@ -155,7 +464,114 @@ enum UserRole {
- **貨幣顯示**: 根據用戶所在地區顯示本地貨幣
- **時區處理**: 自動根據用戶時區調整時間顯示
## 📊 數據分析規則
## 📺 簡化廣告系統
### 廣告展示策略
```yaml
規則名稱: 非強制性廣告獎勵系統
適用範圍: 所有平台廣告展示
展示策略:
- 非強制性: 主要用於獲得額外鑽石獎勵
- 獎勵導向: 觀看廣告獲得25-50鑽石
- 頻率控制: 每日最多5次觀看避免影響核心遊戲體驗
- 品質篩選: 優先顯示教育和遊戲相關廣告
廣告類型:
- 鑽石獎勵廣告: 觀看30秒廣告獲得25-50鑽石
- 命條恢復廣告: 觀看廣告恢復1個命條 (每日3次)
- 道具試用廣告: 觀看廣告獲得道具試用機會
技術實現:
- 廣告SDK整合: AdMob、Unity Ads等
- 廣告載入預處理: 避免用戶等待時間
- 廣告完成驗證: 確保用戶完整觀看才給予獎勵
```
## 🤝 社群互動系統
### 👥 好友系統規則
#### BR-SOCIAL-01: 好友關係管理
```yaml
規則名稱: 好友關係管理
適用範圍: 所有社群互動功能
技術實現:
- 每個用戶最多可添加100個好友
- 好友邀請有效期為7天
- 雙方確認後建立好友關係
- 可設定好友可見性(學習進度、排名等)
互動限制:
- 每日最多發送20個好友邀請
- 拒絕好友邀請後30天內不可重複邀請
- 刪除好友後48小時內不可重新添加
- 封鎖用戶無法看到任何相關信息
數據同步:
- 好友狀態變更即時通知
- 好友學習動態推送設定
- 隱私設定優先級管理
```
#### BR-SOCIAL-02: 排行榜規則
```yaml
規則名稱: 競爭排名計算
適用範圍: 所有排行榜功能
技術實現:
- 排行榜分為好友榜、全球榜、地區榜
- 每週一凌晨重置週排行榜
- 每月1號重置月排行榜
- 年度排行榜保持全年累積
排名計算:
- 主要依據: 遊玩關卡所獲得的經驗值
- 相同分數按學習開始時間排序
- 作弊或異常數據將被排除
- 反作弊演算法實時監控
顯示規則:
- 顯示前100名和用戶周圍排名
- 匿名用戶可選擇隱藏排名
- 排名變化趨勢圖表顯示
```
## 📊 數據分析與隱私保護
### 🔒 安全與隱私規則
#### BR-SEC-01: 數據隱私保護
```yaml
規則名稱: 用戶數據處理規範
適用範圍: 所有用戶數據收集與使用
技術實現:
- 僅收集學習相關的必要數據
- 用戶可隨時查看和下載個人數據
- 帳戶刪除後90天內完全清除數據
- 不與第三方分享個人識別信息
數據加密:
- 敏感數據採用AES-256加密
- 傳輸過程使用HTTPS/TLS 1.3
- 密碼使用bcrypt不可逆加密
- 定期進行安全稽核和測試
合規要求:
- 符合GDPR、CCPA等隱私法規
- 提供數據可攜帶權和被遺忘權
- 定期隱私影響評估
```
#### BR-SEC-02: 內容審核規則
```yaml
規則名稱: 用戶生成內容管理
適用範圍: 所有用戶輸入和分享內容
技術實現:
- 禁止發布違法、暴力、色情內容
- 禁止惡意攻擊或騷擾其他用戶
- 禁止發布廣告或垃圾信息
- 系統自動檢測+人工審核雙重把關
審核機制:
- AI內容識別系統24/7運行
- 用戶舉報機制和快速回應
- 內容分級和年齡適宜性檢查
處置措施:
- 輕微違規: 警告並刪除內容
- 嚴重違規: 暫停帳戶1-30天
- 極嚴重違規: 永久封禁帳戶
- 申訴機制: 7天內可申請複審
```
### 學習分析維度
1. **學習效率**: 單位時間掌握詞彙數/對話完成數
@ -163,19 +579,119 @@ enum UserRole {
3. **學習偏好**: 用戶偏愛的學習模式和時間
4. **難點識別**: 用戶容易犯錯的知識點
### 隱私保護
### 隱私保護執行
- **數據匿名化**: 個人識別信息在分析前移除
- **本地計算**: 敏感數據優先在本地處理
- **用戶同意**: 數據使用需要用戶明確同意
- **數據保留**: 學習數據保留期限不超過2年
## 📱 技術限制與相容性
### 💻 平台相容性規則
#### BR-TECH-01: 設備支援標準
```yaml
規則名稱: 設備支援標準
適用範圍: 所有平台版本
技術實現:
- iOS 12.0以上版本
- Android 8.0以上版本
- Chrome 80+, Safari 13+, Firefox 75+
- 記憶體需求最低2GB
硬體需求:
- 儲存空間最低500MB可用空間
- 網路連接要求穩定3G以上
- 麥克風權限用於語音功能
- 相機權限用於掃描功能(可選)
功能降級:
- 低配設備自動關閉視覺特效
- 網路狀況差時啟用離線模式
- 儲存空間不足時清理快取
- 不支援的功能給予明確提示
```
#### BR-TECH-02: 數據同步規則
```yaml
規則名稱: 跨設備數據同步
適用範圍: 多設備用戶體驗
技術實現:
- 學習進度即時同步到雲端
- 離線學習數據聯網時自動上傳
- 數據衝突時以時間戳較新為準
- 每日自動備份用戶數據
同步頻率:
- 學習完成後立即同步
- 每10分鐘檢查一次更新
- 應用啟動時強制同步一次
- 網路恢復時補傳離線資料
衝突解決:
- 同步衝突優先保留本地較新數據
- 關鍵學習數據採用合併策略
- 提供手動解決衝突選項
- 異常同步自動回滾機制
```
#### BR-TECH-03: 效能監控規則
```yaml
規則名稱: 應用效能標準
適用範圍: 所有平台和功能
技術實現:
- 應用啟動時間不超過3秒
- 頁面切換響應時間不超過500ms
- API請求超時設定為30秒
- 記憶體使用監控和自動清理
效能指標:
- CPU使用率持續監控
- 記憶體洩漏自動檢測
- 網路請求成功率追蹤
- 崩潰率控制在0.1%以下
降級策略:
- 效能不足時自動降低畫質
- 網路慢時優先載入核心功能
- 電量不足時減少背景處理
- 儲存空間不足時清理暫存
```
## 🔄 業務規則衝突處理
### 優先級管理
1. **用戶安全和隱私** - 最高優先級
2. **法律合規要求** - 法規優先於商業需求
3. **付費用戶權益** - 既得權益保護
4. **產品核心邏輯** - 學習機制一致性
5. **用戶體驗優化** - 可動態調整項目
### 規則變更流程
1. **影響評估** - 技術、用戶、商業三維度分析
2. **合規審查** - 法務和隱私合規檢查
3. **A/B測試** - 小範圍驗證變更影響
4. **分階段實施** - 漸進式推出降低風險
5. **監控回饋** - 實時監控和快速回應
---
**文檔狀態**: 🟢 已完成
**最後更新**: 2025-09-09
**版本**: v1.0
**📝 備註**:
- 本文檔已整合原有的 `business-logic-rules.md` 中的詳細實現規格
- 統一了跨平台的業務規則和商業模式定義
- 確保各平台開發團隊基於一致的業務邏輯進行實現
**🔄 整合完成內容**:
- ✅ **鑽石貨幣系統**: 完整的獲得方式、消費管道和套餐設計
- ✅ **道具商店系統**: 詳細的道具功能、定價和購買流程
- ✅ **關卡結構系統**: 13階段學習路徑和解鎖機制
- ✅ **雙重通關條件**: 劇情任務和指定詞彙的獎勵機制
- ✅ **限時挑戰系統**: 300秒限時挑戰的商業化設計
- ✅ **連續學習獎勵**: 天數追蹤和獎勵機制
- ✅ **付費轉換優化**: 漸進式付費漏斗和動機設計
- ✅ **訂閱服務簡化**: 7天免費體驗和可愛UI設計
- ✅ **廣告系統**: 非強制性獎勵廣告策略
**文檔狀態**: 🟢 整合完成
**最後更新**: 2025-09-10
**版本**: v2.0 (已整合詳細業務邏輯)
**相關文檔**:
- `數據模型.md` - 數據結構定義
- `API規格.md` - API接口設計
- `mobile/` - 移動端功能規格
- `web/` - Web端功能規格
- **平台對應表**: [平台功能對應表.md](../平台功能對應表.md)
- **數據模型**: [數據模型.md](./數據模型.md)
- **API規格**: [API規格.md](./API規格.md)
- **Mobile端規格**: [mobile/README.md](../mobile/README.md)
- **Web端規格**: [web/README.md](../web/README.md)

View File

@ -0,0 +1,178 @@
# 語用分析系統規格 (Pragmatic Analysis System)
## 概述
Drama Ling 應用中的語用分析系統,評估對話的內容理解和表達適切性。提供六維度語用標準評估,用於情境對話訓練、學習建議和溝通改善指導。
**注意**: 語用分析只提供建議,不進行評分,重點在於教學指導和溝通改善。
## 六維語用標準
### 1. 😊 日常寒暄 (Small Talk)
- **定義**: 不以傳遞實質資訊為主要目的,而是用於建立或維持社交關係的言談
- **用途**:
- 建立對話氛圍與人際連結
- 作為開場、轉場或緩和氣氛的策略
- 在客服或 AI 助手中,用來提升「人性化」感
### 2. 🌀 間接表達 (Indirectness)
- **定義**: 透過暗示、委婉語或迂迴方式表達意圖,避免直接衝突
- **用途**:
- 避免冒犯,維持人際和諧
- 展現禮貌或文化上的尊重
- 在跨文化溝通中,辨識不同社會的表達習慣
### 3. 🤔 填充語 (Fillers)
- **定義**: 非必要詞語,用來填補語流空隙、保持連續或爭取思考時間
- **用途**:
- 提示對方「話還沒說完」
- 增加口語自然度(模擬真實對話)
- 作為語音辨識或對話系統的特徵,用於偵測自然口語
### 4. 🙆 同理回應 (Backchanneling)
- **定義**: 聽話者以簡短語言或聲音表達注意、理解或支持,不打斷主要話輪
- **用途**:
- 提供傾聽與理解的訊號,維持互動流暢
- 增強情感支持與共鳴
- 在對話系統中,提升使用者「被理解」的感受
### 5. 🤷 模糊語 (Hedging)
- **定義**: 降低語氣確定性,避免過度斷言的語言策略
- **用途**:
- 顯示謹慎,降低爭議風險
- 表達禮貌,避免武斷或冒犯
- 在學術或專業語境中,用來維持客觀或彈性
### 6. 🐉 文化慣用語 (Idioms)
- **定義**: 文化群體中固定的表達方式,通常無法逐字翻譯
- **用途**:
- 增加語言的自然性與文化深度
- 強化群體認同感
- 作為語言學習與跨文化理解的重要素材
## 語用評分範例
```
--- Dialogue
👨(Client)How is Mr. Davies feeling about our upcoming meeting?
👨(Business Professional)Wow, you know what he is very anxious to meet you
The client is responding to the business professional's statement about Mr. Davies being anxious to meet him. He acknowledges the information and expresses his own anticipation for the meeting, maintaining a professional and engaged tone....
👨(Client)Anxious, you say? That's good to hear. I'm looking forward to it as well.
--- Overall Comment
【分數】:✅ 通過
【評論】:客戶在本次對話中展現了良好的專業溝通能力。他能夠清晰、直接地回應對方的信息,並有效使用附和語來維持對話的參與感。
【建議】:建議客戶在未來的對話中,根據情境需要,可以考慮適度運用間接表達和模糊語,以增加語氣的彈性與委婉度,尤其是在面對敏感話題或需要更細緻溝通的場合。持續保持積極的傾聽和回應,將有助於建立更良好的互動關係。
--- Intent Achievement Evaluation
🌍 Scenario
A professional setting where a person is informing another about a third party's eagerness to meet them, possibly before an introduction or a significant meeting. The man in the suit suggests a formal context.
🎯 Intent
Inform about someone's eagerness to meet.
🎯 是否實踐意圖:
【分數】Yes
【評論】:客戶成功地表達了對對方所提供信息的理解,並明確傳達了他對即將到來的會議的期待。
【建議】:意圖已完全達成,表現良好,無需改進。
--- Pragmatic Evaluation
😊 日常寒暄 (Small Talk)
【分數】4分
【評論】:客戶的應答簡潔專業,直接表達了對會面的期待,符合商務情境。
【建議】:在此情境下,客戶的表現良好,無需特別改進。如果想在開場時增加一點點寒暄,可以簡短地說 "It's a pleasure to finally connect, I hear great things."
🌀 間接表達 (Indirectness)
【分數】0分
【評論】客戶的回應直接且清晰沒有使用間接表達。在此情境下直接性是可接受的因此此項得分0分並非表示表現不佳而是因為間接表達在此情境中並非必要且客戶未採用。
【建議】:如果想讓語氣更委婉或在某些情況下顯得更為謹慎,可以使用間接句型,例如 "I appreciate you sharing that. It sounds like he's quite keen, and I share that sentiment." 或 "It's certainly encouraging to hear his eagerness; I'm equally enthusiastic."
🤔 填充語 (Fillers)
【分數】0分
【評論】對話中沒有使用語氣詞。在此情境下不使用語氣詞保持了專業和清晰度。此項得分0分因其在本次對話中屬於非必要項目且未被使用。
【建議】:保持清晰流暢的表達是良好的習慣。若未來在需要思考或組織語言時,可適度使用一些無害的填充詞如 "Well," 或 "You know," 來避免冷場,但應避免過度使用。例如:"Well, that's good to hear. I'm looking forward to it as well."
🙆 同理回應 (Backchanneling)
【分數】5分
【評論】:客戶有效地使用了附和語 "Anxious, you say?",這表明他專注於對話並確認了對方提供的信息,有助於維持對話的流暢性與參與感。
【建議】:繼續保持這種積極的傾聽和回應。在其他情況下,也可以使用 "I see what you mean," "Right," 或 "Exactly," 等來表示理解和附和。
🤷 模糊語 (Hedging)
【分數】2分
【評論】:客戶的表達比較直接,沒有使用模糊語來軟化語氣或預留彈性。在這種專業且直接的語境下,雖然直接表達沒問題,但適度的模糊語可以使語氣更溫和或為未來討論留下空間。
【建議】在某些情境下尤其是在討論尚未確定的事項或表達個人看法時適當使用模糊語hedging可以讓語氣更委婉避免過於武斷。例如可以說 "I suppose that's good to hear" 或 "I'm certainly looking forward to it as well, assuming everything goes according to plan."
🐉 文化慣用語 (Idioms)
【分數】0分
【評論】對話中沒有使用慣用語。在正式的商務場合避免使用過多的慣用語有助於保持溝通的清晰度尤其是在面對不同文化背景的對話者時。此項得分0分因其在本次對話中屬於非必要項目且未被使用。
【建議】:在正式場合,直接清晰的表達比慣用語更受青睞。如果希望增加語言的豐富性,可以在非正式場合適度使用,但務必確保對方能理解。
```
## 技術實現
### 分析引擎
- [ ] **即時分析**: 用戶說出的每句話都進行即時語用判斷
- [ ] **語用建議生成**: 當用戶點擊對話查看語用建議,生成對應建議
- [ ] **情境適應性**: 根據對話場景調整語用評估標準
- [ ] **文化背景考量**: 辨識不同文化的表達習慣和語用規範
### 意圖分析系統
- [ ] **情境識別**: 自動識別對話的情境和背景
- [ ] **意圖解析**: 分析對話雙方的溝通意圖
- [ ] **完成度評估**: 判斷意圖是否成功傳達和達成
- [ ] **改善建議**: 提供具體的溝通改善方向
### 輸出格式
- [ ] **整體評論**: 通過/不通過 + 綜合評論和建議
- [ ] **意圖達成評估**: 情境分析 + 意圖識別 + 完成狀態
- [ ] **六維詳細分析**: 每維度的評分、評論和具體改善建議
- [ ] **實用建議**: 提供可行的替代表達方式和溝通策略
## 應用場景
### 情境對話訓練
- 對話結束後提供語用建議
- 幫助用戶理解不同語用策略的使用時機
### 回覆輔助系統
- 分析對方話語的意圖
- 提供合適的回應策略建議
### 學習反饋系統
- 識別用戶的語用弱點
- 提供個性化的學習建議
### 文化理解教學
- 解釋不同文化背景下的語用差異
- 培養跨文化溝通能力
## 品質控制
### 分析準確性
- [ ] **語境理解測試**: 驗證系統對不同情境的識別能力
- [ ] **文化適應性**: 確保建議符合目標文化的語用規範
- [ ] **建議實用性**: 測試建議的可操作性和有效性
### 用戶體驗
- [ ] **建議清晰度**: 確保語用建議易於理解和實施
- [ ] **個性化程度**: 根據用戶水平調整建議的深度和複雜度
- [ ] **學習效果**: 追蹤語用建議對用戶溝通能力的改善效果
---
**最後更新**: 2025-09-11 - 獨立拆分語用分析系統規格
**版本**: 1.0 - 初版從AI算法規格中獨立模組化
**維護者**: Drama Ling 開發團隊

View File

@ -0,0 +1,257 @@
# 線性闖關學習系統規格 (Progressive Stage System)
## 概述
Drama Ling 的核心闖關學習機制採用線性順序闖關設計確保用戶循序漸進地掌握語言技能。每個劇本包含4個必須順序完成的關卡形成完整的學習閉環。
## 📚 闖關架構
### 三層架構設計
```
13個階段 (Stage)
├── 每階段 20+ 劇本 (Script)
│ ├── 第1關詞彙學習 (Vocabulary Learning)
│ ├── 第2關詞彙熟悉 (Vocabulary Mastery)
│ ├── 第2+關:口說練習特別關卡 (Speaking Practice Bonus)
│ └── 第3關情境對話 (Situational Dialogue)
```
### 關卡順序與依賴關係
1. **第1關詞彙學習** → 解鎖第2關
2. **第2關詞彙熟悉** → 解鎖第2+關和第3關
3. **第2+關:口說練習** → 可跳過的付費特別關卡
4. **第3關情境對話** → 解鎖下一劇本第1關
### 特別關卡機制
- **第2+關可跳過**: 完成第2關後可直接進入第3關無需通過口說練習
- **付費特別體驗**: 口說練習為可選的付費強化訓練
- **獨立獎勵系統**: 不影響主線闖關進度,但提供額外學習價值
## 🎮 主線+特別關卡機制
### 第1關詞彙學習 (Vocabulary Learning)
**功能目的**: 學習劇本相關的5個核心詞彙
**關卡類型**: 免費關卡
#### 關卡內容
- [ ] **詞彙展示**: 顯示詞彙、詞義、例句、示意圖
- [ ] **選擇題測試**: 根據示意圖選擇正確詞彙 (4選1)
- [ ] **錯誤重測**: 答錯的題目在最後重新測試
#### 通關條件
- **基本要求**: 所有詞彙題目都答對
- **獎勵標準**: 通關自動獲得3顆星
- **資源消耗**: 完全免費答錯扣1命條
- **解鎖效果**: 開啟第2關
#### 詞彙組合設計
每個劇本包含5個詞彙
- 3個常用單字
- 1個常用片語
- 1個常用俚語
**範例組合**:
- 買菜小冒險: market, vegetables, price + "ask for a discount" + "a steal"
- 遲到的咖啡約會: coffee, late, apologize + "run into traffic" + "my bad"
### 第2關詞彙熟悉 (Vocabulary Mastery)
**功能目的**: 加深詞彙理解,訓練語境應用能力
**關卡類型**: 免費關卡
#### 關卡內容
- [ ] **例句重組**: 從單字選取區組出示意圖的原句
- [ ] **詞彙配對**: 左邊示意圖與右邊詞彙進行配對
- [ ] **語法結構訓練**: 強化詞彙在句子中的使用
#### 通關條件
- **基本要求**: 所有配對和重組都正確
- **獎勵標準**: 通關自動獲得3顆星
- **資源消耗**: 完全免費答錯扣1命條
- **解鎖效果**: 開啟第3關
### 第2+關:口說練習特別關卡 (Speaking Practice Bonus)
**功能目的**: 針對詞彙進行發音和流暢度訓練
**關卡類型**: 付費特別關卡 (5鑽石)
**特別機制**: 唯一可跳過的關卡,不影響主線闖關進度
#### 關卡內容
- [ ] **詞彙例句朗讀**: 逐一展示詞彙例句,用戶朗讀
- [ ] **五維口說評分**: 使用 [口說評分系統](./speaking-evaluation-specs.md)
- [ ] **即時發音反饋**: 每個詞彙提供詳細改善建議
#### 通關條件與獎勵
- **通關條件**: 所有詞彙例句平均分數≥70分
- **獎勵階梯**:
- 70-79分1鑽石 + 10XP (回收部分成本)
- 80-89分3鑽石 + 10XP (略有虧損但有進步)
- 90-100分5鑽石 + 20XP (獲利且大幅經驗值)
- **解鎖效果**: 開啟第3關
#### 學習價值
- **發音精進**: 針對特定詞彙的精確發音訓練
- **記憶強化**: 透過語音輸出深化詞彙印象
- **個性化指導**: 基於五維評分的具體改善建議
### 第3關情境對話 (Situational Dialogue)
**功能目的**: 在真實情境中綜合應用所學詞彙和語言技能
**關卡類型**: 免費關卡
#### 關卡內容
- [ ] **AI角色對話**: 與AI角色進行劇本情境對話
- [ ] **雙重任務系統**: 完成劇情意圖 + 使用指定詞彙
- [ ] **即時分析反饋**: 語法、口說、語用三維度分析
#### 通關條件
- **基本通關**: 所有意圖任務≥50%完成 + 所有詞彙至少提及一次
- **星星獲得**:
- ⭐ 任務星所有意圖任務100%完成
- ⭐ 語法星:語法錯誤率 = 0
- ⭐ 口說星:口說平均分數 > 80
- **資源消耗**: 免費進入失敗扣1命條
- **解鎖效果**: 開啟下一劇本第1關
## 🔒 關卡解鎖機制
### 順序解鎖規則
1. **劇本內順序**: 第1關 → 第2關 → (第2+關) → 第3關
2. **劇本間順序**: 完成第3關才能進入下一劇本
3. **階段解鎖**: 完成本階段所有劇本才能進入下一階段
4. **不可跳關**: 除第2+關外,其他關卡都必須按順序完成
### 關卡狀態管理
- **🔒 鎖定狀態**: 前置條件未滿足,顯示解鎖要求
- **⏳ 可進行狀態**: 前置條件滿足,可以開始挑戰
- **🔄 進行中狀態**: 關卡已開始但未完成
- **✅ 已完成狀態**: 關卡已通關,顯示獲得星數
### 進度保存機制
- [ ] **自動保存**: 每關完成後立即保存進度
- [ ] **斷點續玩**: 關卡中途離開可從斷點繼續
- [ ] **雲端同步**: 跨設備進度同步
- [ ] **回滾保護**: 防止進度意外丟失
## 💎 資源管理系統
### 命條系統 (Life System)
> 詳細規格請參閱 → **[共同業務規則 - 命條系統](./business-rules.md#🎮-命條系統-life-points-system)**
- **消耗機制**: 所有關卡在啟動時消耗1個命條(除第2+關)
- **用戶等級差異**: 不同用戶等級擁有不同的命條上限和恢復速度
- **額外懲罰**: 對話辱罵情形額外扣除3個命條
### 鑽石消耗
- **第2+關口說練習**: 固定消耗5鑽石
- **輔助工具**: 情境對話中的回覆協助功能
- **加速道具**: 命條回復加速、關卡重置等
## 🎯 學習進度追蹤
### 階段進度指標
- **完成劇本數**: 當前階段已完成的劇本數量
- **總關卡數**: 階段內所有關卡的完成情況
- **星級統計**: 各類型關卡獲得的星級總數
- **學習時間**: 累計學習時間和平均關卡耗時
### 個人成就系統
- **連續學習天數**: 每日至少完成1個關卡
- **完美通關**: 單劇本4關全部獲得滿星
- **詞彙大師**: 口說練習關卡高分通關
- **對話專家**: 情境對話獲得三星
## 🔄 特殊機制
### 時光關卡系統
**觸發條件**: 使用時光卷道具
**關卡來源**:
1. 優先選擇前階段未玩過的對話訓練關卡
2. 若都玩過則隨機選擇對話訓練關卡
**獎勵機制**:
- 成功通關照常獲得星級和經驗值
- 詞彙自動加入複習清單
- 不影響正常闖關進度
### 複習系統整合
- [ ] **自動加入**: 每關完成後詞彙自動加入複習清單
- [ ] **間隔算法**: 基於遺忘曲線的智慧複習排程
- [ ] **複習形式**: 以詞彙熟悉關卡形式進行
- [ ] **進度維護**: 複習不影響主線闖關進度
## 📊 數據追蹤需求
### 關卡表現數據
- 每關完成時間、嘗試次數、最終星級
- 詞彙學習的錯誤分布和改善軌跡
- 口說練習的五維評分趨勢
- 情境對話的意圖完成率和語用表現
### 學習行為分析
- 關卡間停留時間和跳離率
- 資源消耗模式和付費轉換率
- 輔助功能使用頻率和效果
- 長期學習留存和成就解鎖
## 🚀 技術實現要點
### 前端狀態管理
- [ ] **關卡狀態樹**: 階段→劇本→關卡的嵌套狀態管理
- [ ] **解鎖邏輯**: 前置條件檢查和UI狀態更新
- [ ] **進度可視化**: 進度條、解鎖動畫、成就提示
- [ ] **離線支持**: 關卡數據本地快取和同步機制
### 後端架構需求
- [ ] **進度服務**: 用戶闖關進度的CRUD操作
- [ ] **解鎖服務**: 關卡解鎖條件驗證和狀態更新
- [ ] **統計服務**: 學習數據收集和分析報告
- [ ] **同步服務**: 多端進度同步和衝突解決
### 數據庫設計
```sql
-- 用戶闖關進度表
user_stage_progress (
user_id, stage_id, script_id, level_type,
status, stars, completion_time, attempts
)
-- 關卡解鎖狀態表
level_unlock_status (
user_id, stage_id, script_id, level_type,
is_unlocked, unlock_time, prerequisites_met
)
-- 學習統計表
learning_analytics (
user_id, date, levels_completed,
stars_earned, time_spent, resources_used
)
```
## 📝 開發檢查清單
### 核心功能實現
- [ ] 三關+特別關卡闖關邏輯
- [ ] 關卡狀態管理和UI更新
- [ ] 進度保存和加載機制
- [ ] 資源消耗和獎勵分發
- [ ] 解鎖條件驗證
### 用戶體驗優化
- [ ] 清楚的進度指示和引導
- [ ] 流暢的關卡間切換動畫
- [ ] 直觀的鎖定狀態說明
- [ ] 及時的成就和獎勵反饋
### 性能和穩定性
- [ ] 大量關卡數據的載入優化
- [ ] 進度同步的錯誤恢復機制
- [ ] 關卡切換的內存管理
- [ ] 離線模式的數據一致性
---
**最後更新**: 2025-09-11 - 建立線性闖關學習系統規格
**版本**: 1.0 - 初版:四關闖關機制設計
**維護者**: Drama Ling 開發團隊
**相關文檔**:
- [口說評分系統](./speaking-evaluation-specs.md)
- [語用分析系統](./pragmatic-analysis-specs.md)
- [AI算法規格](./ai-algorithm-specs.md)

View File

@ -0,0 +1,93 @@
# 口說評分系統規格 (Speaking Evaluation System)
## 概述
Drama Ling 應用中的口說評分系統,提供五維度的語音表達評估,適用於對話訓練、詞彙學習、發音練習等多個功能模組。
## 核心評分維度
### 五維度評分系統
- 🗣️ **發音評分 (Pronunciation)**: 音素準確度、尾音收口、鼻音共鳴
- ✅ **完整度評分 (Completeness)**: 句子完整性、遺漏詞彙檢測
- 📈 **流暢度評分 (Fluency)**: 語速自然度、停頓合理性
- 🎶 **韻律評分 (Prosody)**: 語調變化、重音位置、節奏感
- 🎯 **準確度評分 (Accuracy)**: 整體表達精準度
### 分數標準
- **96~100**:完美
- **81~95**:優秀
- **71~80**:尚可
- **0~70**:不合格
### 獎勵機制
- **96~100**+3 鑽石 + 30 XP
- **81~95**+2 鑽石 + 20 XP
- **71~80**+1 鑽石 + 10 XP
- **0~70**:時光卷
## 評分顯示範例
```
📊 Speaking Score
【Sentence】91.9分:
Please make sure you have all the necessary documents before submitting your application.
🗣️ Pronunciation91.9
📈 Fluency97
🎶 Prosody83.3
✅ Completeness100
🎯 Accuracy96
【單字需要加強❌】
application ⭐⭐:
🟡 n
【建議改善】
• 🔚 尾音收口明確(-m, -n, -l, -k, -t避免吞音。
🎯 針對音素練習n
🤧 鼻音m/n/ŋ):軟顎下放,確保鼻腔共鳴與口型到位。
```
## 技術實現
### 語音處理系統
- [ ] **語音轉文字**: 以語音輸入為主,文字輸入為輔的對話方式
- [ ] **中文檢測**: 當用戶講中文或輸入中文時,角色表示聽不懂
- [ ] **語音品質檢測**: 如果聽不到聲音,顯示「抱歉,好像沒有聲音,請重新錄製」
- [ ] **表達流暢度分析**: 使用Speakace等第三方平台分析精準度、流利度、韻律
### 核心技術需求
- [ ] **AI 服務選擇**: 確定主要 AI 模型供應商
- [ ] **評分算法**: 建立五維度評分的具體邏輯
- [ ] **即時反饋系統**: 目標響應時間 < 2秒
- [ ] **成就觸發機制**: 於遊戲結束時,自動檢測並發放對應獎勵
- [ ] **性能優化**: 確保響應時間穩定
### 品質控制
- [ ] **準確性測試**: 驗證評分結果的一致性
- [ ] **用戶體驗**: 確保獎勵系統運作順暢
- [ ] **資料隱私**: 基本的用戶資料保護
## 應用場景
### 情境對話訓練
- 即時評分每句對話的口說表現
- 結算時提供詳細的改善建議
### 詞彙學習口說關卡
- 評估詞彙例句的發音準確度
- 消耗5鑽石進行口說評分訓練
### 發音練習功能
- 針對特定音素提供專項練習
- 追蹤發音改善進度
### AI訂正系統
- 表達不順的句子重錄和練習
- 透過重複練習提升表達流暢度
---
**最後更新**: 2025-09-11 - 獨立拆分口說評分系統規格
**版本**: 1.0 - 初版從AI算法規格中獨立模組化
**維護者**: Drama Ling 開發團隊

View File

@ -18,17 +18,17 @@
- [ ] **即時回饋**: 提供即時的視覺和互動回饋
- [ ] **個人化體驗**: 基於用戶偏好和程度調整介面
- [ ] **無障礙設計**: 確保不同能力用戶都能順利使用
- [ ] **智慧輔助** *(新增)*: 在適當時機提供非侵入性的學習輔助
- [ ] **漸進引導** *(新增)*: 從輔助學習逐步過渡到獨立表達
- [ ] **雙重任務可視化** *(新增)*: 清晰展示劇情任務和詞彙要求的完成狀態
- [ ] **時間壓力管理** *(新增)*: 300秒限時挑戰的直觀計時和警告系統
- [ ] **即時成就反饋** *(新增)*: 任務完成和詞彙使用的立即慶祝動畫
- [ ] **開場對話體驗** *(新增)*: 4-8句開場對話的漸進顯示效果
- [ ] **語音優先設計** *(新增)*: 以語音輸入為主、文字輸入為輔的交互設計
- [ ] **即時語法反饋** *(新增)*: 每句話的語法正確性即時顯示於對話功能欄
- [ ] **詞彙學習流程** *(新增)*: 詞彙展示→選擇題→例句重組→配對練習的漸進式學習
- [ ] **命條生命系統** *(新增)*: 直觀的生命值顯示和消耗反饋
- [ ] **間隔複習提醒** *(新增)*: 智慧提醒用戶進行詞彙複習的時機
- [ ] **智慧輔助** : 在適當時機提供非侵入性的學習輔助
- [ ] **漸進引導** : 從輔助學習逐步過渡到獨立表達
- [ ] **雙重任務可視化** : 清晰展示劇情任務和詞彙要求的完成狀態
- [ ] **時間壓力管理** : 300秒對話挑戰的直觀計時和警告系統
- [ ] **即時成就反饋** : 任務完成和詞彙使用的立即慶祝動畫
- [ ] **開場對話體驗** : 4-8句開場對話的漸進顯示效果
- [ ] **語音優先設計** : 以語音輸入為主、文字輸入為輔的交互設計
- [ ] **即時語法反饋** : 每句話的語法正確性即時顯示於對話功能欄
- [ ] **詞彙學習流程** : 詞彙展示→選擇題→例句重組→配對練習的漸進式學習
- [ ] **命條生命系統** : 直觀的生命值顯示和消耗反饋
- [ ] **間隔複習提醒** : 智慧提醒用戶進行詞彙複習的時機
## 視覺設計系統

View File

@ -0,0 +1,779 @@
# Drama Ling 完整用戶流程圖
**文檔名稱**: 基於現行規格的完整用戶流程設計
**建立日期**: 2025-09-10
**基於規格**: `/docs/02_design/function-specs/` 完整規格
**涵蓋平台**: Mobile App + Web App
## 🎯 總體用戶流程概覽
```mermaid
graph TD
START([用戶訪問應用]) --> AUTH_CHECK{已登入?}
AUTH_CHECK -->|否| AUTH_FLOW[認證流程]
AUTH_CHECK -->|是| MAIN_APP[主應用程序]
AUTH_FLOW --> REGISTER[註冊流程]
AUTH_FLOW --> LOGIN[登入流程]
AUTH_FLOW --> FORGOT[忘記密碼]
REGISTER --> PROFILE_SETUP[個人資料設定]
LOGIN --> MAIN_APP
FORGOT --> RESET_PASSWORD[密碼重設]
PROFILE_SETUP --> ONBOARDING[新手引導]
RESET_PASSWORD --> LOGIN
ONBOARDING --> MAIN_APP
MAIN_APP --> LEARNING_MAP[學習地圖]
MAIN_APP --> VOCAB[詞彙學習]
MAIN_APP --> DIALOGUE[情境對話]
MAIN_APP --> SHOP[道具商店]
MAIN_APP --> PROFILE[個人資料]
style START fill:#e1f5fe
style MAIN_APP fill:#c8e6c9
style AUTH_FLOW fill:#fff3e0
style LEARNING_MAP fill:#f3e5f5
style VOCAB fill:#e8f5e8
style DIALOGUE fill:#fff9c4
style SHOP fill:#fce4ec
```
## 🔐 用戶認證流程
### 完整認證流程圖
```mermaid
graph TD
LANDING[Landing Page] --> LOGIN_CHOICE{選擇登入方式}
LOGIN_CHOICE -->|新用戶| REGISTER_START[開始註冊]
LOGIN_CHOICE -->|舊用戶| LOGIN_START[開始登入]
LOGIN_CHOICE -->|第三方| OAUTH[第三方認證]
%% 註冊流程
REGISTER_START --> EMAIL_INPUT[輸入Email]
EMAIL_INPUT --> EMAIL_VERIFY[Email驗證]
EMAIL_VERIFY --> PASSWORD_SET[設定密碼]
PASSWORD_SET --> PROFILE_INFO[基本資料]
PROFILE_INFO --> LEARNING_LEVEL[學習程度設定]
LEARNING_LEVEL --> TRIAL_OFFER[試用方案選擇]
%% 登入流程
LOGIN_START --> CREDENTIALS[輸入帳密]
CREDENTIALS --> LOGIN_VERIFY[驗證登入]
LOGIN_VERIFY -->|成功| CHECK_SUBSCRIPTION[檢查訂閱狀態]
LOGIN_VERIFY -->|失敗| LOGIN_ERROR[登入錯誤處理]
LOGIN_ERROR --> FORGOT_PASSWORD[忘記密碼?]
%% 第三方登入
OAUTH --> OAUTH_VERIFY[第三方驗證]
OAUTH_VERIFY --> ACCOUNT_LINK[帳戶關聯]
%% 最終導向
TRIAL_OFFER --> WELCOME_SCREEN[歡迎頁面]
CHECK_SUBSCRIPTION --> WELCOME_SCREEN
ACCOUNT_LINK --> WELCOME_SCREEN
FORGOT_PASSWORD --> PASSWORD_RESET[密碼重設流程]
PASSWORD_RESET --> LOGIN_START
WELCOME_SCREEN --> MAIN_DASHBOARD[主控制台]
style REGISTER_START fill:#e8f5e8
style LOGIN_START fill:#fff3e0
style OAUTH fill:#f3e5f5
style WELCOME_SCREEN fill:#c8e6c9
```
### 用戶角色與權限流程
```mermaid
graph LR
USER_LOGIN[用戶登入] --> ROLE_CHECK{檢查用戶角色}
ROLE_CHECK -->|免費用戶| FREE_USER[免費用戶權限]
ROLE_CHECK -->|試用用戶| TRIAL_USER[試用用戶權限]
ROLE_CHECK -->|訂閱用戶| SUBSCRIBER[訂閱用戶權限]
ROLE_CHECK -->|管理員| ADMIN[管理員權限]
FREE_USER --> FREE_LIMITS[基礎對話練習 3次/日<br/>基礎詞庫<br/>簡化版報告]
TRIAL_USER --> TRIAL_LIMITS[無限對話練習(7天)<br/>完整詞庫<br/>詳細版報告<br/>離線模式]
SUBSCRIBER --> SUB_LIMITS[無限制存取<br/>完整功能<br/>詳細分析<br/>數據匯出]
ADMIN --> ADMIN_LIMITS[完整管理功能<br/>系統監控<br/>用戶管理]
style FREE_USER fill:#ffebee
style TRIAL_USER fill:#fff3e0
style SUBSCRIBER fill:#e8f5e8
style ADMIN fill:#e3f2fd
```
## 🗺️ 學習地圖流程
### 學習路徑導航流程
```mermaid
graph TD
MAP_ENTRY[進入學習地圖] --> PROGRESS_LOAD[載入學習進度]
PROGRESS_LOAD --> MAP_OVERVIEW[地圖總覽顯示]
MAP_OVERVIEW --> LEVEL_SELECT{選擇關卡}
LEVEL_SELECT -->|已解鎖| LEVEL_AVAILABLE[可用關卡]
LEVEL_SELECT -->|未解鎖| LEVEL_LOCKED[鎖定關卡]
LEVEL_SELECT -->|已完成| LEVEL_COMPLETED[已完成關卡]
LEVEL_AVAILABLE --> LEVEL_DETAILS[關卡詳情頁]
LEVEL_LOCKED --> UNLOCK_CONDITION[解鎖條件說明]
LEVEL_COMPLETED --> REVIEW_OPTION{重複練習?}
LEVEL_DETAILS --> DIFFICULTY_SELECT[選擇難度]
UNLOCK_CONDITION --> PROGRESS_NEEDED[需要完成的前置關卡]
REVIEW_OPTION -->|是| LEVEL_DETAILS
REVIEW_OPTION -->|否| ACHIEVEMENT_CHECK[查看成就]
DIFFICULTY_SELECT --> LEARNING_TYPE{學習類型}
PROGRESS_NEEDED --> MAP_OVERVIEW
LEARNING_TYPE -->|詞彙學習| VOCAB_FLOW[進入詞彙學習]
LEARNING_TYPE -->|情境對話| DIALOGUE_FLOW[進入對話練習]
ACHIEVEMENT_CHECK --> BADGE_DISPLAY[徽章展示]
BADGE_DISPLAY --> MAP_OVERVIEW
style MAP_ENTRY fill:#f3e5f5
style LEVEL_AVAILABLE fill:#e8f5e8
style LEVEL_LOCKED fill:#ffebee
style LEVEL_COMPLETED fill:#fff3e0
```
### 成就系統流程
```mermaid
graph LR
ACHIEVEMENT_TRIGGER[成就觸發事件] --> ACHIEVEMENT_CHECK{檢查成就條件}
ACHIEVEMENT_CHECK -->|達成| ACHIEVEMENT_UNLOCK[解鎖成就]
ACHIEVEMENT_CHECK -->|未達成| PROGRESS_UPDATE[更新進度]
ACHIEVEMENT_UNLOCK --> REWARD_GRANT[發放獎勵]
REWARD_GRANT --> NOTIFICATION[成就通知]
NOTIFICATION --> BADGE_ADD[添加徽章]
BADGE_ADD --> XP_REWARD[經驗值獎勵]
XP_REWARD --> DIAMOND_REWARD[鑽石獎勵]
DIAMOND_REWARD --> ACHIEVEMENT_GALLERY[成就畫廊更新]
PROGRESS_UPDATE --> ACHIEVEMENT_GALLERY
style ACHIEVEMENT_UNLOCK fill:#e8f5e8
style REWARD_GRANT fill:#fff3e0
style BADGE_ADD fill:#f3e5f5
```
## 📚 詞彙學習流程
### 完整詞彙學習流程
```mermaid
graph TD
VOCAB_START[開始詞彙學習] --> VOCAB_TYPE{選擇學習模式}
VOCAB_TYPE -->|新詞學習| NEW_VOCAB[新詞彙介紹]
VOCAB_TYPE -->|複習模式| REVIEW_VOCAB[複習詞彙]
VOCAB_TYPE -->|測驗模式| TEST_VOCAB[詞彙測驗]
%% 新詞學習流程
NEW_VOCAB --> VOCAB_INTRO[詞彙介紹頁面]
VOCAB_INTRO --> PRONUNCIATION[發音播放]
PRONUNCIATION --> EXAMPLES[例句展示]
EXAMPLES --> MEMORY_TIPS[記憶提示]
MEMORY_TIPS --> PRACTICE_START[開始練習]
%% 複習模式流程
REVIEW_VOCAB --> DUE_CHECK[檢查待複習詞彙]
DUE_CHECK -->|有待複習| REVIEW_SESSION[複習會話]
DUE_CHECK -->|無待複習| NO_REVIEW[沒有待複習詞彙]
NO_REVIEW --> NEW_VOCAB
%% 測驗模式流程
TEST_VOCAB --> TEST_TYPE{選擇測驗類型}
TEST_TYPE -->|選擇題| CHOICE_TEST[選擇題測驗]
TEST_TYPE -->|配對題| MATCHING_TEST[配對測驗]
TEST_TYPE -->|填空題| FILL_BLANK[填空測驗]
%% 練習流程
PRACTICE_START --> PRACTICE_TYPE{練習類型}
REVIEW_SESSION --> PRACTICE_TYPE
CHOICE_TEST --> PRACTICE_TYPE
MATCHING_TEST --> PRACTICE_TYPE
FILL_BLANK --> PRACTICE_TYPE
PRACTICE_TYPE -->|選擇題練習| CHOICE_PRACTICE[選擇題練習]
PRACTICE_TYPE -->|流暢度配對| FLUENCY_MATCHING[流暢度配對]
PRACTICE_TYPE -->|句子重組| SENTENCE_REORG[句子重組]
%% 答題處理
CHOICE_PRACTICE --> ANSWER_CHECK{答案檢查}
FLUENCY_MATCHING --> ANSWER_CHECK
SENTENCE_REORG --> ANSWER_CHECK
ANSWER_CHECK -->|正確| CORRECT_FEEDBACK[正確回饋]
ANSWER_CHECK -->|錯誤| INCORRECT_FEEDBACK[錯誤回饋]
CORRECT_FEEDBACK --> XP_GAIN[經驗值獲得]
INCORRECT_FEEDBACK --> LIFE_CONSUME[消耗命條]
XP_GAIN --> PROGRESS_UPDATE[更新學習進度]
LIFE_CONSUME --> LIFE_CHECK{命條檢查}
LIFE_CHECK -->|命條>0| PROGRESS_UPDATE
LIFE_CHECK -->|命條=0| LIFE_DEPLETED[命條耗盡]
PROGRESS_UPDATE --> MASTERY_CHECK{掌握度檢查}
MASTERY_CHECK -->|未掌握| CONTINUE_PRACTICE[繼續練習]
MASTERY_CHECK -->|已掌握| MASTERY_ACHIEVED[詞彙掌握]
CONTINUE_PRACTICE --> PRACTICE_TYPE
MASTERY_ACHIEVED --> SESSION_COMPLETE[學習會話完成]
LIFE_DEPLETED --> LIFE_RECOVER[命條恢復選項]
LIFE_RECOVER --> WATCH_AD[觀看廣告]
LIFE_RECOVER --> BUY_LIVES[購買命條]
LIFE_RECOVER --> WAIT_TIMER[等待恢復]
WATCH_AD --> PRACTICE_TYPE
BUY_LIVES --> SHOP_FLOW[前往商店]
WAIT_TIMER --> END_SESSION[結束會話]
SESSION_COMPLETE --> RESULTS_DISPLAY[結果展示]
END_SESSION --> RESULTS_DISPLAY
style NEW_VOCAB fill:#e8f5e8
style REVIEW_VOCAB fill:#fff3e0
style TEST_VOCAB fill:#f3e5f5
style CORRECT_FEEDBACK fill:#c8e6c9
style INCORRECT_FEEDBACK fill:#ffcdd2
style LIFE_DEPLETED fill:#ffebee
```
### 間隔複習算法流程
```mermaid
graph TD
WORD_REVIEW[詞彙複習] --> ANSWER_QUALITY{回答品質評估}
ANSWER_QUALITY -->|Again(1)| RESET_INTERVAL[重置間隔 = 1天]
ANSWER_QUALITY -->|Hard(2)| HARD_INTERVAL[間隔 × 1.2]
ANSWER_QUALITY -->|Good(3)| GOOD_INTERVAL[間隔 × ease_factor]
ANSWER_QUALITY -->|Easy(4)| EASY_INTERVAL[間隔 × ease_factor × 1.3]
RESET_INTERVAL --> UPDATE_EASE_FACTOR[更新容易度因子]
HARD_INTERVAL --> UPDATE_EASE_FACTOR
GOOD_INTERVAL --> UPDATE_EASE_FACTOR
EASY_INTERVAL --> UPDATE_EASE_FACTOR
UPDATE_EASE_FACTOR --> CALCULATE_NEXT[計算下次複習時間]
CALCULATE_NEXT --> UPDATE_MASTERY[更新掌握度]
UPDATE_MASTERY --> MASTERY_CHECK{掌握度 ≥ 80%?}
MASTERY_CHECK -->|是| MASTERED[標記為已掌握]
MASTERY_CHECK -->|否| SCHEDULE_NEXT[安排下次複習]
MASTERED --> GRADUATION[從複習池移除]
SCHEDULE_NEXT --> REVIEW_QUEUE[加入複習佇列]
style RESET_INTERVAL fill:#ffcdd2
style HARD_INTERVAL fill:#fff3e0
style GOOD_INTERVAL fill:#e8f5e8
style EASY_INTERVAL fill:#c8e6c9
style MASTERED fill:#a5d6a7
```
## 💬 情境對話流程
### 完整對話練習流程
```mermaid
graph TD
DIALOGUE_START[開始對話練習] --> SCENARIO_SELECT[選擇對話場景]
SCENARIO_SELECT --> CHARACTER_INTRO[角色介紹]
CHARACTER_INTRO --> CONTEXT_SETUP[情境背景說明]
CONTEXT_SETUP --> KEYWORDS_PREVIEW[關鍵詞預覽]
KEYWORDS_PREVIEW --> DIALOGUE_BEGIN[開始對話]
DIALOGUE_BEGIN --> AI_RESPONSE[AI角色回應]
AI_RESPONSE --> USER_INPUT{用戶輸入方式}
USER_INPUT -->|文字輸入| TEXT_INPUT[文字輸入框]
USER_INPUT -->|語音輸入| VOICE_INPUT[語音輸入]
USER_INPUT -->|選擇回應| QUICK_REPLY[快速回應選項]
TEXT_INPUT --> INPUT_ANALYSIS[輸入分析]
VOICE_INPUT --> SPEECH_RECOGNITION[語音識別]
QUICK_REPLY --> INPUT_ANALYSIS
SPEECH_RECOGNITION --> PRONUNCIATION_CHECK[發音檢查]
PRONUNCIATION_CHECK --> INPUT_ANALYSIS
INPUT_ANALYSIS --> AI_EVALUATION[AI評估回應]
AI_EVALUATION --> GRAMMAR_CHECK[語法檢查]
GRAMMAR_CHECK --> SEMANTIC_CHECK[語意檢查]
SEMANTIC_CHECK --> CONTEXT_CHECK[情境適配檢查]
CONTEXT_CHECK --> FEEDBACK_GENERATE[生成回饋]
FEEDBACK_GENERATE --> RESPONSE_QUALITY{回應品質}
RESPONSE_QUALITY -->|優秀| EXCELLENT_FEEDBACK[優秀回饋]
RESPONSE_QUALITY -->|良好| GOOD_FEEDBACK[良好回饋]
RESPONSE_QUALITY -->|需改進| IMPROVEMENT_FEEDBACK[改進建議]
RESPONSE_QUALITY -->|不當| INAPPROPRIATE_FEEDBACK[不當回應處理]
EXCELLENT_FEEDBACK --> HIGH_XP[高經驗值獲得]
GOOD_FEEDBACK --> MEDIUM_XP[中等經驗值]
IMPROVEMENT_FEEDBACK --> LOW_XP[低經驗值]
INAPPROPRIATE_FEEDBACK --> NO_XP[無經驗值]
HIGH_XP --> DIALOGUE_CONTINUE{對話繼續?}
MEDIUM_XP --> DIALOGUE_CONTINUE
LOW_XP --> CORRECTION_OPTION[提供修正建議]
NO_XP --> LIFE_CONSUME[消耗命條]
CORRECTION_OPTION --> DIALOGUE_CONTINUE
LIFE_CONSUME --> LIFE_CHECK{命條檢查}
LIFE_CHECK -->|命條>0| DIALOGUE_CONTINUE
LIFE_CHECK -->|命條=0| DIALOGUE_END[對話結束]
DIALOGUE_CONTINUE -->|是| NEXT_TURN[下一輪對話]
DIALOGUE_CONTINUE -->|否| DIALOGUE_COMPLETE[對話完成]
NEXT_TURN --> AI_RESPONSE
DIALOGUE_COMPLETE --> DIALOGUE_ANALYSIS[對話分析]
DIALOGUE_END --> DIALOGUE_ANALYSIS
DIALOGUE_ANALYSIS --> PERFORMANCE_REPORT[表現報告]
PERFORMANCE_REPORT --> GRAMMAR_ANALYSIS[語法分析]
GRAMMAR_ANALYSIS --> VOCABULARY_USAGE[詞彙使用分析]
VOCABULARY_USAGE --> FLUENCY_SCORE[流暢度評分]
FLUENCY_SCORE --> IMPROVEMENT_SUGGESTIONS[改進建議]
IMPROVEMENT_SUGGESTIONS --> RESULTS_DISPLAY[結果展示]
style EXCELLENT_FEEDBACK fill:#c8e6c9
style GOOD_FEEDBACK fill:#e8f5e8
style IMPROVEMENT_FEEDBACK fill:#fff3e0
style INAPPROPRIATE_FEEDBACK fill:#ffcdd2
style LIFE_CONSUME fill:#ffebee
```
### 對話AI分析流程
```mermaid
graph LR
USER_INPUT[用戶輸入] --> NLP_PROCESSING[NLP處理]
NLP_PROCESSING --> TOKENIZATION[詞元化]
TOKENIZATION --> POS_TAGGING[詞性標註]
POS_TAGGING --> SYNTAX_ANALYSIS[語法分析]
SYNTAX_ANALYSIS --> GRAMMAR_CHECK[語法檢查]
SYNTAX_ANALYSIS --> SEMANTIC_ANALYSIS[語意分析]
SYNTAX_ANALYSIS --> CONTEXT_MATCHING[情境匹配]
GRAMMAR_CHECK --> SCORE_GRAMMAR[語法分數]
SEMANTIC_ANALYSIS --> SCORE_SEMANTIC[語意分數]
CONTEXT_MATCHING --> SCORE_CONTEXT[情境分數]
SCORE_GRAMMAR --> OVERALL_SCORE[總體評分]
SCORE_SEMANTIC --> OVERALL_SCORE
SCORE_CONTEXT --> OVERALL_SCORE
OVERALL_SCORE --> FEEDBACK_GENERATION[回饋生成]
FEEDBACK_GENERATION --> AI_RESPONSE[AI回應生成]
style NLP_PROCESSING fill:#e1f5fe
style OVERALL_SCORE fill:#e8f5e8
style AI_RESPONSE fill:#f3e5f5
```
## 🛒 道具商店流程
### 完整商店購買流程
```mermaid
graph TD
SHOP_ENTER[進入商店] --> SHOP_CATEGORIES[商品分類]
SHOP_CATEGORIES --> CATEGORY_SELECT{選擇分類}
CATEGORY_SELECT -->|命條道具| LIFE_ITEMS[命條相關道具]
CATEGORY_SELECT -->|學習道具| LEARNING_ITEMS[學習增效道具]
CATEGORY_SELECT -->|裝飾道具| COSMETIC_ITEMS[裝飾道具]
CATEGORY_SELECT -->|訂閱服務| SUBSCRIPTION_PLANS[訂閱方案]
LIFE_ITEMS --> ITEM_DETAILS[道具詳情頁]
LEARNING_ITEMS --> ITEM_DETAILS
COSMETIC_ITEMS --> ITEM_DETAILS
SUBSCRIPTION_PLANS --> PLAN_DETAILS[方案詳情頁]
ITEM_DETAILS --> PURCHASE_CHECK{購買檢查}
PLAN_DETAILS --> SUBSCRIPTION_CHECK{訂閱檢查}
PURCHASE_CHECK -->|鑽石足夠| CONFIRM_PURCHASE[確認購買]
PURCHASE_CHECK -->|鑽石不足| INSUFFICIENT_DIAMONDS[鑽石不足]
SUBSCRIPTION_CHECK -->|可訂閱| SUBSCRIPTION_PAYMENT[訂閱付款]
SUBSCRIPTION_CHECK -->|已訂閱| ALREADY_SUBSCRIBED[已有訂閱]
INSUFFICIENT_DIAMONDS --> DIAMOND_PURCHASE[購買鑽石]
ALREADY_SUBSCRIBED --> MANAGE_SUBSCRIPTION[管理訂閱]
CONFIRM_PURCHASE --> PAYMENT_PROCESS[處理付款]
SUBSCRIPTION_PAYMENT --> PAYMENT_GATEWAY[付款閘道]
DIAMOND_PURCHASE --> PAYMENT_GATEWAY
PAYMENT_PROCESS --> DIAMOND_DEDUCTION[扣除鑽石]
PAYMENT_GATEWAY --> PAYMENT_VERIFY[驗證付款]
DIAMOND_DEDUCTION --> ITEM_DELIVERY[道具發放]
PAYMENT_VERIFY -->|成功| PAYMENT_SUCCESS[付款成功]
PAYMENT_VERIFY -->|失敗| PAYMENT_FAILED[付款失敗]
PAYMENT_SUCCESS --> DIAMOND_CREDIT[鑽石入帳/訂閱啟用]
PAYMENT_FAILED --> PAYMENT_RETRY[重試付款]
DIAMOND_CREDIT --> PURCHASE_COMPLETE[購買完成]
ITEM_DELIVERY --> INVENTORY_UPDATE[更新道具庫存]
PAYMENT_RETRY --> PAYMENT_GATEWAY
INVENTORY_UPDATE --> PURCHASE_COMPLETE
PURCHASE_COMPLETE --> TRANSACTION_RECORD[交易記錄]
TRANSACTION_RECORD --> SHOP_RETURN[返回商店]
MANAGE_SUBSCRIPTION --> CANCEL_SUBSCRIPTION[取消訂閱]
MANAGE_SUBSCRIPTION --> UPGRADE_SUBSCRIPTION[升級訂閱]
style INSUFFICIENT_DIAMONDS fill:#ffebee
style PAYMENT_SUCCESS fill:#e8f5e8
style PAYMENT_FAILED fill:#ffcdd2
style PURCHASE_COMPLETE fill:#c8e6c9
```
### 虛擬貨幣經濟流程
```mermaid
graph LR
CURRENCY_SOURCES[貨幣來源] --> EARN_DIAMONDS{鑽石獲得}
CURRENCY_SOURCES --> EARN_XP{經驗值獲得}
CURRENCY_SOURCES --> EARN_COINS{學習幣獲得}
EARN_DIAMONDS -->|每日登入| DAILY_LOGIN[每日獎勵: 2鑽石]
EARN_DIAMONDS -->|完成成就| ACHIEVEMENT_REWARD[成就獎勵: 10-50鑽石]
EARN_DIAMONDS -->|觀看廣告| AD_REWARD[廣告獎勵: 1鑽石/次 max 5]
EARN_DIAMONDS -->|內購| IAP[應用內購買]
EARN_XP -->|詞彙學習| VOCAB_XP[100 XP]
EARN_XP -->|對話練習| DIALOGUE_XP[200 XP]
EARN_XP -->|連續學習| STREAK_BONUS[20% 加成]
EARN_XP -->|完美表現| PERFECT_BONUS[50 XP]
EARN_COINS -->|每日任務| DAILY_TASK[50 學習幣]
EARN_COINS -->|學習活動| STUDY_REWARD[基於表現]
DAILY_LOGIN --> DIAMOND_WALLET[鑽石錢包]
ACHIEVEMENT_REWARD --> DIAMOND_WALLET
AD_REWARD --> DIAMOND_WALLET
IAP --> DIAMOND_WALLET
VOCAB_XP --> XP_COUNTER[經驗值計數]
DIALOGUE_XP --> XP_COUNTER
STREAK_BONUS --> XP_COUNTER
PERFECT_BONUS --> XP_COUNTER
DAILY_TASK --> COIN_WALLET[學習幣錢包]
STUDY_REWARD --> COIN_WALLET
DIAMOND_WALLET --> SPENDING[消費項目]
XP_COUNTER --> LEVEL_SYSTEM[等級系統]
COIN_WALLET --> SPENDING
style DAILY_LOGIN fill:#e8f5e8
style ACHIEVEMENT_REWARD fill:#fff3e0
style IAP fill:#f3e5f5
style LEVEL_SYSTEM fill:#e1f5fe
```
## 🔄 命條系統流程
### 命條管理流程
```mermaid
graph TD
LIFE_SYSTEM[命條系統] --> LIFE_CHECK{當前命條狀態}
LIFE_CHECK -->|充足 5個| FULL_LIVES[命條充足]
LIFE_CHECK -->|部分 1-4個| PARTIAL_LIVES[命條部分]
LIFE_CHECK -->|耗盡 0個| NO_LIVES[命條耗盡]
FULL_LIVES --> LEARNING_ACTIVITY[學習活動]
PARTIAL_LIVES --> RECOVERY_OPTION{恢復選項}
NO_LIVES --> FORCED_RECOVERY[強制恢復選項]
LEARNING_ACTIVITY --> ACTIVITY_RESULT{活動結果}
ACTIVITY_RESULT -->|成功| SUCCESS_REWARD[成功獎勵]
ACTIVITY_RESULT -->|失敗| LIFE_CONSUME[消耗命條]
SUCCESS_REWARD --> XP_GAIN[經驗值獲得]
LIFE_CONSUME --> LIFE_DEDUCTION[命條 -1]
LIFE_DEDUCTION --> LIFE_CHECK
XP_GAIN --> LEARNING_ACTIVITY
RECOVERY_OPTION -->|自然恢復| AUTO_RECOVERY[4小時自動恢復]
RECOVERY_OPTION -->|觀看廣告| WATCH_AD[觀看廣告恢復]
RECOVERY_OPTION -->|鑽石購買| BUY_LIVES[購買命條]
RECOVERY_OPTION -->|繼續學習| LEARNING_ACTIVITY
FORCED_RECOVERY -->|觀看廣告| AD_RECOVERY[廣告恢復 +1命條]
FORCED_RECOVERY -->|鑽石購買| DIAMOND_RECOVERY[鑽石恢復 +5命條]
FORCED_RECOVERY -->|等待| WAIT_TIMER[等待4小時]
AUTO_RECOVERY --> TIMER_CHECK{恢復計時器}
WATCH_AD --> AD_LIMIT_CHECK{廣告次數檢查}
BUY_LIVES --> DIAMOND_COST[50鑽石/命條]
TIMER_CHECK -->|時間到| ADD_LIFE[+1命條]
TIMER_CHECK -->|未到時間| CONTINUE_TIMER[繼續計時]
AD_LIMIT_CHECK -->|次數內 <3次/| AD_REWARD_LIFE[+1命條]
AD_LIMIT_CHECK -->|超過次數| AD_LIMIT_REACHED[廣告次數已滿]
DIAMOND_COST --> DIAMOND_CHECK{鑽石是否足夠}
DIAMOND_CHECK -->|足夠| PURCHASE_LIVES[購買成功 +1命條]
DIAMOND_CHECK -->|不足| INSUFFICIENT_DIAMONDS[鑽石不足]
ADD_LIFE --> LIFE_CHECK
AD_REWARD_LIFE --> LIFE_CHECK
PURCHASE_LIVES --> LIFE_CHECK
AD_RECOVERY --> LIFE_CHECK
DIAMOND_RECOVERY --> LIFE_CHECK
AD_LIMIT_REACHED --> FORCED_RECOVERY
INSUFFICIENT_DIAMONDS --> BUY_DIAMONDS[前往購買鑽石]
CONTINUE_TIMER --> AUTO_RECOVERY
WAIT_TIMER --> AUTO_RECOVERY
style NO_LIVES fill:#ffebee
style LIFE_CONSUME fill:#ffcdd2
style SUCCESS_REWARD fill:#e8f5e8
style ADD_LIFE fill:#c8e6c9
style PURCHASE_LIVES fill:#a5d6a7
```
## 📊 學習分析與統計流程
### 學習數據收集與分析
```mermaid
graph TD
LEARNING_EVENT[學習事件發生] --> EVENT_CAPTURE[事件捕捉]
EVENT_CAPTURE --> DATA_CLASSIFICATION{數據分類}
DATA_CLASSIFICATION -->|學習行為| BEHAVIOR_DATA[行為數據]
DATA_CLASSIFICATION -->|學習成果| PERFORMANCE_DATA[表現數據]
DATA_CLASSIFICATION -->|時間數據| TIME_DATA[時間數據]
DATA_CLASSIFICATION -->|錯誤數據| ERROR_DATA[錯誤數據]
BEHAVIOR_DATA --> BEHAVIOR_ANALYSIS[行為分析]
PERFORMANCE_DATA --> PERFORMANCE_ANALYSIS[表現分析]
TIME_DATA --> TIME_ANALYSIS[時間分析]
ERROR_DATA --> ERROR_ANALYSIS[錯誤分析]
BEHAVIOR_ANALYSIS --> LEARNING_PATTERN[學習模式識別]
PERFORMANCE_ANALYSIS --> PROGRESS_TRACKING[進度追蹤]
TIME_ANALYSIS --> EFFICIENCY_CALC[效率計算]
ERROR_ANALYSIS --> WEAKNESS_IDENTIFICATION[弱點識別]
LEARNING_PATTERN --> PERSONALIZED_RECOMMENDATION[個人化推薦]
PROGRESS_TRACKING --> ACHIEVEMENT_TRACKING[成就追蹤]
EFFICIENCY_CALC --> OPTIMIZATION_SUGGESTION[優化建議]
WEAKNESS_IDENTIFICATION --> TARGETED_PRACTICE[針對性練習]
PERSONALIZED_RECOMMENDATION --> DASHBOARD_UPDATE[儀表板更新]
ACHIEVEMENT_TRACKING --> DASHBOARD_UPDATE
OPTIMIZATION_SUGGESTION --> DASHBOARD_UPDATE
TARGETED_PRACTICE --> DASHBOARD_UPDATE
DASHBOARD_UPDATE --> USER_INSIGHTS[用戶洞察展示]
style LEARNING_EVENT fill:#e1f5fe
style DASHBOARD_UPDATE fill:#e8f5e8
style USER_INSIGHTS fill:#c8e6c9
```
## 🌍 跨平台功能流程差異
### Mobile vs Web 平台特有流程
```mermaid
graph TD
PLATFORM_CHECK[平台檢測] --> MOBILE{Mobile App}
PLATFORM_CHECK --> WEB{Web App}
MOBILE -->|專有功能| MOBILE_FEATURES[Mobile專有功能]
WEB -->|專有功能| WEB_FEATURES[Web專有功能]
MOBILE_FEATURES -->|觸覺回饋| HAPTIC_FEEDBACK[震動回饋]
MOBILE_FEATURES -->|推播通知| PUSH_NOTIFICATION[學習提醒]
MOBILE_FEATURES -->|相機掃描| CAMERA_SCAN[掃描書籍]
MOBILE_FEATURES -->|離線學習| OFFLINE_MODE[完全離線]
MOBILE_FEATURES -->|語音喚醒| VOICE_WAKE["Hey Drama"]
WEB_FEATURES -->|多標籤| MULTI_TAB[多標籤學習]
WEB_FEATURES -->|快捷鍵| KEYBOARD_SHORTCUTS[鍵盤快捷鍵]
WEB_FEATURES -->|數據匯出| DATA_EXPORT[CSV/PDF匯出]
WEB_FEATURES -->|列印| PRINT_OPTIMIZE[學習報告列印]
WEB_FEATURES -->|多螢幕| MULTI_SCREEN[多顯示器支援]
WEB_FEATURES -->|即時協作| REAL_TIME_COLLAB[多人學習]
%% 共同功能適配
MOBILE -->|適配| MOBILE_ADAPT[Mobile適配]
WEB -->|適配| WEB_ADAPT[Web適配]
MOBILE_ADAPT -->|觸控操作| TOUCH_INTERFACE[觸控介面]
MOBILE_ADAPT -->|小螢幕優化| SMALL_SCREEN[小螢幕布局]
MOBILE_ADAPT -->|原生感受| NATIVE_FEEL[原生體驗]
WEB_ADAPT -->|滑鼠操作| MOUSE_INTERFACE[滑鼠介面]
WEB_ADAPT -->|大螢幕優化| LARGE_SCREEN[大螢幕布局]
WEB_ADAPT -->|瀏覽器整合| BROWSER_INTEGRATION[瀏覽器功能]
style MOBILE_FEATURES fill:#e8f5e8
style WEB_FEATURES fill:#f3e5f5
style MOBILE_ADAPT fill:#fff3e0
style WEB_ADAPT fill:#e1f5fe
```
## 🎯 完整用戶旅程地圖
### 新用戶完整學習旅程
```mermaid
graph TD
NEW_USER[新用戶訪問] --> FIRST_IMPRESSION[首次印象]
FIRST_IMPRESSION --> TRIAL_REGISTRATION[試用註冊]
TRIAL_REGISTRATION --> ONBOARDING[新手引導]
ONBOARDING --> LEVEL_ASSESSMENT[程度評估]
LEVEL_ASSESSMENT --> LEARNING_PATH[學習路徑規劃]
LEARNING_PATH --> FIRST_LESSON[第一堂課]
FIRST_LESSON --> VOCABULARY_INTRO[詞彙介紹]
VOCABULARY_INTRO --> DIALOGUE_PRACTICE[對話練習]
DIALOGUE_PRACTICE --> IMMEDIATE_FEEDBACK[即時回饋]
IMMEDIATE_FEEDBACK --> SUCCESS_FEELING[成功感建立]
SUCCESS_FEELING --> HABIT_FORMATION[習慣養成]
HABIT_FORMATION --> DAILY_PRACTICE{每日練習}
DAILY_PRACTICE -->|堅持| PROGRESS_VISIBLE[進度可見]
DAILY_PRACTICE -->|中斷| RE_ENGAGEMENT[重新參與]
PROGRESS_VISIBLE --> ACHIEVEMENT_UNLOCK[成就解鎖]
ACHIEVEMENT_UNLOCK --> SOCIAL_SHARING[社交分享]
RE_ENGAGEMENT --> PUSH_NOTIFICATION[推播提醒]
RE_ENGAGEMENT --> EMAIL_REMINDER[郵件提醒]
PUSH_NOTIFICATION --> COMEBACK_INCENTIVE[回歸獎勵]
EMAIL_REMINDER --> COMEBACK_INCENTIVE
SOCIAL_SHARING --> COMMUNITY_ENGAGEMENT[社群參與]
COMEBACK_INCENTIVE --> DAILY_PRACTICE
COMMUNITY_ENGAGEMENT --> LONG_TERM_ENGAGEMENT[長期參與]
LONG_TERM_ENGAGEMENT --> SUBSCRIPTION_CONSIDERATION[考慮訂閱]
SUBSCRIPTION_CONSIDERATION --> PREMIUM_TRIAL[高級試用]
PREMIUM_TRIAL --> CONVERSION_DECISION{轉換決策}
CONVERSION_DECISION -->|訂閱| PREMIUM_USER[付費用戶]
CONVERSION_DECISION -->|不訂閱| FREE_USER_JOURNEY[免費用戶旅程]
PREMIUM_USER --> ADVANCED_FEATURES[高級功能體驗]
ADVANCED_FEATURES --> RETENTION[長期留存]
FREE_USER_JOURNEY --> LIMITED_FEATURES[功能限制體驗]
LIMITED_FEATURES --> UPGRADE_PROMPTS[升級提示]
UPGRADE_PROMPTS --> CONVERSION_DECISION
style NEW_USER fill:#e1f5fe
style SUCCESS_FEELING fill:#c8e6c9
style ACHIEVEMENT_UNLOCK fill:#fff3e0
style PREMIUM_USER fill:#a5d6a7
style RETENTION fill:#4caf50
```
## 📈 性能與監控流程
### 系統監控與錯誤處理
```mermaid
graph LR
SYSTEM_MONITOR[系統監控] --> METRICS_COLLECTION[指標收集]
METRICS_COLLECTION --> PERFORMANCE_ANALYSIS[性能分析]
PERFORMANCE_ANALYSIS --> THRESHOLD_CHECK{閾值檢查}
THRESHOLD_CHECK -->|正常| NORMAL_OPERATION[正常運行]
THRESHOLD_CHECK -->|異常| ALERT_TRIGGER[告警觸發]
ALERT_TRIGGER --> ERROR_CLASSIFICATION{錯誤分類}
ERROR_CLASSIFICATION -->|輕微| LOG_ERROR[記錄錯誤]
ERROR_CLASSIFICATION -->|嚴重| IMMEDIATE_ACTION[立即響應]
ERROR_CLASSIFICATION -->|致命| SYSTEM_RECOVERY[系統恢復]
LOG_ERROR --> ERROR_TRACKING[錯誤追蹤]
IMMEDIATE_ACTION --> USER_NOTIFICATION[用戶通知]
SYSTEM_RECOVERY --> FALLBACK_MODE[降級模式]
NORMAL_OPERATION --> CONTINUOUS_MONITORING[持續監控]
ERROR_TRACKING --> IMPROVEMENT_PLAN[改進計劃]
USER_NOTIFICATION --> ERROR_RESOLUTION[錯誤解決]
FALLBACK_MODE --> SERVICE_RESTORATION[服務恢復]
style ALERT_TRIGGER fill:#fff3e0
style IMMEDIATE_ACTION fill:#ffcdd2
style SYSTEM_RECOVERY fill:#ffebee
style SERVICE_RESTORATION fill:#e8f5e8
```
---
## 🎯 總結
本文檔基於 `/docs/02_design/function-specs/` 完整規格繪製了Drama Ling語言學習應用的全套用戶流程圖涵蓋
### ✅ **已包含的完整流程**
1. **認證系統流程** - 註冊、登入、角色權限管理
2. **學習地圖流程** - 關卡導航、成就系統
3. **詞彙學習流程** - 學習模式、間隔複習算法
4. **情境對話流程** - AI對話分析、表現評估
5. **道具商店流程** - 購買流程、虛擬貨幣經濟
6. **命條系統流程** - 生命值管理、恢復機制
7. **分析統計流程** - 數據收集、個人化推薦
8. **跨平台差異** - Mobile vs Web 功能適配
9. **用戶旅程地圖** - 從新用戶到長期留存
10. **系統監控流程** - 性能監控、錯誤處理
### 📊 **規格一致性確認**
- ✅ 完全對應 5個核心功能模組
- ✅ 涵蓋 Mobile + Web 雙平台特性
- ✅ 整合共同業務規則和API規格
- ✅ 包含完整的用戶角色權限邏輯
- ✅ 反映平台功能對應表的差異化設計
**文檔狀態**: 🟢 已完成
**基於版本**: function-specs v1.1
**最後更新**: 2025-09-10

View File

@ -25,7 +25,7 @@
- **詞彙學習系統**: 整合指定詞彙到對話情境中
- **學習地圖系統**: 提供情境對話的關卡和進度管理
- **道具商店系統**: 回覆提示道具、加時道具的商業整合
- **命條系統**: 對話失敗消耗命條的生命管理機制
- **命條系統**: 關卡啟動消耗命條的生命管理機制
- **排行榜系統**: 限時挑戰成績和社交競爭功能
## 📱 涉及的UI畫面
@ -51,7 +51,7 @@
#### 功能說明
- **畫面目的**: 提供沉浸式的情境對話體驗,支援多模態交互和即時反饋
- **進入條件**: 從學習地圖選擇關卡,或通過任務系統進入
- **退出條件**: 完成對話任務、主動退出、或命條歸零失敗
- **退出條件**: 完成對話任務、主動退出、或資源不足
#### 畫面欄位細節
@ -64,7 +64,7 @@
| 劇情任務顯示區 | Object | 是 | - | 任務物件格式 | 有活躍任務時 |
| 指定詞彙顯示區 | Array | 否 | [] | 詞彙陣列 | 有指定詞彙時 |
| 300秒倒數計時器 | Number | 否 | 300 | 0-300秒 | 限時挑戰模式 |
| 命條顯示 | Number | 是 | 用戶當前命條 | 0-5 | 始終顯示 |
| 命條顯示 | Number | 是 | 用戶當前命條 | 依用戶等級而定 | 始終顯示 |
| 鑽石數量顯示 | Number | 是 | 用戶當前鑽石 | ≥0 | 始終顯示 |
#### 互動元素
@ -90,8 +90,8 @@
#### 異常狀況處理
- **網路中斷**: 顯示重新連接提示 → 嘗試恢復對話狀態 → 保存當前進度
- **輸入超時**: 限時模式下顯示時間警告 → 自動提交空回覆 → 扣除命條
- **命條歸零**: 顯示失敗畫面 → 提供購買命條選項 → 或返回主畫面
- **輸入超時**: 限時模式下顯示時間警告 → 自動提交空回覆
- **命條不足**: 無法進入關卡 → 提供購買命條選項 → 或返回主畫面
- **語音識別失敗**: 顯示錯誤提示 → 提供重新錄音選項 → 或切換文字輸入
- **鑽石不足**: 回覆輔助功能時顯示不足提示 → 引導到商店購買 → 或提供免費替代方案
@ -213,7 +213,7 @@
| 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 |
|---------|---------|------|--------|----------|----------|
| 警告標題 | String | 是 | "確認退出挑戰?" | - | 始終顯示 |
| 後果說明 | String | 是 | "退出將失去當前進度並消耗1個命條" | - | 始終顯示 |
| 後果說明 | String | 是 | "退出將失去當前進度" | - | 始終顯示 |
| 剩餘時間 | Number | 是 | 當前剩餘秒數 | 0-300 | 限時模式顯示 |
| 確認退出按鈕 | Button | 是 | - | - | 始終顯示 |
| 取消按鈕 | Button | 是 | - | - | 始終顯示 |
@ -238,7 +238,7 @@
### 分支流程
- **回覆卡關**: 需要輔助 → UI_Reply_Assistance → 獲得引導 → 繼續對話
- **限時挑戰**: 300秒倒數 → 時間不足 → 使用加時道具 → 延長時間
- **命條不足**: 闖關失敗 → 提供購買補命道具 → 或等待自然恢復
- **命條不足**: 無法進入關卡 → 提供購買補命道具 → 或等待自然恢復
- **任務失敗**: 重新嘗試 → 或使用時光卷 → 挑戰前階段關卡
### 錯誤流程
@ -252,7 +252,7 @@
- **回覆提示道具**: 30鑽石/次,提供三層式智慧引導
- **300秒限時挑戰**: 首次免費後續50鑽石/次入場費
- **加時道具**: 300鑽石增加63秒挑戰時間
- **命條購買**: 100鑽石/個最多持有5個命條
- **命條系統**: 詳細規格請參閱 → **[共同業務規則 - 命條系統](../common/business-rules.md#🎮-命條系統-life-points-system)**
### 遊戲化機制
- **雙重任務系統**: 劇情任務+指定詞彙使用,同時完成獲得雙倍獎勵
@ -273,7 +273,7 @@
- [ ] 三維度評分算法驗證
- [ ] 任務完成判定邏輯測試
- [ ] 詞彙使用檢測準確性
- [ ] 命條消耗和恢復機制
- [ ] 命條消耗機制(參考業務規則)
- [ ] 道具購買和使用流程
- [ ] 限時模式倒數計時精確性
@ -309,7 +309,7 @@
- WebRTC語音功能需要HTTPS環境
- 對話數據需要即時同步到學習記錄
- 道具使用需要防重複消費機制
- 命條系統需要跨模組數據一致性
- 命條系統需要跨模組數據一致性(參考共同業務規則)
## 📚 參考資源

View File

@ -120,7 +120,7 @@
| 選項按鈕A-D | 單選按鈕 | 選擇答案選項 | 未選->已選 | 只能選擇一個選項 |
| 確認答案按鈕 | 按鈕 | 提交當前選擇 | 正常->已提交 | 選擇選項後啟用 |
| 題目發音按鈕 | 按鈕 | 播放題目中的詞彙 | 正常->播放中 | 聽力輔助功能 |
| 跳過題目按鈕 | 按鈕 | 跳過當前題目 | - | 記為答錯,扣命條 |
| 跳過題目按鈕 | 按鈕 | 跳過當前題目 | - | 允許跳過題目 |
| 暫停練習按鈕 | 按鈕 | 暫停當前練習 | 進行中->暫停 | 保存當前進度 |
| 退出練習按鈕 | 按鈕 | 退出練習模式 | - | 需要二次確認 |
@ -182,8 +182,8 @@
- **相關擴展**: 學習相關詞彙 → 詞彙族群學習 → 主題式詞彙掌握
### 錯誤流程
- **答題錯誤**: 顯示正確答案 → 提供解釋說明 → 加入錯題複習 → 扣除命條
- **命條不足**: 學習中止 → 提供命條購買 → 或等待自然恢復 → 重新開始學習
- **答題錯誤**: 顯示正確答案 → 提供解釋說明 → 加入錯題複習
- **命條不足**: 學習無法啟動 → 提供命條購買 → 或等待自然恢復 → 重新開始學習
- **網路問題**: 保存學習進度 → 提供離線模式 → 同步恢復功能
## 📊 商業邏輯規則
@ -194,9 +194,10 @@
- **難度自適應**: 根據用戶表現自動調整後續詞彙難度
### 命條消耗機制
- **答錯題目**: 扣除1個命條
- **跳過題目**: 視為答錯扣除1個命條
- **重複錯誤**: 同一詞彙反覆答錯繼續扣除命條
> 詳細規格請參閱 → **[共同業務規則 - 命條系統](../common/business-rules.md#🎮-命條系統-life-points-system)**
- **啟動關卡**: 進入詞彙學習關卡時消耗1個命條無論答對答錯
- **跳過題目**: 允許跳過,不額外扣除命條
### 獎勵機制
- **完美通關**: 全對且用時短,獲得額外經驗值和鑽石獎勵

View File

@ -8,11 +8,11 @@
**負責團隊**: 產品/設計/開發
### 主要功能
- 階段化學習路徑13階段×20劇本×3關卡的完整學習架構
- 順序解鎖機制:必須按順序完成前置關卡才能解鎖後續內容
- 關卡選擇系統:支援詞彙認識、詞彙熟悉、對話訓練三種關卡類型
- 進度可視化:清楚顯示當前學習進度和成就狀態
- 星級評價系統:基於三維度表現給予1-3星評價
- 階段化學習路徑13階段×20劇本×4關卡的完整學習架構
- 線性闖關機制:必須按 詞彙學習→詞彙熟悉→口說練習特別關卡→情境對話 順序闖關,特別關卡可跳過
- 進度導航系統:地圖直接顯示當前可進行的關卡,無需選擇彈窗
- 關卡狀態管理:🔒鎖定/⏳可進行/🔄進行中/✅已完成 四種狀態
- 星級評價系統:基於各關卡特定標準給予1-3星評價
### 適用場景
- 新用戶學習路徑規劃和引導
@ -21,83 +21,89 @@
- 關卡成就的展示和炫耀
### 與其他功能的關聯
- **情境對話系統**: 地圖關卡跳轉到具體對話場景
- **詞彙學習系統**: 地圖關卡跳轉到詞彙練習模組
- **命條系統**: 關卡挑戰前檢查命條資源狀態
- **線性闖關系統**: 依循 [線性闖關學習系統規格](../common/progressive-stage-system.md) 的四關順序
- **詞彙學習系統**: 第1、2關的詞彙學習和熟悉訓練
- **口說評分系統**: 第2+關的口說練習特別關卡評估
- **情境對話系統**: 第3關的綜合對話應用
- **命條系統**: 關卡啟動時的資源消耗管理
- **成就系統**: 關卡完成觸發成就和徽章解鎖
- **訂閱系統**: VIP用戶可解鎖專屬關卡內容
## 📱 涉及的UI畫面
### 主要畫面
1. **UI_Level_Map** - 學習地圖主畫面
2. **UI_Level_Selection_Modal** - 關卡選擇彈窗
3. **UI_Level_Selection_Modal_A** - 基礎關卡選擇界
4. **UI_Level_Selection_Modal_B** - 進階關卡選擇界面
1. **UI_Level_Map** - 學習地圖主畫面 (線性闖關版)
2. **UI_Current_Level_Info** - 當前可進行關卡資訊面板
3. **UI_Level_Progress_Detail** - 關卡進度詳情頁
4. **UI_Stage_Overview** - 階段總覽和劇本選擇
5. **UI_Level_Locked_Modal** - 關卡鎖定提示彈窗
### 輔助畫面
1. **UI_Cost_Confirm_Popup** - 關卡成本確認彈窗
1. **UI_Cost_Confirm_Popup** - 口說練習特別關卡付費確認彈窗
2. **UI_Insufficient_Resources** - 資源不足提示頁面
3. **UI_Task_Display** - 任務進度顯示組件
3. **UI_Level_Status_Indicator** - 關卡狀態指示器組件
4. **UI_Progress_Path_Visual** - 闖關路徑可視化組件
## 🎯 詳細畫面規格
### UI_Level_Map - 學習地圖主畫面
### UI_Level_Map - 學習地圖主畫面 (線性闖關版)
#### 功能說明
- **畫面目的**: 為用戶提供完整的學習路徑導航清楚展示13階段學習進度和關卡狀態
- **畫面目的**: 展示線性闖關學習路徑清楚標示13階段×20劇本×4關卡的進度狀態
- **進入條件**: 完成用戶註冊和等級評估,或從底部導航進入
- **退出條件**: 選擇具體關卡進入學習,或切換到其他功能模組
- **退出條件**: 直接進入當前可進行的關卡,或切換到其他功能模組
- **核心變化**: 取消關卡選擇彈窗,地圖直接顯示下一個可進行的關卡
#### 畫面欄位細節
| 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 |
|---------|---------|------|--------|----------|----------|
| 當前階段編號 | Number | 是 | 1 | 1-13 | 始終顯示 |
| 當前劇本編號 | Number | 是 | 1 | 1-20+ | 始終顯示 |
| 當前關卡類型 | String | 是 | "詞彙學習" | 關卡枚舉 | 始終顯示 |
| 階段名稱 | String | 是 | - | 5-50字 | 始終顯示 |
| 劇本標題 | String | 是 | - | 3-30字 | 始終顯示 |
| 階段背景圖 | Image URL | 是 | - | 有效圖片格式 | 始終顯示 |
| 階段完成度 | Number | 是 | 0 | 0-100% | 始終顯示 |
| 可用劇本數量 | Number | 是 | 0 | 0-20+ | 始終顯示 |
| 劇本完成度 | Number | 是 | 0 | 0-100% | 始終顯示 |
| 已完成關卡數 | Number | 是 | 0 | ≥0 | 始終顯示 |
| 總關卡數 | Number | 是 | 60 | ≥60 | 始終顯示 |
| 總關卡數 | Number | 是 | 80 | ≥80 | 始終顯示 (4關×20劇本) |
| 累積星數 | Number | 是 | 0 | ≥0 | 始終顯示 |
| 連續學習天數 | Number | 是 | 0 | ≥0 | 始終顯示 |
| 用戶命條數量 | Number | 是 | 5 | 0-5 | 始終顯示 |
| 用戶鑽石數量 | Number | 是 | 0 | ≥0 | 始終顯示 |
| 今日推薦關卡 | Object | 否 | null | 關卡物件 | 有推薦時顯示 |
| 特殊活動關卡 | Array | 否 | [] | 活動陣列 | 有活動時顯示 |
| 下一關卡資訊 | Object | 是 | - | 關卡物件 | 始終顯示 |
| 四關進度狀態 | Array | 是 | [] | 狀態陣列 | 始終顯示 |
#### 互動元素
| 元素名稱 | 元素類型 | 點擊行為 | 狀態變化 | 備註 |
|---------|---------|----------|----------|------|
| 關卡節點 | 六角形按鈕 | 開啟關卡選擇彈窗 | 正常->選中 | 不同狀態有不同顏色 |
| 上一階段按鈕 | 按鈕 | 切換到上一學習階段 | - | 第1階段時禁用 |
| 下一階段按鈕 | 按鈕 | 切換到下一學習階段 | - | 未解鎖時禁用 |
| 階段選擇下拉 | 下拉選單 | 快速跳轉到指定階段 | - | 只顯示已解鎖階段 |
| 進度總覽按鈕 | 按鈕 | 查看整體學習統計 | - | 跳轉到個人中心 |
| 每日任務按鈕 | 按鈕 | 查看今日學習任務 | - | 跳轉到任務系統 |
| 好友排行按鈕 | 按鈕 | 查看好友學習排名 | - | 跳轉到排行榜 |
| 設定按鈕 | 按鈕 | 開啟學習設定選項 | - | 個人化學習參數 |
| 當前可進行關卡 | 大型卡片按鈕 | 直接進入關卡 | - | 清楚標示關卡類型和要求 |
| 四關進度指示器 | 進度條組件 | 查看劇本四關進度 | - | 🔒鎖定/⏳可進行/🔄進行中/✅已完成 |
| 劇本選擇區域 | 水平滾動列表 | 查看其他劇本進度 | - | 只顯示已解鎖劇本 |
| 階段切換按鈕 | 按鈕組 | 切換到其他階段 | - | 未解鎖階段禁用 |
| 學習統計面板 | 資訊卡片 | 查看詳細學習數據 | - | 展開/收合統計資訊 |
| 時光關卡按鈕 | 特殊按鈕 | 使用時光卷挑戰 | - | 需要時光卷道具 |
| 每日任務指示 | 提示標誌 | 查看今日學習任務 | - | 跳轉到任務系統 |
| 成就通知 | 浮動提示 | 查看新獲得成就 | - | 自動消失或手動關閉 |
#### 使用者操作流程
1. **地圖瀏覽**: 進入地圖 → 查看當前階段 → 瀏覽可用關卡 → 查看學習進度
2. **關卡選擇**: 點擊關卡節點 → 確認關卡類型 → 檢查資源需求 → 確認進入
3. **階段切換**: 使用階段按鈕 → 或下拉選單 → 快速跳轉到目標階段 → 查看新階段內容
4. **進度查看**: 檢查完成度 → 查看星級評價 → 確認下一個目標 → 規劃學習計劃
#### 使用者操作流程 (線性闖關版)
1. **進度確認**: 進入地圖 → 查看當前階段和劇本 → 確認四關進度狀態
2. **直接闖關**: 點擊當前可進行關卡 → 確認資源需求 → 直接進入關卡
3. **劇本瀏覽**: 查看四關進度指示器 → 了解完成狀況 → 規劃後續學習
4. **階段導航**: 完成劇本後 → 自動解鎖下一劇本 → 或切換到其他階段
#### 異常狀況處理
- **資源不足**: 顯示資源不足提示 → 引導到商店購買 → 或提供免費獲得方式
- **網路中斷**: 顯示離線模式 → 載入快取內容 → 恢復連線時同步進度
- **關卡載入失敗**: 顯示載入錯誤 → 提供重試選項 → 或跳到其他可用關卡
### UI_Level_Selection_Modal - 關卡選擇彈窗
### UI_Current_Level_Info - 當前可進行關卡資訊面板
#### 功能說明
- **畫面目的**: 當用戶點擊地圖關卡時,顯示該關卡的詳細資訊和不同類型的學習選項
- **進入條件**: 從學習地圖點擊任意關卡節點
- **退出條件**: 選擇具體關卡類型進入學習,或取消關閉彈窗
- **畫面目的**: 清楚展示當前可進行關卡的詳細資訊,引導用戶直接進入學習
- **進入條件**: 學習地圖主畫面的核心組件,始終可見
- **顯示邏輯**: 根據四關線性闖關進度,自動顯示下一個可進行的關卡資訊
#### 畫面欄位細節
@ -189,8 +195,12 @@
- **連續獎勵**: 7天連續、14天連續、30天連續分別給予不同獎勵
### 資源消耗規則
- **詞彙關卡**: 免費進入,答錯扣命條
- **對話訓練**: 免費進入,失敗扣命條
> 詳細命條系統規格請參閱 → **[共同業務規則 - 命條系統](../common/business-rules.md#🎮-命條系統-life-points-system)**
- **詞彙學習**: 啟動關卡消耗1個命條
- **詞彙熟悉**: 啟動關卡消耗1個命條
- **口說練習特別關卡**: 付費進入(5鑽石),不扣命條,可跳過
- **情境對話**: 啟動關卡消耗1個命條
- **限時挑戰**: 首次免費後續50鑽石/次
- **命條不足**: 無法開始新關卡,需要購買或等待恢復

View File

@ -22,7 +22,7 @@
### 與其他功能的關聯
- **情境對話系統**: 回覆提示道具、加時道具的直接使用場景
- **命條系統**: 補命道具購買和消費的核心機制
- **命條系統**: 補命道具購買和消費的核心機制,詳見 [共同業務規則](../common/business-rules.md#🎮-命條系統-life-points-system)
- **學習地圖系統**: 道具購買入口和使用場景整合
- **訂閱系統**: 與VIP訂閱的差異化定位和互補
- **支付系統**: 鑽石購買和第三方支付整合
@ -75,7 +75,7 @@
##### ❤️ 生命管理類道具
| 道具名稱 | 價格 | 組合包價格 | 功能說明 | 使用場景 |
|---------|------|------------|----------|----------|
| 補命道具 | 100鑽石/個 | 400鑽石/5個 | 補充1個命條上限5個 | 命條不足時購買 |
| 補命道具 | 100鑽石/個 | 400鑽石/5個 | 補充1個命條依用戶等級上限 | 命條不足時購買 |
| 生命保護罩 | 200鑽石/個 | 900鑽石/5個 | 一次闖關失敗不扣命條 | 重要挑戰前使用 |
##### ⏰ 時間控制類道具

View File

@ -9,7 +9,7 @@
**對應Mobile規格**: `../mobile/04_道具商店功能規格.md`
### 主要功能
- 多層次道具系統,涵蓋命條、提示、加速、裝飾等類型
- 多層次道具系統,涵蓋生命管理、提示、加速、裝飾等類型
- 靈活的定價策略,包含鑽石、學習幣、真實貨幣支付
- 組合優惠機制,促進多道具購買和長期訂閱
- 個人化推薦,基於學習習慣推薦合適道具
@ -33,7 +33,7 @@
### 與其他功能的關聯
- **學習系統**: 道具使用提升學習效率和體驗
- **命條系統**: 命條相關道具的購買和補充
- **命條系統**: 命條相關道具的購買和補充,詳見 [共同業務規則](../common/business-rules.md#🎮-命條系統-life-points-system)
- **成就系統**: 購買特殊道具解鎖成就
- **用戶系統**: 付費狀態影響功能權限
- **分析系統**: 購買行為數據用於商品推薦

View File

@ -34,7 +34,7 @@
- **詞彙學習系統**: 整合指定詞彙到對話情境中
- **學習地圖系統**: 提供情境對話的關卡和進度管理
- **道具商店系統**: 回覆提示道具、加時道具的商業整合
- **命條系統**: 對話失敗消耗命條的生命管理機制
- **命條系統**: 關卡啟動消耗命條的生命管理機制,詳見 [共同業務規則](../common/business-rules.md#🎮-命條系統-life-points-system)
- **排行榜系統**: 限時挑戰成績和社交競爭功能
## 💻 涉及的Web頁面

View File

@ -35,11 +35,11 @@
#### 核心成就系統 ✅ (已實現)
- [x] **過關獎勵** (通關寶箱) ✅ (已實現於 `api/daily-missions.md`)
- 完成對話場景即可獲得
- 獎勵: +10 鑽石 + 10 閃電能量
- 獎勵: 請參考/Users/jettcheng1018/code/dramaling-app/docs/02_design/function-specs/common/business-rules.md
- [x] **完美語法** ✅ (已實現於 成就系統)
- 語法評分達到優秀標準
- 獎勵: +10 鑽石 + 10 閃電能量
- 獎勵: 請參考/Users/jettcheng1018/code/dramaling-app/docs/02_design/function-specs/common/business-rules.md
- [x] **表達流利** ✅ (已實現於 成就系統)
- 流暢度評分達到優秀標準
@ -95,12 +95,11 @@
- [x] **通關標準**: 成功完成即解鎖下一關即使0星 ✅ (已實現於 解鎖系統)
#### 命條生命系統 ✅ (已實現於 `api/gamification.md`)
- [x] **命條機制**: 新用戶預設5命條上限5條 ✅ (已實現於 Life Points API)
- [x] **命條消耗**: ✅ (已實現於 遊戲邏輯)
- 詞彙認識答錯 -1命條
- 詞彙熟悉答錯 -1命條
- 對話訓練失敗 -1命條
- [x] **命條回復**: 每5小時自動回復1命條 ✅ (已實現於 自動回復系統)
> 詳細規格請參閱 → **[共同業務規則 - 命條系統](./function-specs/common/business-rules.md#🎮-命條系統-life-points-system)**
- [x] **命條機制**: 依用戶等級不同命條上限和恢復速度 ✅ (已實現於 Life Points API)
- [x] **命條消耗**: 關卡啟動時消耗(1、2、3關) ✅ (已實現於 遊戲邏輯)
- [x] **命條回復**: 依用戶等級自動回復 ✅ (已實現於 自動回復系統)
- [x] **命條購買**: 1命條=100鑽石5命條=400鑽石 ✅ (已實現於 購買系統)
#### 連續學習獎勵系統 ✅ (已實現於 用戶進度系統)
@ -108,7 +107,7 @@
- [x] **學習判定**: 當日完成至少1個關卡即計為學習 ✅ (已實現於 進度邏輯)
- [x] **階段性獎勵**: ✅ (已實現於 獎勵系統)
- 7天連續: +100經驗值 + 特殊徽章
- 14天連續: +200經驗值 + 2命條補充
- 14天連續: +200經驗值 + 命條補充
- 30天連續: +500經驗值 + 特殊成就徽章 + 100鑽石
### 詞彙學習成就系統 *(新增功能)*
@ -167,66 +166,6 @@
- [ ] **表達流利**: 流暢度表現優秀時獲得額外獎勵
- [ ] **輔助功能成就** *(新增)*: 智慧使用回覆輔助功能的學習進步獎勵
## 300秒限時挑戰系統 *(新增核心功能)*
### 限時挑戰機制設計
基於最新規格的競技式學習系統:
#### 倒數計時系統
- [ ] **精準計時**: 300秒5分鐘的精確倒數顯示
- [ ] **視覺化時間**: 動態進度條和數字倒數的雙重顯示
- [ ] **時間警告**: 剩餘60秒和30秒時的視覺和音效提醒
- [ ] **自動結算**: 時間歸零時自動觸發結算流程
#### 限時挑戰獎勵機制
- [ ] **時間效率獎勵**:
- 180秒內完成: 1.5x 基礎獎勵倍數
- 120秒內完成: 2.0x 基礎獎勵倍數
- 60秒內完成: 2.5x 基礎獎勵倍數
- [ ] **雙重條件加成**: 限時環境下達成雙重通關額外 +50 鑽石
- [ ] **壓力挑戰獎勵**: 最後30秒內完成額外 +25 鑽石壓力獎勵
- [ ] **完美限時成就**: 限時內達成完美對話獲得特殊限時徽章
#### 限時挑戰排行榜
- [ ] **每日排行榜**: 每日限時挑戰最佳成績排名
- [ ] **每週冠軍賽**: 週末特殊限時挑戰競賽
- [ ] **好友競技**: 好友間的限時挑戰比較和挑戰
- [ ] **全球排名**: 全體用戶的限時挑戰成績排行
### 限時挑戰成就系統
基於時間壓力下的特殊成就機制:
#### 時間相關成就
- [ ] **閃電戰士**
- 首次在180秒內完成限時挑戰
- 獎勵: +30 鑽石 + 30 閃電能量 + 速度徽章
- [ ] **時間大師**
- 累計完成10次限時挑戰且平均時間<4分鐘
- 獎勵: +50 鑽石 + 50 閃電能量 + 時間掌控徽章
- [ ] **壓力之王**
- 在最後30秒內完成5次限時挑戰
- 獎勵: +75 鑽石 + 75 閃電能量 + 壓力專家徽章
#### 限時雙重通關成就
- [ ] **限時劇情大師**
- 在限時挑戰中完成劇情任務且時間<4分鐘
- 獎勵: +40 鑽石 + 40 閃電能量 + 限時劇情徽章
- [ ] **限時詞彙專家**
- 在限時挑戰中正確使用所有指定詞彙且時間<3分鐘
- 獎勵: +35 鑽石 + 35 閃電能量 + 限時詞彙徽章
- [ ] **限時完美對話**
- 在限時挑戰中達成雙重通關且時間<2.5分鐘
- 獎勵: +100 鑽石 + 100 閃電能量 + 限時完美徽章 + 3個回覆提示道具
### 獎勵統一標準
- [ ] **統一獎勵**: 每項成就固定給予 +10 鑽石 + 10 閃電能量
- [ ] **即時反饋**: 完成對話後立即顯示獲得的成就
- [ ] **視覺化展示**: 使用寶箱和貨幣圖示清楚顯示獎勵
## 闖關系統設計
### 關卡結構

View File

@ -575,12 +575,443 @@ public class WebApiResponse<T>
2. **Week 10**: 效能和安全性評估,決定微服務遷移時機
3. **Week 18**: 全面評估,決定生產環境部署策略
## 📚 詞彙學習系統API實施計畫
### 階段一核心詞彙API開發 (Week 1-3)
#### 1.1 資料庫架構建立
```sql
-- 詞彙基礎表設計 (基於database-schema.md)
CREATE TABLE vocabulary_bank (
vocab_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
word VARCHAR(100) NOT NULL,
phonetic VARCHAR(200),
part_of_speech VARCHAR(50),
definition_en TEXT,
definition_native JSONB,
category VARCHAR(50),
difficulty_level VARCHAR(10),
frequency_rank INTEGER,
audio_url TEXT,
example_sentences JSONB,
synonyms JSONB,
antonyms JSONB,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
UNIQUE(word, part_of_speech)
);
-- 用戶詞彙進度表
CREATE TABLE user_vocabulary_progress (
progress_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(user_id) ON DELETE CASCADE,
vocab_id UUID REFERENCES vocabulary_bank(vocab_id) ON DELETE CASCADE,
mastery_level VARCHAR(20) DEFAULT 'learning',
mastery_score INTEGER DEFAULT 0,
review_count INTEGER DEFAULT 0,
correct_count INTEGER DEFAULT 0,
ease_factor DECIMAL(4,2) DEFAULT 2.50,
interval_days INTEGER DEFAULT 1,
next_review_date DATE,
first_encountered TIMESTAMPTZ DEFAULT NOW(),
last_reviewed TIMESTAMPTZ,
UNIQUE(user_id, vocab_id)
);
```
#### 1.2 核心服務層實現
```csharp
// IVocabularyService 介面設計
public interface IVocabularyService
{
// 基本詞彙CRUD
Task<VocabularyDto> GetByIdAsync(Guid vocabId);
Task<PagedResult<VocabularyDto>> GetVocabularyListAsync(VocabularyFilter filter);
Task<List<VocabularyDto>> SearchVocabularyAsync(string query, int limit = 20);
// 用戶學習進度
Task<UserVocabularyProgressDto> GetUserProgressAsync(Guid userId, Guid vocabId);
Task UpdateProgressAsync(Guid userId, UpdateProgressRequest request);
Task<List<VocabularyDto>> GetDueForReviewAsync(Guid userId);
// 間隔重複演算法
Task<SpacedRepetitionResult> ProcessReviewResultAsync(
Guid userId, Guid vocabId, ReviewQuality quality);
// 學習分析
Task<LearningAnalyticsDto> GetLearningAnalyticsAsync(Guid userId);
}
// 間隔重複演算法實現
public class SpacedRepetitionService : ISpacedRepetitionService
{
public SpacedRepetitionResult CalculateNextReview(
double easeFactor, int interval, ReviewQuality quality)
{
// SuperMemo SM-2 算法實現
var newEaseFactor = Math.Max(1.3, easeFactor +
(0.1 - (5 - (int)quality) * (0.08 + (5 - (int)quality) * 0.02)));
int newInterval = quality switch
{
ReviewQuality.Again => 1,
ReviewQuality.Hard => (int)(interval * 1.2),
ReviewQuality.Good => (int)(interval * newEaseFactor),
ReviewQuality.Easy => (int)(interval * newEaseFactor * 1.3),
_ => 1
};
return new SpacedRepetitionResult
{
NextInterval = newInterval,
NewEaseFactor = newEaseFactor,
NextReviewDate = DateTime.UtcNow.AddDays(newInterval)
};
}
}
```
#### 1.3 API控制器實現
```csharp
// 移動端詞彙API控制器
[ApiController]
[Route("api/v1/mobile/vocabulary")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class MobileVocabularyController : MobileBaseController
{
private readonly IVocabularyService _vocabularyService;
[HttpGet("daily-review")]
public async Task<ActionResult<MobileApiResponse<List<MobileVocabularyDto>>>> GetDailyReview()
{
var userId = GetCurrentUserId();
var vocabularyList = await _vocabularyService.GetDueForReviewAsync(userId);
var mobileDtos = Mapper.Map<List<MobileVocabularyDto>>(vocabularyList);
return MobileSuccess(mobileDtos);
}
[HttpPost("{vocabId}/review")]
public async Task<ActionResult<MobileApiResponse<ReviewResultDto>>> SubmitReview(
Guid vocabId, [FromBody] SubmitReviewRequest request)
{
var userId = GetCurrentUserId();
var result = await _vocabularyService.ProcessReviewResultAsync(
userId, vocabId, request.Quality);
return MobileSuccess(new ReviewResultDto
{
NextReviewDate = result.NextReviewDate,
MasteryLevelChange = result.MasteryLevelChange,
PointsEarned = result.PointsEarned
});
}
[HttpGet("search")]
public async Task<ActionResult<MobileApiResponse<List<MobileVocabularyDto>>>> Search(
[FromQuery] string query, [FromQuery] int limit = 10)
{
var results = await _vocabularyService.SearchVocabularyAsync(query, limit);
var mobileDtos = Mapper.Map<List<MobileVocabularyDto>>(results);
return MobileSuccess(mobileDtos);
}
}
// Web端詞彙API控制器
[ApiController]
[Route("api/v1/web/vocabulary")]
[Authorize]
public class WebVocabularyController : WebBaseController
{
[HttpGet("{id}")]
public async Task<ActionResult<WebApiResponse<WebVocabularyDto>>> GetVocabulary(Guid id)
{
var vocabulary = await _vocabularyService.GetByIdAsync(id);
var webDto = Mapper.Map<WebVocabularyDto>(vocabulary);
return WebSuccess(webDto, new {
RelatedWords = await _vocabularyService.GetRelatedWordsAsync(id),
LearningTips = await _vocabularyService.GetLearningTipsAsync(id),
UsageExamples = await _vocabularyService.GetUsageExamplesAsync(id)
});
}
[HttpGet("analytics")]
public async Task<ActionResult<WebApiResponse<LearningAnalyticsDto>>> GetAnalytics(
[FromQuery] DateTime? from, [FromQuery] DateTime? to)
{
var userId = GetCurrentUserId();
var analytics = await _vocabularyService.GetLearningAnalyticsAsync(
userId, from, to);
return WebSuccess(analytics);
}
}
```
### 階段二:智能學習功能 (Week 4-6)
#### 2.1 AI驅動的詞彙推薦系統
```csharp
public interface IVocabularyRecommendationService
{
Task<List<VocabularyDto>> GetPersonalizedRecommendationsAsync(
Guid userId, int count = 10);
Task<List<VocabularyDto>> GetContextualVocabularyAsync(
string context, DifficultyLevel level);
Task<List<VocabularyDto>> GetRelatedVocabularyAsync(Guid vocabId);
}
public class AIVocabularyRecommendationService : IVocabularyRecommendationService
{
private readonly IOpenAIService _openAiService;
private readonly IVocabularyRepository _vocabularyRepo;
public async Task<List<VocabularyDto>> GetPersonalizedRecommendationsAsync(
Guid userId, int count = 10)
{
// 獲取用戶學習歷史和偏好
var userProfile = await GetUserLearningProfileAsync(userId);
// 使用GPT-4o-mini分析用戶需求
var prompt = $@"
Based on user learning profile:
- Current level: {userProfile.Level}
- Weak categories: {string.Join(',', userProfile.WeakCategories)}
- Interests: {string.Join(',', userProfile.Interests)}
Recommend 10 vocabulary words that would be most beneficial
for this learner's progression.";
var aiResponse = await _openAiService.GetCompletionAsync(prompt);
// 解析AI回應並匹配資料庫詞彙
return await MatchWordsFromDatabase(aiResponse, count);
}
}
```
#### 2.2 自適應複習系統
```csharp
public class AdaptiveReviewService : IAdaptiveReviewService
{
public async Task<AdaptiveReviewSession> CreateReviewSessionAsync(Guid userId)
{
var dueWords = await _vocabularyService.GetDueForReviewAsync(userId);
var userStats = await GetUserStatisticsAsync(userId);
// 根據用戶表現調整複習策略
var strategy = DetermineReviewStrategy(userStats);
// 智能排序複習詞彙
var optimizedOrder = OptimizeReviewOrder(dueWords, strategy);
return new AdaptiveReviewSession
{
SessionId = Guid.NewGuid(),
UserId = userId,
Words = optimizedOrder,
Strategy = strategy,
EstimatedDuration = CalculateEstimatedDuration(optimizedOrder.Count)
};
}
private ReviewStrategy DetermineReviewStrategy(UserStatistics stats)
{
// 基於用戶統計數據選擇最佳複習策略
if (stats.AccuracyRate < 0.7)
return ReviewStrategy.Reinforcement; // 加強練習
else if (stats.ReviewStreak > 7)
return ReviewStrategy.Challenging; // 挑戰模式
else
return ReviewStrategy.Balanced; // 平衡模式
}
}
```
### 階段三:高級分析與遊戲化 (Week 7-9)
#### 3.1 學習分析API
```csharp
[ApiController]
[Route("api/v1/mobile/vocabulary/analytics")]
public class MobileVocabularyAnalyticsController : MobileBaseController
{
[HttpGet("dashboard")]
public async Task<ActionResult<MobileApiResponse<DashboardData>>> GetDashboard()
{
var userId = GetCurrentUserId();
var data = new DashboardData
{
TodayProgress = await _analyticsService.GetTodayProgressAsync(userId),
WeeklyStreak = await _analyticsService.GetWeeklyStreakAsync(userId),
MasteryDistribution = await _analyticsService.GetMasteryDistributionAsync(userId),
RecentAchievements = await _analyticsService.GetRecentAchievementsAsync(userId)
};
return MobileSuccess(data);
}
[HttpGet("progress-chart")]
public async Task<ActionResult<MobileApiResponse<ProgressChartData>>> GetProgressChart(
[FromQuery] ChartPeriod period = ChartPeriod.Month)
{
var userId = GetCurrentUserId();
var chartData = await _analyticsService.GetProgressChartDataAsync(userId, period);
return MobileSuccess(chartData);
}
}
```
#### 3.2 遊戲化系統整合
```csharp
public interface IVocabularyGamificationService
{
Task<AchievementResult> CheckAchievementsAsync(Guid userId, LearningActivity activity);
Task<List<BadgeDto>> GetUserBadgesAsync(Guid userId);
Task<LeaderboardPosition> GetLeaderboardPositionAsync(Guid userId);
Task<int> CalculateExperiencePointsAsync(ReviewResult result);
}
public class VocabularyGamificationService : IVocabularyGamificationService
{
public async Task<int> CalculateExperiencePointsAsync(ReviewResult result)
{
var basePoints = result.Quality switch
{
ReviewQuality.Again => 1,
ReviewQuality.Hard => 3,
ReviewQuality.Good => 5,
ReviewQuality.Easy => 8,
_ => 0
};
// 連續正確答案加成
var streakMultiplier = Math.Min(result.StreakCount / 5.0 + 1, 2.0);
// 詞彙難度加成
var difficultyMultiplier = result.Difficulty switch
{
"A1" => 1.0,
"A2" => 1.2,
"B1" => 1.5,
"B2" => 1.8,
"C1" => 2.0,
"C2" => 2.5,
_ => 1.0
};
return (int)(basePoints * streakMultiplier * difficultyMultiplier);
}
}
```
### 階段四:效能優化與快取 (Week 10-12)
#### 4.1 Redis快取策略
```csharp
public class CachedVocabularyService : IVocabularyService
{
private readonly IVocabularyService _baseService;
private readonly IRedisCache _cache;
public async Task<VocabularyDto> GetByIdAsync(Guid vocabId)
{
var cacheKey = $"vocabulary:{vocabId}";
var cached = await _cache.GetAsync<VocabularyDto>(cacheKey);
if (cached != null)
return cached;
var vocabulary = await _baseService.GetByIdAsync(vocabId);
await _cache.SetAsync(cacheKey, vocabulary, TimeSpan.FromHours(6));
return vocabulary;
}
public async Task<List<VocabularyDto>> GetDueForReviewAsync(Guid userId)
{
var cacheKey = $"user:{userId}:due-review";
var cached = await _cache.GetAsync<List<VocabularyDto>>(cacheKey);
if (cached != null)
return cached;
var dueWords = await _baseService.GetDueForReviewAsync(userId);
await _cache.SetAsync(cacheKey, dueWords, TimeSpan.FromMinutes(15));
return dueWords;
}
}
```
#### 4.2 資料庫查詢優化
```sql
-- 高效能索引設計
CREATE INDEX CONCURRENTLY idx_user_vocab_due_review
ON user_vocabulary_progress(user_id, next_review_date)
WHERE next_review_date <= CURRENT_DATE;
CREATE INDEX CONCURRENTLY idx_vocabulary_search
ON vocabulary_bank USING gin(to_tsvector('english', word || ' ' || definition_en));
-- 用戶學習統計物化視圖
CREATE MATERIALIZED VIEW user_vocabulary_stats AS
SELECT
user_id,
COUNT(*) as total_words,
COUNT(*) FILTER (WHERE mastery_level = 'mastered') as mastered_count,
AVG(mastery_score) as average_mastery,
COUNT(*) FILTER (WHERE last_reviewed >= CURRENT_DATE - INTERVAL '7 days') as weekly_reviews
FROM user_vocabulary_progress
GROUP BY user_id;
CREATE UNIQUE INDEX ON user_vocabulary_stats(user_id);
```
### 詞彙學習API端點總結
#### 移動端API端點
| 端點 | 方法 | 描述 | 快取策略 |
|------|------|------|----------|
| `/api/v1/mobile/vocabulary/daily-review` | GET | 獲取每日複習詞彙 | 15分鐘 |
| `/api/v1/mobile/vocabulary/{id}/review` | POST | 提交複習結果 | 無快取 |
| `/api/v1/mobile/vocabulary/search` | GET | 詞彙搜尋 | 30分鐘 |
| `/api/v1/mobile/vocabulary/recommendations` | GET | 個人化推薦 | 1小時 |
| `/api/v1/mobile/vocabulary/analytics/dashboard` | GET | 學習儀表板 | 10分鐘 |
#### Web端API端點
| 端點 | 方法 | 描述 | 快取策略 |
|------|------|------|----------|
| `/api/v1/web/vocabulary/{id}` | GET | 詞彙詳細資訊 | 6小時 |
| `/api/v1/web/vocabulary/analytics` | GET | 學習分析報告 | 30分鐘 |
| `/api/v1/web/vocabulary/batch` | GET | 批量詞彙資料 | 1小時 |
| `/api/v1/web/vocabulary/export` | POST | 匯出學習資料 | 無快取 |
### 實施優先級
#### 高優先級 (Week 1-6)
1. 基礎詞彙CRUD API
2. 用戶學習進度追蹤
3. 間隔重複演算法
4. 移動端基礎API
#### 中優先級 (Week 7-9)
1. AI推薦系統
2. 學習分析功能
3. 遊戲化元素
4. Web端豐富功能
#### 低優先級 (Week 10-12)
1. 效能優化
2. 進階快取策略
3. 資料匯出功能
4. 管理後台API
---
**最後更新**: 2025-09-10
**版本**: 1.0 - 初始架構分離計劃
**版本**: 1.1 - 新增詞彙學習系統實施計畫
**維護者**: Drama Ling 開發團隊
<function_calls>
<invoke name="TodoWrite">
<parameter name="todos">[{"content": "\u64b0\u5beb\u5f8c\u7aef\u67b6\u69cb\u5206\u96e2\u8a08\u5283\u6587\u4ef6", "status": "completed", "activeForm": "\u64b0\u5beb\u5f8c\u7aef\u67b6\u69cb\u5206\u96e2\u8a08\u5283\u6587\u4ef6\u4e2d"}, {"content": "\u898f\u5283API Gateway\u5fae\u670d\u52d9\u67b6\u69cb", "status": "completed", "activeForm": "\u898f\u5283API Gateway\u5fae\u670d\u52d9\u67b6\u69cb\u4e2d"}, {"content": "\u8a2d\u8a08\u79fb\u52d5\u7aef\u548cWeb\u7aefAPI\u5dee\u7570\u5316", "status": "completed", "activeForm": "\u8a2d\u8a08\u79fb\u52d5\u7aef\u548cWeb\u7aefAPI\u5dee\u7570\u5316\u4e2d"}, {"content": "\u5236\u5b9a\u9077\u79fb\u6b65\u9a5f\u548c\u6642\u7a0b", "status": "in_progress", "activeForm": "\u5236\u5b9a\u9077\u79fb\u6b65\u9a5f\u548c\u6642\u7a0b\u4e2d"}]

View File

@ -1,33 +1,67 @@
# AI 對話分析算法規格
## 概述
定義 Drama Ling 應用中 AI 對話分析系統的具體實現方案,包含語法、語意、流暢度三維度評分邏輯。
定義 Drama Ling 應用中 AI 對話分析系統的具體實現方案,包含語法、語用、口說三維度評分邏輯。
## 核心評分維度
基於 UI_LevelResult_ScoreSummary.png 的實際設計,採用簡化的三維評分顯示:
基於 UI_LevelResult_ScoreSummary.png 的實際設計,採用三維對話評估指標顯示:
### 簡化評分系統
### 三維對話評估系統
**目標**: 提供清楚的學習反饋,觸發對應成就獎勵
#### 三評分指標
#### 三維對話評分指標
- [ ] **語法評分**: 評估語法正確性
- 達到優秀標準時觸發「完美語法」成就
- 獎勵: +10 鑽石 + 10 閃電能量
- 所有對話皆正確時即為完美表現,若有藉由錯誤訂正功能將全部錯誤訂正完畢,則一樣給予完美表現
- 獲得完美表現則過關獎勵雙倍
- 過關獎勵: +1 鑽石 + 10 XP
- [ ] **語意評分**: 評估內容理解和表達適切性
- 作為整體表現參考
- 不單獨觸發特定成就
- [ ] **語用分析**: 評估內容理解和表達適切性(只建議,不評分)
- [ ] **流暢度評分**: 評估表達的自然度和流暢性
- 達到優秀標準時觸發「表達流利」成就
- 獎勵: +10 鑽石 + 10 閃電能量
- [ ] **口說評分**: 評估口說表達的自然度和流暢性
- 評分標準:
- 🗣️ **發音評分 (Pronunciation)**: 音素準確度、尾音收口、鼻音共鳴
- ✅ **完整度評分 (Completeness)**: 句子完整性、遺漏詞彙檢測
- 📈 **流暢度評分 (Fluency)**: 語速自然度、停頓合理性
- 🎶 **韻律評分 (Prosody)**: 語調變化、重音位置、節奏感
- 🎯 **準確度評分 (Accuracy)**: 整體表達精準度
- 分數標準
- 96~100完美
- 81~95優秀
- 71~80尚可
- 0~70不合格
- 過關獎勵:
- 96~100+3 鑽石 + 30 XP
- 81~95+2 鑽石 + 20 XP
- 71~80+1 鑽石 + 10 XP
- 0~70時光卷
- **詳細評分顯示範例**:
```
📊 Speaking Score
【Sentence】91.9分:
Please make sure you have all the necessary documents before submitting your application.
🗣️ Pronunciation91.9
📈 Fluency97
🎶 Prosody83.3
✅ Completeness100
🎯 Accuracy96
【單字需要加強❌】
application ⭐⭐:
🟡 n
【建議改善】
• 🔚 尾音收口明確(-m, -n, -l, -k, -t避免吞音。
🎯 針對音素練習n
🤧 鼻音m/n/ŋ):軟顎下放,確保鼻腔共鳴與口型到位。
```
#### 技術實現方案
- [ ] **AI 模型選擇**: 待決定 (GPT-4/Claude/自建模型)
- [ ] **評分閾值設定**: 定義「優秀」標準的具體分數
- [ ] **即時分析**: 目標響應時間 < 2秒
- [ ] **成就觸發機制**: 自動檢測並發放對應獎勵
- [ ] **成就觸發機制**: 於遊戲結束時,自動檢測並發放對應獎勵
## AI 對話分析功能
@ -36,13 +70,16 @@
- [ ] **每句話即時分析**: 用戶說出的每句話都進行即時判斷
- 語法正確性分析(即時顯示於對話功能欄)
- 口說評分(即時顯示於對話功能欄)
- 任務完成狀態檢測
- 指定詞彙使用檢測
- [ ] **每句話點擊後分析**:用戶說出的每句話,點擊後才觸發
- 語用建議(當用戶點擊對話查看語用建議,則生成當前對話相對於整體對話的語用建議)
- [ ] **即時成功通知**: 當用戶提及詞彙或完成任務時立即回饋
- [ ] **三維度結算評分**: 對話結束後的綜合評分
- 對話語意合適分數滿分100>60為合格
- 語法錯誤率(必須=0所有句子都正確或訂正後正確
- 表達流暢平均分數滿分100>60為合格
- 語法錯誤率:整個劇本對話語法錯誤清單
- 語用建議:整個劇本對話的語用建議
- 口說整體的平均分數
## 情境對話核心系統
@ -91,7 +128,7 @@
- [ ] **回應思緒引導**: 分析用戶聽到這句話的反應及可能的回覆方向
- [ ] **回覆範例生成**: 生成一句具體的回覆範例
#### 免費輔助工具
#### 免費輔助功能
- [ ] **劇情任務範例**:
- 點擊任務提示按鈕後顯示一句範例
- 說明「這樣說可以完成任務」
@ -128,7 +165,7 @@
- [ ] **詞彙選擇題**:
- 根據示意圖選出正確的英文詞彙
- 4選1的單選題形式
- 答錯會扣除命條(-1)並在最後重新測試
- 答錯時,將題目並在最後重新測試
- [ ] **通關機制**: 所有詞彙題目都答對才算通關,直接獲得三顆星
#### 詞彙熟悉關卡
@ -142,6 +179,26 @@
- 提升詞彙識別和記憶連結
- [ ] **通關機制**: 所有配對和重組正確才算通關,直接獲得三顆星
#### 詞彙口說關卡
- 這關如果要玩是要消耗5鑽石
- 一一秀出詞彙例句,用戶要念出例句,系統會進行口說評分
-
- [ ] **口說評分**: 評估口說表達的自然度和流暢性
- 評分標準:整體評分 = 發音評分 & 完整度評分 & 流暢度評分
- 發音評分
- 完整度評分
- 流暢度評分
- 分數標準
- 96~100完美
- 81~95優秀
- 71~80尚可
- 0~70不合格
- 過關獎勵:
- 96~100+3 鑽石 + 30 XP
- 81~95+2 鑽石 + 20 XP
- 71~80+1 鑽石 + 10 XP
- 0~70時光卷
#### 詞彙內容設計標準
基於劇本的5詞彙組合設計
- [ ] **詞彙組合**: 每個劇本包含5個詞彙
@ -186,38 +243,6 @@
- 更新詞彙複習次數和下次複習時間
- 強化學習動機和持續性
## 限時對話系統 *(新增功能)*
### 300秒倒數計時機制
基於最新規格的時間管理系統:
#### 時間控制引擎
- [ ] **精準計時系統**:
- 300秒5分鐘的精確倒數計時
- 支援暫停和恢復功能(特殊情況下)
- 時間剩餘的視覺化顯示
- [ ] **時間壓力分析**:
- 分析時間壓力對用戶表現的影響
- 記錄不同時間段的對話品質變化
- 優化時間分配的學習建議
- [ ] **結算觸發機制**:
- 時間歸零自動觸發結算
- 支援用戶主動點擊「結算表現」
- 確保數據完整保存和分析
#### 時間效率優化
- [ ] **進度加權評分**:
- 基於完成時間給予額外評分
- 鼓勵高效但準確的對話完成
- 平衡速度與品質的評分機制
- [ ] **時間管理指導**:
- 提供時間分配的策略建議
- 分析用戶的時間使用模式
- 協助提升對話效率
## 關卡結算與訂正系統 *(新增基於最新規格)*
### 關卡表現結算
@ -230,16 +255,121 @@
#### 表現評分系統
- [ ] **評分標準** (每合格一項獲得一顆星):
1. **對話語意合適分數 > 60** (滿分100)
- 根據上下文一致性進行評分
- 語境適應性評估
- 意圖匹配度分析
2. **語法錯誤率 = 0**
1. **語法錯誤率 = 0**
- 用戶說的每句話經過語法判定都正確
- 或者訂正後都正確亦可
3. **表達流暢平均分數 > 60** (滿分100)
2. **表達流暢平均分數 > 60** (滿分100)
- 用戶說的每句話都會有流暢度分數
- 所有分數平均即為表達流暢平均分數
3. **對話語用評估分數 只建議不評分**
- 語用標準定義與用途:
1. **日常寒暄 (Small Talk)**
- 定義:不以傳遞實質資訊為主要目的,而是用於建立或維持社交關係的言談
- 用途:
- 建立對話氛圍與人際連結
- 作為開場、轉場或緩和氣氛的策略
- 在客服或 AI 助手中,用來提升「人性化」感
2. **間接表達 (Indirectness)**
- 定義:透過暗示、委婉語或迂迴方式表達意圖,避免直接衝突
- 用途:
- 避免冒犯,維持人際和諧
- 展現禮貌或文化上的尊重
- 在跨文化溝通中,辨識不同社會的表達習慣
3. **填充語 (Fillers)**
- 定義:非必要詞語,用來填補語流空隙、保持連續或爭取思考時間
- 用途:
- 提示對方「話還沒說完」
- 增加口語自然度(模擬真實對話)
- 作為語音辨識或對話系統的特徵,用於偵測自然口語
4. **同理回應 (Backchanneling)**
- 定義:聽話者以簡短語言或聲音表達注意、理解或支持,不打斷主要話輪
- 用途:
- 提供傾聽與理解的訊號,維持互動流暢
- 增強情感支持與共鳴
- 在對話系統中,提升使用者「被理解」的感受
5. **模糊語 (Hedging)**
- 定義:降低語氣確定性,避免過度斷言的語言策略
- 用途:
- 顯示謹慎,降低爭議風險
- 表達禮貌,避免武斷或冒犯
- 在學術或專業語境中,用來維持客觀或彈性
6. **文化慣用語 (Idioms)**
- 定義:文化群體中固定的表達方式,通常無法逐字翻譯
- 用途:
- 增加語言的自然性與文化深度
- 強化群體認同感
- 作為語言學習與跨文化理解的重要素材
- **語用評分範例**
```
--- Dialogue
👨(Client)How is Mr. Davies feeling about our upcoming meeting?
👨(Business Professional)Wow, you know what he is very anxious to meet you
The client is responding to the business professional's statement about Mr. Davies being anxious to meet him. He acknowledges the information and expresses his own anticipation for the meeting, maintaining a professional and engaged tone....
👨(Client)Anxious, you say? That's good to hear. I'm looking forward to it as well.
--- Overall Comment
【分數】:✅ 通過
【評論】:客戶在本次對話中展現了良好的專業溝通能力。他能夠清晰、直接地回應對方的信息,並有效使用附和語來維持對話的參與感。
【建議】:建議客戶在未來的對話中,根據情境需要,可以考慮適度運用間接表達和模糊語,以增加語氣的彈性與委婉度,尤其是在面對敏感話題或需要更細緻溝通的場合。持續保持積極的傾聽和回應,將有助於建立更良好的互動關係。
--- Intent Achievement Evaluation
🌍 Scenario
A professional setting where a person is informing another about a third party's eagerness to meet them, possibly before an introduction or a significant meeting. The man in the suit suggests a formal context.
🎯 Intent
Inform about someone's eagerness to meet.
🎯 是否實踐意圖:
【分數】Yes
【評論】:客戶成功地表達了對對方所提供信息的理解,並明確傳達了他對即將到來的會議的期待。
【建議】:意圖已完全達成,表現良好,無需改進。
--- Pragmatic Evaluation
😊 日常寒暄 (Small Talk)
【分數】4分
【評論】:客戶的應答簡潔專業,直接表達了對會面的期待,符合商務情境。
【建議】:在此情境下,客戶的表現良好,無需特別改進。如果想在開場時增加一點點寒暄,可以簡短地說 "It's a pleasure to finally connect, I hear great things."
🌀 間接表達 (Indirectness)
【分數】0分
【評論】客戶的回應直接且清晰沒有使用間接表達。在此情境下直接性是可接受的因此此項得分0分並非表示表現不佳而是因為間接表達在此情境中並非必要且客戶未採用。
【建議】:如果想讓語氣更委婉或在某些情況下顯得更為謹慎,可以使用間接句型,例如 "I appreciate you sharing that. It sounds like he's quite keen, and I share that sentiment." 或 "It's certainly encouraging to hear his eagerness; I'm equally enthusiastic."
🤔 填充語 (Fillers)
【分數】0分
【評論】對話中沒有使用語氣詞。在此情境下不使用語氣詞保持了專業和清晰度。此項得分0分因其在本次對話中屬於非必要項目且未被使用。
【建議】:保持清晰流暢的表達是良好的習慣。若未來在需要思考或組織語言時,可適度使用一些無害的填充詞如 "Well," 或 "You know," 來避免冷場,但應避免過度使用。例如:"Well, that's good to hear. I'm looking forward to it as well."
🙆 同理回應 (Backchanneling)
【分數】5分
【評論】:客戶有效地使用了附和語 "Anxious, you say?",這表明他專注於對話並確認了對方提供的信息,有助於維持對話的流暢性與參與感。
【建議】:繼續保持這種積極的傾聽和回應。在其他情況下,也可以使用 "I see what you mean," "Right," 或 "Exactly," 等來表示理解和附和。
🤷 模糊語 (Hedging)
【分數】2分
【評論】:客戶的表達比較直接,沒有使用模糊語來軟化語氣或預留彈性。在這種專業且直接的語境下,雖然直接表達沒問題,但適度的模糊語可以使語氣更溫和或為未來討論留下空間。
【建議】在某些情境下尤其是在討論尚未確定的事項或表達個人看法時適當使用模糊語hedging可以讓語氣更委婉避免過於武斷。例如可以說 "I suppose that's good to hear" 或 "I'm certainly looking forward to it as well, assuming everything goes according to plan."
🐉 文化慣用語 (Idioms)
【分數】0分
【評論】對話中沒有使用慣用語。在正式的商務場合避免使用過多的慣用語有助於保持溝通的清晰度尤其是在面對不同文化背景的對話者時。此項得分0分因其在本次對話中屬於非必要項目且未被使用。
【建議】:在正式場合,直接清晰的表達比慣用語更受青睞。如果希望增加語言的豐富性,可以在非正式場合適度使用,但務必確保對方能理解。
```
### 結算流程系統
#### 過關流程