成语接龙

同音/同字接龙/互动出题

403 次访问

成语接龙 · 中华成语学习工具

点击「开始新局」开始接龙游戏
已掌握成语进度0 / 0

最常用成语 Top 10

游戏规则

  • 末字 = 首字(严格):标准接龙,下一个成语首字必须等于上一个成语末字,例如 一鸣惊人人定胜天
  • 同音字接龙(宽松):允许同拼音不同字接续,例如 叶公好龙 末字「龙 lóng」可接 笼络人心
  • 拼音首字母接龙:仅匹配末字与首字的声母,最宽松。例如末字「人 rén」可接任何 r 开头的成语。

三种游戏模式

  • 人机对战:电脑随机选择候选成语回应,无可接成语则你获胜。
  • 自由练习:仅你一人单独接龙,记录最长连击。
  • 限时挑战:60 秒内最多接龙数挑战,电脑全程不干预。

评分与统计

  • 本地保存最近 30 局记录与已掌握的成语清单(仅你自己看得到)。
  • 使用过的成语自动计入"已掌握"清单。
  • 历史最高分按"模式"分别记录。

关于本工具

了解工具定位 · 使用场景 · 对比优势

使用场景

🎮

亲子互动学习

家长陪孩子玩成语接龙时,经常卡在某个字上接不下去,或孩子对成语含义一知半解。本工具支持同音/同字两种接龙模式,自动提示可接的成语列表,点击每个成语可查看释义和出处。家长无需提前备课,孩子边玩边积累词汇,每次游戏自动生成错题集,方便复习巩固。

📚

语文课堂热身

小学语文老师在课前三分钟用成语接龙活跃气氛,但传统方式只能点几个学生轮流说,覆盖面低。本工具支持全班同时在线接龙,系统自动判断接龙是否合法(同音/同字),并给出正确选项提示。老师可设置“限时模式”增加挑战性,课后导出全班接龙记录,分析学生成语掌握薄弱环节。

🏆

朋友聚会破冰

朋友聚餐或团建时,玩成语接龙常因规则争执(同音还是同字?能不能用生僻字?)。本工具内置明确规则引擎,自动判定接龙合法性,并给出“同音接龙”和“同字接龙”两种模式切换。支持随机出题功能,避免有人提前准备。游戏结束后自动生成排行榜,增加竞技趣味。

🤖

AI 对战练习

想提升成语储备量但找不到水平相当的对手。本工具提供“AI 对战”模式,AI 会根据设定难度(简单/普通/困难)选择不同频率的成语接龙。困难模式下 AI 会使用冷门成语,迫使玩家拓展词汇边界。每轮对战结束后,系统标记双方使用的成语,并高亮玩家不熟悉的生僻成语,形成个性化学习清单。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A(成语大全App)传统方法(查词典)
数据隐私纯浏览器运算,成语库不离开本机需联网,成语查询请求上传至服务器无数字隐私问题,但需翻阅实体书
处理速度输入后即时返回接龙结果需等待网络请求和服务器响应,约1-2秒人工翻阅词典,通常需数分钟
离线可用完全离线,加载后无需网络不可用,必须联网完全可用,依赖实体书
接龙规则灵活性支持同音、同字、首尾字多种模式切换通常仅支持首字接尾字的标准模式规则由人脑执行,可自定义任意规则
词库规模与更新内置精选成语库,约2万条通常包含更庞大的词库,含生僻成语受限于拥有的词典版本和册数
交互体验输入即反馈,可连续接龙,有提示功能界面功能多,但操作步骤相对复杂完全依赖个人检索能力,无交互反馈
使用成本免费,无广告免费,但含广告或内购去广告需购买实体词典,成本几十至上百元

使用指南

上手步骤 · 输入输出 · 避坑提示

输入输出示例8 个典型场景,覆盖常规、边界与易错

输入输出说明
一心一意意气风发 → 发愤图强 → 强词夺理 → 理直气壮 → 壮志凌云 → 云开雾散 → 散兵游勇 → 勇往直前典型场景:标准同字接龙,首尾字完全匹配
一心一意意气风发 → 发愤图强 → 强词夺理 → 理直气壮 → 壮志凌云 → 云开雾散 → 散兵游勇 → 勇往直前典型场景:标准同字接龙,首尾字完全匹配
心想事成成竹在胸 → 胸有成竹 → 竹篮打水 → 水到渠成 → 成人之美 → 美不胜收 → 收放自如 → 如鱼得水典型场景:首尾字同音不同字(成→成),工具支持同音接龙
一马当先先发制人 → 人山人海 → 海阔天空 → 空穴来风 → 风吹草动 → 动人心魄 → 魄力十足 → 足智多谋边界 case:输入四字成语,工具自动识别并生成最长接龙链
一鸣惊人 → 人山人海 → 海阔天空 → 空穴来风 → 风吹草动 → 动人心魄 → 魄力十足 → 足智多谋边界 case:输入单字,工具自动以该字开头接龙
一心一意意气风发 → 发愤图强 → 强词夺理 → 理直气壮 → 壮志凌云 → 云开雾散 → 散兵游勇 → 勇往直前易错 case:用户输入重复成语(如一心一意),工具自动跳过重复项
一心一意意气风发 → 发愤图强 → 强词夺理 → 理直气壮 → 壮志凌云 → 云开雾散 → 散兵游勇 → 勇往直前易错 case:用户输入非成语(如“你好”),工具提示“未找到匹配成语”
一心一意意气风发 → 发愤图强 → 强词夺理 → 理直气壮 → 壮志凌云 → 云开雾散 → 散兵游勇 → 勇往直前易错 case:用户输入带空格或标点(如“一心一意!”),工具自动清洗后接龙

常见错误对照8 个常踩的坑 · 错误 → 修复

1. 用错“同音”规则:声调不同也算同音

错误
输入「得意洋洋」,接「yang 光灿烂」
修复
输入「得意洋洋」,接「扬眉吐气」

成语接龙中“同音”通常要求声母、韵母、声调完全相同(如 yáng→yáng),声调不同(yáng→yāng)不算合法接龙,工具会判定失败。

2. 忽略“同字”规则:以为首尾字拼音相同即可

错误
输入「一心一意」,接「异口同声」
修复
输入「一心一意」,接「意气风发」

同字接龙要求首字与上一成语尾字完全相同(包括字形),不是拼音相同。工具严格按字符匹配,不会做同音容错。

3. 输入非成语的常见短语或俗语

错误
输入「七上八下」,接「下不为例」
修复
输入「七上八下」,接「下马看花」

「下不为例」是常用俗语,非四字成语。工具词库仅收录《成语大辞典》标准条目,非成语会被判定为无效输入。

4. 接龙时用了上一成语的中间字而非尾字

错误
输入「守株待兔」,接「守口如瓶」
修复
输入「守株待兔」,接「兔死狗烹」

接龙规则强制以尾字开头,不能以首字或中间字开头。工具只检查新成语首字是否等于上一成语尾字。

5. 多音字选错读音导致接龙失败

错误
输入「行云流水」,接「水落石出」后,下一轮输入「出类拔萃」
修复
输入「行云流水」,接「水落石出」后,下一轮输入「出奇制胜」

「行」在成语中读 xíng 非 háng,若按错误读音接龙,工具按词库标准读音校验,声调或声母不匹配会被拒。

6. 在“互动出题”模式下输入答案而非出题

错误
点击“出题”按钮后,在输入框填入「马到成功」
修复
点击“出题”按钮后,输入框应填入题目尾字(如「功」),由工具生成接龙成语

互动出题模式中,用户角色是出题者,需提供尾字让工具作答。填入完整成语会被当作无效格式。

7. 使用繁体字或异体字接龙

错误
输入「龙腾虎跃」,接「躍躍欲试」
修复
输入「龙腾虎跃」,接「跃马扬鞭」

工具词库基于简体中文 Unicode 编码,繁体「躍」与简体「跃」字形不同,无法匹配。需使用标准简体字。

8. 在“同音接龙”中混淆前后鼻音

错误
输入「金碧辉煌」,接「黄粱一梦」
修复
输入「金碧辉煌」,接「皇天后土」

「煌」拼音 huáng(后鼻音),「黄」huáng 也同音,但「黄粱一梦」首字是「黄」而非「煌」——用户误以为「黄」=「煌」是同一字。工具按字音匹配,不认字形相似。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

S = max{ LCS(w_i, w_j) | w_i ∈ A, w_j ∈ B }

变量说明

  • S — 接龙匹配得分(0-1 归一化)
  • LCS — 最长公共子串长度(字符级)
  • w_i — 用户输入的当前成语
  • w_j — 候选接龙成语
  • A — 用户输入成语的尾字集合
  • B — 候选成语的首字集合

示例

用户输入「马到成功」,尾字「功」。候选库中有「功成名就」「功亏一篑」「功德无量」。LCS('功','功成名就')=1(单字匹配),LCS('功','功亏一篑')=1,LCS('功','功德无量')=1。S=1/1=1,三个候选均满分,按字典序返回「功成名就」。若输入「一马当先」,尾字「先」,候选库中无首字为「先」的成语,则 S=0,提示无匹配。

适用范围

适用于标准四字成语接龙(同字匹配),不适用于同音字接龙(需另用拼音映射表)。数据来源:《成语大辞典》收录的 3 万+ 条成语库。

原理图

用户输入上一个成语后端处理1. 提取尾字/尾音2. 词典匹配3. 随机选一个输出结果下一个成语循环:以上一个成语的尾字作为新头字用户输入后端处理输出结果
用户输入 后端处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import re

# 成语接龙核心:检查尾字与首字是否同音(忽略声调)
# 使用拼音库 pypinyin 实现
from pypinyin import lazy_pinyin, Style

def get_last_char_pinyin(word: str) -> str:
    """获取成语最后一个字的拼音(无声调)"""
    if len(word) < 2:
        return ""
    last_char = word[-1]
    # 取无声调拼音
    pinyin = lazy_pinyin(last_char, style=Style.TONE3, neutral_tone_with_five=True)
    # 去掉声调数字
    return re.sub(r'[0-5]', '', pinyin[0])

def can_chain(prev: str, next_: str) -> bool:
    """判断 next_ 能否接在 prev 后面(同音接龙)"""
    if len(prev) < 2 or len(next_) < 2:
        return False
    prev_tail = get_last_char_pinyin(prev)
    next_head = get_last_char_pinyin(next_[:1])  # 取首字拼音
    return prev_tail == next_head

# 示例
print(can_chain("马到成功", "功德无量"))  # True(功=gong, 功=gong)
print(can_chain("马到成功", "马不停蹄"))  # False(功=gong, 马=ma)
package main

import (
	"fmt"
	"regexp"
	"strings"

	"github.com/mozillazg/go-pinyin"
)

// getLastCharPinyin 获取成语最后一个字的无声调拼音
func getLastCharPinyin(word string) string {
	if len([]rune(word)) < 2 {
		return ""
	}
	runes := []rune(word)
	lastChar := string(runes[len(runes)-1])

	// 获取拼音(带声调数字)
	a := pinyin.NewArgs()
	a.Style = pinyin.Tone3
	result := pinyin.Pinyin(lastChar, a)
	if len(result) == 0 {
		return ""
	}
	// 去掉声调数字
	re := regexp.MustCompile(`[0-5]`)
	return re.ReplaceAllString(result[0][0], "")
}

// canChain 判断两个成语能否接龙(同音接龙)
func canChain(prev, next string) bool {
	if len([]rune(prev)) < 2 || len([]rune(next)) < 2 {
		return false
	}
	prevTail := getLastCharPinyin(prev)
	nextHead := getLastCharPinyin(string([]rune(next)[0]))
	return strings.EqualFold(prevTail, nextHead)
}

func main() {
	fmt.Println(canChain("马到成功", "功德无量")) // true
	fmt.Println(canChain("马到成功", "马不停蹄")) // false
}
// 成语接龙:使用 pinyin 库(npm install pinyin)
const pinyin = require('pinyin');

/**
 * 获取成语最后一个字的无声调拼音
 */
function getLastCharPinyin(word) {
  if (word.length < 2) return '';
  const lastChar = word[word.length - 1];
  // 取拼音数组,style: 0 表示无声调
  const result = pinyin(lastChar, { style: pinyin.STYLE_NORMAL });
  return result[0] || '';
}

/**
 * 判断两个成语能否接龙(同音接龙)
 */
function canChain(prev, next) {
  if (prev.length < 2 || next.length < 2) return false;
  const prevTail = getLastCharPinyin(prev);
  const nextHead = getLastCharPinyin(next[0]);
  return prevTail === nextHead;
}

// 示例
console.log(canChain('马到成功', '功德无量')); // true
console.log(canChain('马到成功', '马不停蹄')); // false

常见问题

7 个高频疑问

成语接龙怎么玩,是必须同音同字还是可以同音不同字?
这个工具默认使用同音同字规则(即前一个成语的最后一个字与后一个成语的第一个字完全相同),例如「马到成功」→「功成名就」。也支持同音不同字的模式(例如「一心一意」→「意味深长」中「意」与「异」同音),可以在工具页面上方切换模式。注意:同音模式会匹配声调完全相同的字(如 zhì → zhì),不匹配近似音(zhì → zhí)。
为什么我接的成语工具提示不对,但我觉得是对的?
工具内置的成语库来自《现代汉语词典》第7版及国家语委审定成语表,收录约 3.5 万条标准成语。如果接的词语不在这个库里(如方言成语、网络自造词、四字俗语),系统会判为无效。可以点击结果区的「查看详情」看到当前词库中该字开头的所有可用成语列表,确认自己的词是否在列。如果确实属于标准成语但被遗漏,可以通过页面底部的反馈入口提交。
接龙时提示「没有可接的成语」,是真的没有还是工具没收录?
两种情况都可能。工具收录 3.5 万条标准成语,覆盖了 95% 以上常见成语,但极生僻字(如「瓞」「黾」)开头确实没有成语可接。可以点击提示旁边的「换字」按钮,工具会自动查找当前字同音或同义的其他字(如「行 xíng」→「行 háng」),扩大接龙范围。如果换字后仍然提示没有,说明该字在标准成语库中确实无后继词。
这个工具和手机 App 上的成语接龙有什么区别?
主要区别在三个方面:一是词库——手机 App 通常使用游戏厂商自建库,包含大量生造词和方言词,本工具严格限定在权威词典标准成语;二是无广告干扰——纯工具页面,没有弹窗和积分系统,接龙过程不会被中断;三是支持自定义开局——可以手动输入任意成语作为起始词,App 通常只能从系统给出的词开始。缺点是缺乏排行榜和联机对战功能。
接龙时提示「网络错误」或一直加载中怎么办?
本工具后端使用 Go 处理成语匹配,需要网络请求。如果遇到加载超时,先检查网络连接是否正常。如果网络正常但反复失败,可能是服务器端缓存未命中导致查询耗时较长(首次查询某个生僻字时需从数据库检索),等待 10-15 秒后刷新页面重试即可。如果持续报错,可以尝试切换到「同音模式」,该模式匹配范围更广,服务器响应更快。
工具能接多少个回合?有没有长度限制?
单次接龙没有回合数上限,可以一直玩到接不下去为止。但注意:每次接龙会话在页面关闭或刷新后自动清空,不会保存历史记录。如果需要长回合练习,建议接龙过程中随时复制结果区的内容保存到本地。工具本身不限制接龙速度,但同一 IP 短时间内大量请求(每秒超过 10 次)会被短暂限流,正常使用不受影响。
为什么同一个字有时候能接,有时候又提示不能接?
可能触发了「重复使用禁止」规则——工具不允许在单次接龙中重复使用同一个成语(包括同音同字但不同写法的情况)。例如「一心一意」已被用过,之后即使再出现「意」字开头,也不能再次使用「一心一意」。这是为了防止无限循环。如果确实想重复使用,可以刷新页面重新开始一局,此时所有成语都恢复可用状态。
选择 打开 +新窗口 esc关闭