# korsdrag/wordle architecture

> Architecture diagram of the GitHub repository korsdrag/wordle, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/korsdrag/wordle
- Repository: https://github.com/korsdrag/wordle

## Overview

This small console application searches for five words whose letters are all distinct. It reads the answer and allowed-guess lists, encodes and filters their letter sets, searches combinations in parallel, then prints matching words and elapsed time. The source shows the processing and output flow; the README is empty. The input reads use hard-coded absolute paths, which may not match the repository’s local `words` directory.

Main entry points: [`Program.cs`](https://github.com/korsdrag/wordle/blob/main/Program.cs) (Console entry point), [`words/wordle-nyt-answers-alphabetical.txt`](https://github.com/korsdrag/wordle/blob/main/words/wordle-nyt-answers-alphabetical.txt) (Answer list), [`words/wordle-nyt-allowed-guesses.txt`](https://github.com/korsdrag/wordle/blob/main/words/wordle-nyt-allowed-guesses.txt) (Allowed guesses)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("User"))
node_answers["Answer list"]
node_guesses["Allowed guesses"]
node_main["Console entry point<br/>[Program.cs]"]
node_encode["Letter encoding<br/>[Program.cs]"]
node_filter["Word filtering<br/>[Program.cs]"]
node_search["Combination search<br/>[Program.cs]"]
node_decode["Word decoding<br/>[Program.cs]"]
node_visualize["Letter visualization<br/>[Program.cs]"]
node_console["Console output"]

node_user -->|"starts"| node_main
node_main -->|"reads"| node_answers
node_main -->|"reads"| node_guesses
node_main -->|"encodes words"| node_encode
node_main -->|"filters and deduplicates"| node_filter
node_main -->|"runs search"| node_search
node_search -->|"decodes matches"| node_decode
node_decode -->|"re-encodes words"| node_encode
node_decode -->|"formats letters"| node_visualize
node_main -->|"prints status"| node_console
node_search -->|"prints matches"| node_console

click node_answers "https://github.com/korsdrag/wordle/blob/main/words/wordle-nyt-answers-alphabetical.txt"
click node_guesses "https://github.com/korsdrag/wordle/blob/main/words/wordle-nyt-allowed-guesses.txt"
click node_main "https://github.com/korsdrag/wordle/blob/main/Program.cs"
click node_encode "https://github.com/korsdrag/wordle/blob/main/Program.cs"
click node_filter "https://github.com/korsdrag/wordle/blob/main/Program.cs"
click node_search "https://github.com/korsdrag/wordle/blob/main/Program.cs"
click node_decode "https://github.com/korsdrag/wordle/blob/main/Program.cs"
click node_visualize "https://github.com/korsdrag/wordle/blob/main/Program.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_user toneBlue
class node_answers,node_guesses,node_main,node_encode,node_filter,node_search,node_decode,node_visualize toneTeal
class node_console toneIndigo
```

## Components

### Other components

- **User**
- [Answer list](https://github.com/korsdrag/wordle/blob/main/words/wordle-nyt-answers-alphabetical.txt): `words/wordle-nyt-answers-alphabetical.txt`
- [Allowed guesses](https://github.com/korsdrag/wordle/blob/main/words/wordle-nyt-allowed-guesses.txt): `words/wordle-nyt-allowed-guesses.txt`
- [Console entry point](https://github.com/korsdrag/wordle/blob/main/Program.cs): `Program.cs`
- [Letter encoding](https://github.com/korsdrag/wordle/blob/main/Program.cs): `Program.cs`
- [Word filtering](https://github.com/korsdrag/wordle/blob/main/Program.cs): `Program.cs`
- [Combination search](https://github.com/korsdrag/wordle/blob/main/Program.cs): `Program.cs`
- [Word decoding](https://github.com/korsdrag/wordle/blob/main/Program.cs): `Program.cs`
- [Letter visualization](https://github.com/korsdrag/wordle/blob/main/Program.cs): `Program.cs`
- **Console output**

## Connections

- User → Console entry point: starts
- Console entry point → Answer list: reads
- Console entry point → Allowed guesses: reads
- Console entry point → Letter encoding: encodes words
- Console entry point → Word filtering: filters and deduplicates
- Console entry point → Combination search: runs search
- Combination search → Word decoding: decodes matches
- Word decoding → Letter encoding: re-encodes words
- Word decoding → Letter visualization: formats letters
- Console entry point → Console output: prints status
- Combination search → Console output: prints matches
