# 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: ```bash make RELEASE=1 ``` ## User Instructions ## Limitations and Drawbacks ## Comments