An application that tries to solve a Wordle puzzle only by using clues

Overview

wordlebot

An application that tries to solve a Wordle puzzle only by using clues. You decide the word to discover (if you want to compete with wordlebot, use the word you already solved for the day.) As wordlebot provides guesses, you need to give the clues.

NOTE: If you give an incorrect clue, you'll have to start over because wordlebot's game state will have been permanently altered.

Running

After cloning the project, run it with

$ cargo run

There are command line options to enable more information or to change the theme.

Webster 1.0.1
Guesses a word by using Wordle clues

USAGE:
    wordlebot [OPTIONS]

OPTIONS:
    -h, --help             Print help information
        --limit     Set vocabulary report limit [default: 20]
    -t, --theme     Choose a theme [default: normal] [possible values: normal, high-contrast]
    -v, --verbose          Report vocabulary before each guess
    -V, --version          Print version information

Giving Clues

Giving clues is mostly straightforward: Place a B in the corresponding position of a letter that isn't in the word. Place a Y in the spot where the letter is in the word, but its current position is wrong. Place a G in the spot where the corresponding letter is correct and in the right spot.

It gets a little difficult when a guess uses a particular letter more than once. If you find yourself trying to figure out how to provide proper clues, follow this procedure:

  • Assign the Gs first
  • Any remaining instances of the letter are handled left to right. Assign Ys before Bs.

For instance, if the word was OTTER and the guess was TATTY, the second T would get the G clue. Then we go left to right with the remaining Ts so the first T gets the Y clue. Since OTTER doesn't have any more Ts, the third T gets the B clue. So the clue you would provide would be YBGBB.

To-do items

  • Make wordlebot use all three forms of clues
    • Handle GREEN hints
    • Handle YELLOW hints
    • Handle BLACK hints
  • When wordlebot correctly guesses, emit the colored-box output that Wordle uses to show your friends how you did, without giving away any part of the puzzle.
  • If it's too hard to give perfect clues, wordlebot can perform both roles: guessing and generating the clues.

Progress

This section shows the progress the program made as more clues were handled.

Only Green Clues

For this run, wordlebot only used green hints. It can take a while to solve the puzzle because it only makes progress when the word it chooses generates green hints. But even this can cause surprising results. For this run, the word to solve was CAMEL. Here's how one session went:

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 was a terrible, first guess. We should probably make the first guess one of the several words that have been deemed "good, initial guesses".

Green and Partial Yellow Clue Support

For this next run, support for yellow hints was added. It fared better but really could use the information that black hints provide.

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"

Green, Yellow, and Black Clue Support

Here's the run when the Black hints were added:

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"

Despite taking 6 guesses, it didn't repeat itself and the set of matching words kept getting smaller and smaller (I removed that info from the output.) It's biggest problem is that it can "recall" every word instead of the most common, like a person would do. For instance, a person wouldn't choose HAZEL because "Z" has a low probability of being used. Nor would one choose FELLA because the double L burns an opportunity to get a clue for another letter.

All Clues and Better Word Selection

A version has been committed that picks "better" words. Here's a session:

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"
You might also like...
Rushes are new ephemeral projects at Hive Helsinki. Wordle is the first in this series with 48 hours time window

Rushes are new ephemeral projects at Hive Helsinki. Wordle is the first in this series with 48 hours time window

A Wordle solving assistant

Wordler A Wordle solving assistant. What and Why? Affected by the virally memetic game wordle, but linguistically incapable of solving it, I set forth

Solves wordle optimally by means of set subdivision

rust-wordle-solver Solves wordle optimally by means of set subdivision Building and running You should probably use the release build, as the debug bu

An interactive, universal Wordle solver
An interactive, universal Wordle solver

Eldrow (Wordle in reverse) is an interactive, universal Wordle solver that attempts to achieve near to mathematically perfect performance without rely

Wordle, but with ZK proofs!
Wordle, but with ZK proofs!

Zordle: ZK Wordle Zordle is Wordle, but with zero-knowledge proofs. Zordle uses ZK proofs to prove that a player knows words that map to their shared

Bloat-Free Browser Game in Rust (rustc-only challenge)
Bloat-Free Browser Game in Rust (rustc-only challenge)

Bloat-Free Browser Game in Rust (rustc-only challenge) Don't blame me if this code breaks in 1 year The idea is to make a simple game in Rust as bloat

A barebones example of how to integrate OpenXR with wgpu (Vulkan-only)

wgpu-openxr-example a barebones example of how to integrate OpenXR with wgpu (Vulkan-only) It has four modes: cargo run --no-default-features: desktop

Tools for working with Retro game formats. Currently only supports Metroid Prime Remastered.

retrotool Warning Under active development, not guaranteed to be useful or even function. Tools for working with Retro game formats. Currently only su

Using bevy and custom render pipelines in order to render many objects in a forest using chunks for performance.

bevy_efficient_forest_example Using bevy and custom render pipelines in order to render many objects in a forest using chunks for performance. Grass i

Comments
  • Clues should follow the theme or be unrelated to the theme

    Clues should follow the theme or be unrelated to the theme

    If someone uses the --theme high-contrast option, the clues they provide should probably be Black, Blue, and Orange. Or maybe the clues should be theme-agnostic, like a set of symbols: _, +, *?

    enhancement good first issue 
    opened by rneswold 0
Releases(v1.0.2)
  • v1.0.2(Apr 4, 2022)

    Minor release containing usability changes:

    • The help text wraps at 80 columns instead of 100.
    • Added support for two environment variables, WORDLEBOT_THEME and WORDLEBOT_LIMIT which provide values for the respective command line options.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Mar 24, 2022)

    This release has been published to https://crates.io. Since a project already existed with the name webster, this project was renamed to wordlebot.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Mar 24, 2022)

Owner
Rich Neswold
Rich Neswold
A wordle implementation that I made for a competition of wordle solvers

Wordle tester A wordle implementation that I made for a competition of wordle solvers. Runs tests using a list of words and outputs the total turns ta

Shantanu Deshmukh 6 Apr 11, 2022
A puzzle game where you eat your own tail to win!

taileater taileater is a puzzle game available for free here: https://szunami.itch.io/taileater This project is built using Rust and Bevy. Assets were

null 25 Dec 20, 2022
Mad veggies: a puzzle game made for the LD52

It's winter, time to plan our future garden to get the best harvest possible! mad veggies is a puzzle game about interactions between vegetables. Some

Louis Vignier 3 Jan 14, 2023
Rust solver for color-sort puzzle game

Color-Sort Puzzle Solver Optimal solver for color-sort game (see example and game explanation sections below). This project (written in Rust) efficien

Amr Saber 4 May 30, 2023
Ludum Dare 54 - Rust + Bevy - 2048-style Puzzle game

AM4LGAM8 - Ludum Dare #54 AMALGAMATE (Intransitive verb) : To combine into a unified or integrated whole A game made in 48 hours for the Ludum Dare Ga

Olivier Pinon 3 Oct 3, 2023
Using information theory, this is the optimal wordle player

enwordle Using information theory, this is the optimal wordle player. It is written in Rust and runs on the command-line. Theory When you pick a word

Aaron Hillegass 2 May 6, 2022
Generate, display and solve mazes in an animated way in the terminal.

How to Run Usage: maze_solver.exe [OPTIONS] <--generator <GENERATOR>|--input <INPUT>> [ROWS] [COLUMNS] Arguments: [ROWS] Number of rows to draw

Julia 4 Jan 16, 2023
Eldrow: Wordle in Reverse

Eldrow: Wordle in Reverse Setup First you are gonna have to get Rust at rust-lang.org. Then, you will need to have nodejs installed. For the WebAssemb

Xuming Zeng 8 Sep 16, 2022
Naive and quick Wordle optimal starting word Analysis.

wordlentropy Naive and quick Wordle optimal starting word Analysis. This Rust code can analyze all 2315 Wordle games with 10657 word choices in 100 mi

Mufeed VH 2 Feb 7, 2022
A reimplementation of the excellent word game Wordle by Josh Wardle.

Paudle A reimplementation of the excellent word game Wordle by Josh Wardle. This version was created using Yew and Rust. I cribbed the colors and layo

Paul Sanford 39 Dec 5, 2022