2 KiB
Ordle: A Wordle Solver
Design
Programmet är strukturerat i tre huvudkomponenter som arbetar tillsammans för att lösa Wordle-pussel. Den första delen hanterar inläsning och förberedelse av ordlistan. funktionen read_candidates läser in alla ord från en fil och filtrerar ut de som inte är fem bokstäver långa. Samtidigt konverteras orden till gemener och dubbletter tas bort. Detta säkerställer att programmet börjar med en ren lista av potentiella lösningar.
Den andra delen av programmet fokuserar på filtrering av ord baserat på användarens input- Här används 3 funktoter för att hantera olika typer av krav:
- wrong_fn filterar bort ord som innehåller bokstäver som användaren angivit “felaktiga”.
- correct_fn säkerställer att de ord som finns kvar har alla gröna bokstäver på rätt positioner.
- misplaced_fn kontrollerar att gula bokstäver finns i ordet, men inte på de positioner som angivits som felaktiga.
Dessa funktioner används i funktionen do_filter, som applicerar användarens kriterier på den aktuella listan av kandidater. Efter varje steg minskar antalet möjliga lösningar tills en kandidat återstår, eller tills användaren väljer att avsluta.
Den tredje komponenten hanterar användarinteraktionen. Funktionen prompt används för att samla in indata från användaren. Bokstäver som inte finns i ordet, gröna bokstäver med deras positioner och gula bokstäver med deras felaktiga positioner. Denna indata används sedan för att uppdatera filtreringen.
Programmet består av 3 filer. Vilket är main.cc som kör självaste programmet och använder logik från ordle.cc genom att inkludera ordle.h. ordle.h är definitionen för ordle.cc och ordle.cc är självaste logiken.
Build Instructions
Common actions are defined in the provided Justfile and can be viewed with
just -l
For a release build:
make RELEASE=1