Wordle 游戏应该广为人知了,具体形式是通过有限轮猜测来确定一个事先准备的单词,每次猜测都会反馈字母是否存在于答案中,以及字母位置的正误。Handle 是这个游戏传入中国的变种,形式几乎没有变化,只是猜的东西从单词变为了四字成语。如果你想实际体验一下,可以点击这个链接

实际体验下来,Handle 的难度要远高于 Wordle,一个是成语本身就难想,再是提示更间接,从拼音到汉字还有一段不小的距离。一番搜索后,发现网上一堆 Wordle Solver,却没个 Handle Solver,所以就随便写了个,抛砖引玉。

原理

没啥原理,非常简单。鉴于成语词典整个也就 3e4 个词左右,便直接将词语按照其每位汉字的拼音哈希保存至 set 里。对于每次拼音的过滤,都暴力执行集合合并、取交即可。细节的话不如直接看代码来得方便。

使用

  • 如果你确定字母 a 存在,输入 l a
  • 如果你确定字母 a 存在且在第 i 位上,输入 l i a
  • 如果你确定字母 a 不存在,输入 r a
  • 开始新一轮,输入 b

输入均是以声母、韵母为最小粒度。例如:不会出现(也不要指望)输入 l a 能同时保留 aai 的结果;r a 也不会过滤 ai

源码

github