🥽 Wordle lab breakdown

Depending on your existing experience with Unison, you can pick and choose how much direction and information you need about each of the following components. In broad strokes, this is how we suggest tackling the problem. We've provided some stub signatures and each section contains a link to a more detailed page. At the end we've listed some options for extending the project that we won't dive into here.

Install and set up the project

Once you have the UCM running, create a project for your Wordle clone.

.> project.create wordle
wordle/main>

The UCM will create the main branch of your project for you and download the latest base library into the lib namespace. You can explore it with commands like ls and view or open a UI view of your local codebase with ui.

Core logic and data modeling

  • Implement Wordle’s core comparison logic: given a 5 letter target word and a 5 letter user guess, return the guess with each character annotated with one of the three Wordle result options

👉 More details for core logic

Rendering a guess to the console

  • Colorize console feedback with The Terminus library from Unison Share
  • Print out a rendered result to the console with IO

👉 More details for rendering guesses

Input validation and error handling

  • Validate length of guesses
  • Rerunning console interactions

👉 More details for input validation

Game loop state and dictionary

  • Query a provided file of 5 letter words for more validation options
  • Write the loop which captures the user's guesses using IO and other abilities
  • Run wordle, package it for sharing

👉 More details for game loop state

Wordle solver challenge task

  • Write a wordle solver: see if it can outcompete your human friends

👉 Optional: Wordle solver details

Additional challenges

👉 Optional: More challenges

That's it!

🖥 Give it a whirl! 🎉