#wordle #word #puzzle #command-line #applications #daily #clues

应用 wordlebot

一个尝试解决每日 Wordle 拼词游戏的程序

3 个稳定版本

1.0.3 2022 年 9 月 15 日
1.0.2 2022 年 4 月 4 日
1.0.1 2022 年 3 月 24 日

#2145 in 命令行工具

BSD-3-Clause

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