词搜索生成器

输入一份单词表,把词按 8 个方向藏进字母方阵,剩余格子填随机字母,一次得到可打印的找词游戏和带坐标的答案键。

O T E H U T R B A L Z U
K O U K L E C B L J M M
J G Q S U O R Q M H D K
Y X F R A M R N M Z M Q
U Y E C E Z O J E V A J
Y H Q K N D S P T X L U
S V S O K Y B W E I U Q
T L I N T X Z C O H B W
K R E E E A N W R A E C
O B M A S L D Z J A N M
F O Z U C A M T P C I F
C B K P U G A X T F G Q

示例答案键:NEBULA 起点(10,11) 向上;GALAXY 起点(12,6) 向上;METEOR 起点(4,9) 向下;ORION 起点(10,1) 右上;COMET 起点(12,1) 右上。行列从 1 起数。

方阵边长对照表(按 40% 占用率上限估算,默认显示 12 行)
边长格子数40% 上限字母可容 6 字母词5 词表是否放得下
525101偏紧
636142偏紧
749193偏紧
864254放得下
981325放得下
10100406放得下
11121488放得下
12144579放得下
131696711放得下
141967813放得下
152259015放得下
1625610217放得下
1728911519放得下

数值仅作演示。填充字母每次随机,同一份词表两次生成的网格不会相同;答案键的行列号从 1 起数。

使用方法

  1. 在「单词表」里每行填一个词,也接受逗号或空格分隔。默认示例是 ORION、COMET、NEBULA、GALAXY、METEOR 五个太空词,最长 6 个字母。
  2. 在「方阵边长」里填 5 到 25 的整数,默认 12。12×12 共 144 格,五个词共 28 个字母,占用率 19.4%,余量充足。
  3. 在「藏词方向」里选 8 方向或 4 方向。8 方向含两条对角线,难度更高;4 方向只有横竖,适合低龄。
  4. 点「生成方阵」,或在单词表里按 Ctrl+Enter(Mac 是 Cmd+Enter)。Enter 键保留给换行,不会误触发生成。
  5. 结果区输出字母网格和答案键;对照表默认 12 行,点「加载更多」补齐 17 边长一行,「导出 CSV」带 BOM 头,Excel 打开中文不乱码。

这个词搜索生成器能解决什么

英语课或单词记忆打卡要一份找词练习:把本周词表贴进来,30 秒拿到一张可打印的字母方阵和答案键,不用手工排版和对位。

需要控制难度:边长、方向数和占用率三件事决定难度。同一个五词表,12×12 占用率 19.4% 属于简单,改到 8×8 就变成 43.8%,藏词密度明显上升。

怕出「无解题」:词长超过边长的词一定放不下(6 字母的 GALAXY 在 5×5 里必失败),本页会点名是哪个词放不下,而不是输出一张缺词的网格让你自己发现。

要给答案做对账:答案键给出每个词的起点行列和方向,行从上往下、列从左往右、都从 1 起数,批改时可以直接核对。

本页只生成英文 26 个字母的方阵,不处理中文词、不自动出提示语,也不把网格转成图片。填空用的随机字母来自随机字母生成器同一类均匀抽取,需要单独抽字母时可以直接用那个页面。

原理与规则说明

词搜索生成器用的是贪心随机放置:对每个词,从 8 个方向向量 (0,±1)、(±1,0)、(±1,±1)(即 Moore 邻域的 8 个方向)里随机取一个,再在合法起点范围内随机取一个起点,逐格检查「目标格为空或字母相同」,通过就写入;一次尝试失败就换位置重试,每个词最多试 200 次,全失败才记为放不下。

为什么词表先按长度降序排:长词的合法起点少,先放长词、后放短词能显著降低失败率;短词几乎总能塞进剩余空隙。演示词表里 NEBULA、GALAXY、METEOR 三个 6 字母词排在 ORION、COMET 前面就是这个原因。

为什么边长默认 12:经验上藏词字母占方阵 40% 以内时,8 方向加 200 次重试几乎不会失败。实测同一份五词表在 12×12 下换 200 个随机种子,出现「至少一个词放不下」的次数是 0;而把总字母推到 145(超过 144 格)时,48 个词只能放下 35 个。12×12 的 57 字母上限对常用词表留足了余量。

为什么剩余格子用 Math.random() 填 A~Z:26 个字母等概率填充让藏词不被「非常用字母暴露」。填充是均匀独立抽取,不刻意避免无意间拼出别的词——这也是所有找词游戏的通用做法,完全避免偶然词需要整行整列查词典,代价不成比例。

字母冲突时允许共用:目标格已有字母且与待写字母相同时允许交叉,这会让网格更紧凑,也是纸面找词游戏的惯例;不同字母的交叉才判为冲突并换位重试。

完整示例(数值仅作演示)

默认输入五个太空词、边长 12、8 方向:ORION(5)、COMET(5)、NEBULA(6)、GALAXY(6)、METEOR(6),共 28 个字母,占 144 格的 19.44%,需要随机填充 116 格,两者之和恰好 144。

打开页面看到的那张网格是一份真实输出:NEBULA 从第 10 行第 11 列向上排,GALAXY 从第 12 行第 6 列向上排,METEOR 从第 4 行第 9 列向下排,ORION 与 COMET 都从第 1 列向右上斜排。填充字母随机,你重新生成会得到不同的排布,但五个词一定都在。

把边长改到 8:面积 64,28 个字母的占用率升到 43.75%,超过 40% 的经验线,仍能生成但交叉共用会明显变多;改到 5:GALAXY 这类 6 字母词超过边长,会被点名放不下。

换成 4 方向:对角线关闭,可用方向从 8 个降到 4 个,同样词表的排布自由度减半,占用率高时失败率上升得比 8 方向快。

输入范围与对照表

边长格子数40% 上限字母可容 6 字母词说明
525101只放得下短词,6 字母词必失败
636142偏紧
749193偏紧
864254五词 28 字母占用 43.8%
981325放得下
10100406放得下
11121488放得下
12144579默认档,占用 19.4%
131696711放得下
141967813放得下
152259015适合 10 词以上
1625610217适合 10 词以上
1728911519适合 15 词以上

输入范围:单词表 1 到 40 个词,每个词 2 到 25 个字母,只接受 A~Z 与 a~z;边长 5 到 25 的整数。词数超过 40、词长超过边长、出现非字母字符都会被点名拦截。

常见误用对照:把中文词或带连字符的词(如 ICE-CREAM)贴进词表。本页不自动拆词或转音,会直接报「第 N 个词不是纯字母」,需要你先拆成 ICE 和 CREAM 两行。

输入范围、边界与精度说明

词长与边长的硬约束:词在任一方向上要占 词长 格,所以词长大于边长时,200 次重试全部会在起点范围检查处被跳过,必然失败。5×5 配 GALAXY(6) 就是这种情况,本页会报「GALAXY 有 6 个字母,超过边长 5,放不下」。

占用率只是软约束:总字母超过面积 40% 时本页照常生成,只在结果上方提示占用率。实测 12×12 装到 90 个字母(62.5%)仍能全部放下,但 145 个字母(100.7%)时 29 个词有 3 个放不下,240 个字母(166.7%)时 48 个词只能放 35 个——超面积的部分物理上不可能放下。

重试次数为什么是 200:每次尝试是「随机方向 × 随机起点」的一次抽样,8 方向时成功概率高,200 次在常规占用率下足以覆盖;再往上加只会让高占用率时页面明显变慢,而那些场景本来就该加大边长。

去重与大小写:词表先整体转大写再查重,ORION 和 orion 会被当成同一个词,重复项只保留一个;最后按「字母大小写」选项统一输出大写或小写,答案键与网格用同一套字母。

放不下的词不会被静默丢弃:结果区上方会列出词名和原因(超边长或 200 次尝试失败),网格照常输出其余词,答案键只包含实际放下的词,两边一定对得上。

常见误用的正确解释:同一份词表两次生成网格不同,不是不稳定——方向、起点和填充字母都来自 Math.random(),每次都是一次新的随机抽样;答案键会随当次输出同步更新,批改时以当次答案键为准。

常见问题

能放中文词吗?

不能。找词方阵的格子是单个拉丁字母,中文词在 26 字母体系里没有对应格。可以把中文词写成拼音或英文再填入,本页的校验只接受 A~Z。

为什么有的词放不下了?

两种情况:词长超过边长(必然失败),或者占用率太高导致 200 次随机尝试都没找到空位。前者加大边长,后者减词或加大边长,报错里都会写明是哪个词。

填充字母会不会不小心拼出别的词?

可能。填充是逐格独立均匀抽取,不查词典,偶然出现短词无法完全避免,这也是纸面找词游戏的常态。介意的话可以点一次「生成方阵」换一批填充字母。

答案键的行列怎么数?

行从上往下数、列从左往右数,都从 1 开始。例如 NEBULA 起点(10,11) 表示第 10 行第 11 列,方向「向上」指行号递减、列号不变。

词表有重复词会怎样?

先统一转大写再查重,重复项只保留一个,并在提示里告诉你去掉了哪个。想要两次出现同一个词没有意义,因为答案键没法区分。

占用率 40% 是硬限制吗?

不是。它只是「几乎不会失败」的经验线,超过时本页照常生成并给出提示。真正的硬限制是总字母不能超过格子数,以及每个词的长度不能超过边长。

4 方向和 8 方向差在哪?

8 方向多两条对角线,藏词自由度翻倍,同样词表更容易放下、玩家也更难找;4 方向只有横竖,适合低龄或快速课堂活动。

词表会被上传吗?

不会。放置算法只用 Math.random() 和二维数组,没有任何网络请求;可以在开发者工具的 Network 面板确认,页面加载后不会再发请求。

相关工具

词搜索生成器只做「词表藏进字母方阵」这一件事,单词相关的其它处理各有专门页面。