# 課本變遊戲 📚→🎮

影課本相片 → 本機 AI 讀取內容 → 自動出題 → 玩遊戲 / 印模擬試卷。
全部在本機電腦運行，**不需 API Key、不需付費 token**。

## 檔案

| 檔案 | 說明 |
|------|------|
| `study-maker.html` | 主應用：拍照 → 讀取課本 → 出題 → 遊戲／試卷／下載 |
| `server.py` | 本機後端：提供網頁 + AI 代理（轉發到 Ollama）+ 分享題庫短網址 API |
| `share.sh` | 一鍵分享到公網（Cloudflare Quick Tunnel） |
| `start.sh` | 只在本機使用（localhost） |
| `source.md` | 課本內容整理（知識來源，可持續擴充） |
| `first-aid-quiz.html` | 早期版本：急救單元問答遊戲 |
| `first-aid-match-game.html` | 早期版本：急救用品配對遊戲 |

## 快速開始

```bash
# 本機使用
bash start.sh                 # 開 http://localhost:5000/study-maker.html

# 分享給朋友（Cloudflare 免費隧道，免帳號）
bash share.sh                 # 印出公開網址
bash share.sh --code 8888     # 加存取碼，防止網址外流被濫用
```

## 需求

- Python 3（標準庫即可）
- [Ollama](https://ollama.com) + 視覺模型：`ollama pull qwen2.5vl:7b`
- 出題用文字模型（例如 `qwen3:30b`，非必需但建議）
- 分享用 `cloudflared`（`share.sh` 會自動下載）

## 功能一覽

- **三種題型**：選擇題、是非題、排序題（遊戲）；另加簡答題（試卷）
- **難度／陷阱**：選擇題加入易混淆選項
- **我的題庫**：命名儲存、重用、匯入匯出 JSON、分享短網址
- **下載**：獨立 HTML 遊戲檔（離線即玩）、試卷、**獨立答案檔**、JSON
- **手機適配**：拍照、相簿選擇、拖放與貼上
- **本機／分享雙模式**：自動偵測，朋友打開即用，無需設定

## 分享題庫

`POST /api/sets` 建立 → 得到短碼 → `GET /api/sets/<id>` 讀取。
短網址約 80 字元，避免長網址被聊天軟件截斷。
伺服器最多保留 500 份（`STUDY_MAX_SETS` 可調）。

## 環境變數

| 變數 | 預設 | 說明 |
|------|------|------|
| `STUDY_PORT` | 5000 | 監聽埠 |
| `STUDY_ACCESS_CODE` | 空 | 設定後呼叫 AI 需帶 `X-Access-Code` |
| `STUDY_MAX_CONCURRENT` | 2 | 同時 AI 請求上限（其餘排隊） |
| `OLLAMA_URL` | `http://127.0.0.1:11434` | Ollama 位址 |
