用脑筋急转弯 API 做个随机出题+计分小游戏(H5/小程序)
# 用脑筋急转弯 API 做个随机出题+计分小游戏(H5/小程序)
> 接口/接入点:脑筋急转弯(1618,重点用 1618-3 随机) · 免费服务 · 返回 JSON · 适用人群:前端/H5/小程序开发者 · 阅读时间约 7 分钟
## 核心要点
- 用 1618-3 的 `len` 一次取多题(最大 20),前端逐题展示并计分,做成轻量答题游戏。
- 随机接口可能重复出题,游戏开始前做一次本地去重,避免同一题出现两次。
- 题库由服务端维护,前端只负责展示与计分,无需自建题库。
## Why:为什么做个答题小游戏
脑筋急转弯天然适合"闯关/计分"形态——小程序、公众号 H5、社群活动页都能挂。接口免费、即调即用,你只需写前端与计分逻辑,半天就能上线一个可玩的活动页。
## What:接口与前置
| 项目 | 说明 |
|------|------|
| 主用接入点 | 1618-3 随机生成,`len` 最大 20、默认 1 |
| 接口地址 | `https://route.showapi.com/1618-3?appKey=YOUR_APPKEY` |
| 前置 | 有效 AppKey;前端建议经自有后端代理调用(避免 AppKey 暴露在客户端) |
## How:出题 + 计分
建议前端不直接带 AppKey 请求(防泄露),改为请求你自己的后端,由后端调 1618-3:
```python
# 后端代理示例(Python/Flask 风格伪代码)
import requests
APPKEY = "YOUR_APPKEY" # 仅存于服务端
@app.route("/api/quiz")
def quiz():
r = requests.get("https://route.showapi.com/1618-3",
params={"appKey": APPKEY, "len": "10"}, timeout=10)
body = r.json()["showapi_res_body"]
seen, items = set(), []
for it in body["list"]: # 本地去重
if it["question"] not in seen:
seen.add(it["question"]); items.append(it)
return {"questions": items}
```
前端逐题展示并计分(片段):
```javascript
let score = 0, idx = 0;
function showQuestion() {
const q = questions[idx];
document.getElementById("q").textContent = q.question;
// 用户提交后比对 q.answer(注意答案可能不唯一,建议人工裁定或"参与得分")
}
function next() { idx++; if (idx < questions.length) showQuestion(); else alert("得分:" + score); }
```
cURL(取 10 题):
```bash
curl -s --max-time 10 "https://route.showapi.com/1618-3?appKey=YOUR_APPKEY&len=10"
```
## 返回示例与解析
返回 `list` 数组(每题 `{question, answer}`,见字段全解)。游戏逻辑只消费 `question` 展示、`answer` 作为参考答案。
## 进阶 / 边界
- 计分口径:脑筋急转弯答案常不唯一,建议"答对给分"改为"参与给分"或预留人工裁定,避免误判引发客诉。
- 去重必做:随机接口不保证不重复;一次取多条时本地按 `question` 去重。
- AppKey 安全:前端直连会暴露密钥,务必走自有后端代理。
## FAQ
**Q1:`len` 最大多少?** 文档写明最大 20,默认 1。
**Q2:前端能直接带 AppKey 调吗?** 不建议,AppKey 会暴露;用后端代理。
**Q3:答案和我想的不一样算错吗?** 脑筋急转弯常有多种解法,判分口径由你定,别把接口 `answer` 当唯一真理。
**Q4:题目会重复吗?** 可能,需本地去重。
## 相关能力 / 下一步阅读
- [脑筋急转弯列表接口分页怎么用?page 参数与题库遍历指南](https://www.showapi.com/guides/brainteaser-pagination-1618)
- [免费脑筋急转弯接口的题库去重与本地缓存策略](https://www.showapi.com/guides/brainteaser-best-practice-dedup-1618)
- [直播互动如何接入脑筋急转弯 API?从弹题到观众答题的全链路设计](https://www.showapi.com/guides/brainteaser-live-interaction-1618)
- **本系列共 12 篇**:查看[脑筋急转弯 API 指南总目录](https://www.showapi.com/guides/brainteaser-guides-1618)