3 个稳定版本
1.0.3 | 2022 年 9 月 15 日 |
---|---|
1.0.2 | 2022 年 4 月 4 日 |
1.0.1 | 2022 年 3 月 24 日 |
#2145 in 命令行工具
160KB
2.5K SLoC
wordlebot
一个应用程序,它只通过使用线索来尝试解决 Wordle 拼词游戏。您决定要发现的单词(如果您想与 wordlebot
竞赛,请使用您当天已经解决的单词。)由于 wordlebot
提供猜测,您需要给出线索。
注意:如果您给出了错误的线索,您将不得不从头开始,因为 wordlebot
的游戏状态已被永久更改。
运行
在克隆项目后,用以下命令运行
$ cargo run
有命令行选项可以启用更多信息或更改主题。
Webster 1.0.2
Guesses a word by using Wordle clues
USAGE:
wordlebot [OPTIONS]
OPTIONS:
-h, --help
Print help information
--limit <LIMIT>
This sets the limit which decides whether the number of words
remaining is reported instead of each word.
[env: WORDLEBOT_LIMIT=]
[default: 20]
-t, --theme <THEME>
Once the word is guessed, it displays a summary of the guesses just
like the official app. This option allows you to change the color of
the blocks.
[env: WORDLEBOT_THEME=]
[default: normal]
[possible values: normal, high-contrast]
-v, --verbose
Reports how many words are left in its vocabulary, after applying
all the clues. When the number of words drops below a limit, all the
remaining words are printed.
-V, --version
Print version information
提供线索
提供线索主要是直截了当的:将一个 B 放在不在单词中的字母对应的位子上。将一个 Y 放在字母在单词中但位置错误的位置。将一个 G 放在对应的字母正确且位置正确的位置。
当猜测使用了特定的字母多次时,事情会变得有些困难。如果您发现自己试图找出如何提供适当的线索,请遵循以下程序
- 首先分配 G
- 任何剩余的字母实例将按从左到右处理。在 B 之前分配 Y。
例如,如果单词是 OTTER,猜测是 TATTY,则第二个 T 将获得 G 线索。然后我们按从左到右处理剩余的 T,所以第一个 T 获得Y线索。由于 OTTER 没有更多的 T,第三个 T 获得B线索。因此,您提供的线索将是 YBGBB。
待办事项
- 让
wordlebot
使用三种线索形式- 处理 GREEN 提示
- 处理 YELLOW 提示
- 处理 BLACK 提示
- 当
wordlebot
正确猜测时,输出 Wordle 使用的彩色框输出,以显示您如何做到这一点,而不泄露任何拼词游戏的一部分。 - 如果给出完美线索太难,
wordlebot
可以同时扮演猜测和生成线索的角色。
进度
本节显示了程序在处理更多线索时取得的进展。
只有绿色线索
本次运行中,wordlebot
只使用了绿色提示。由于它只有在所选择的单词生成绿色提示时才会取得进展,因此解决谜题可能需要一段时间。即使如此,这也可能产生令人惊讶的结果。本次运行中要解决的单词是CAMEL。以下是其中一次会话的过程:
My guess: QUIRK (vocabulary: 2315 words)
Result> bbbbb
My guess: BATCH (vocabulary: 2315 words)
Result> bgbyb
My guess: BAWDY (vocabulary: 304 words)
Result> bgbbb
My guess: PASTY (vocabulary: 304 words)
Result> bgbbb
My guess: RAJAH (vocabulary: 304 words)
Result> bgbbb
My guess: MAMMA (vocabulary: 304 words)
Result> bggbb
My guess: GAMUT (vocabulary: 10 words)
Result> bggbb
My guess: RAMEN (vocabulary: 10 words)
Result> bgggb
My guess: GAMER (vocabulary: 5 words)
Result> bgggb
My guess: TAMER (vocabulary: 5 words)
Result> bgggb
My guess: GAMER (vocabulary: 5 words)
Result> bgggb
My guess: CAMEO (vocabulary: 5 words)
Result> ggggb
My guess: CAMEL (vocabulary: 2 words)
Result> ggggg
Solved it! The word was "CAMEL"
QUIRK是一个非常糟糕的第一个猜测。我们可能应该把第一个猜测设定为“好的初始猜测”中的一些单词。
绿色和部分黄色提示支持
在接下来的运行中,增加了对黄色提示的支持。效果有所改善,但仍然非常需要黑色提示提供的信息。
My guess: REGAL (vocabulary: 2315 words)
Result> bybyg
My guess: CHILL (vocabulary: 95 words)
Result> gbbbg
My guess: CAROL (vocabulary: 7 words)
Result> ggbbg
My guess: CAVIL (vocabulary: 3 words)
Result> ggbbg
My guess: CAVIL (vocabulary: 3 words)
Result> ggbbg
My guess: CAMEL (vocabulary: 3 words)
Result> ggggg
Solved it! The word was "CAMEL"
绿色、黄色和黑色提示支持
以下是添加黑色提示时的运行情况
My guess: IRATE
Hints> bbyby
My guess: GLEAN
Hints> byyyb
My guess: FELLA
Hints> byyby
My guess: HAZEL
Hints> bgbgg
My guess: EASEL
Hints> bgbgg
My guess: CAMEL
Hints> ggggg
Solved it! The word was "CAMEL"
尽管只猜测了6次,但它并没有重复自己,匹配单词的集合一直在不断缩小(我已经从输出中删除了这些信息)。它最大的问题是它可以“回忆”每一个单词,而不是像人一样选择最常用的单词。例如,一个人不会选择HAZEL,因为“Z”被使用的概率很低。也不会选择FELLA,因为双L会占用获取另一个字母提示的机会。
所有提示和更好的单词选择
已经提交了一个版本,它选择“更好的”单词。以下是其中一次会话的示例
My guess: IRATE
Hints> bbyby
My guess: SHEAF
Hints> bbyyb
My guess: NAMED
Hints> bgggb
My guess: CAMEL
Hints> ggggg
Solved it! The word was "CAMEL"
依赖关系
~4MB
~73K SLoC