Este projeto é uma ferramenta para adivinhação de palavras baseada em um arquivo de palavras fornecido. O programa utiliza uma abordagem iterativa para refinar as possibilidades até encontrar a palavra correta com base em dicas ou informações fornecidas. É útil para jogos de lógica, como Wordle e palavras cruzadas, ou para análises educacionais de jogos de palavras.
- Carrega um arquivo de palavras para o programa.
- Refina as palavras possíveis com base nas dicas dadas.
- Encontra a palavra alvo com o mínimo de tentativas, utilizando técnicas de entropia para maximizar eficiência.
Para rodar ou compilar este projeto, você precisará:
- Rust: (Recomenda-se a versão
1.84.1
ou mais recente). Caso não tenha o Rust instalado, siga as instruções no site oficial do Rust. - Um arquivo de palavras em formato de texto contendo palavras separadas por linhas.
Dependências utilizadas no projeto (gerenciadas pelo Cargo.toml
):
- anyhow (para tratamento de erros).
- itertools (utilitário geral para iteradores).
- clap (parsing e gerenciamento de argumentos da linha de comando).
- rayon (computação paralela eficiente).
- statrs (funções estatísticas, para cálculos de entropia).
- smartcore (biblioteca de machine learning).
git clone <URL_DO_REPOSITORIO>
cd <NOME_DO_PROJETO>
Rode o comando básico do Cargo para compilar:
cargo build --release
O binário será gerado no diretório target/release
.
-
Antes de executar o programa, é necessário preparar:
- Um arquivo de texto contendo as palavras possíveis (uma palavra por linha).
- A palavra-alvo que será utilizada como teste para o programa.
-
Execute o binário gerado com os argumentos apropriados:
cargo run -- <CAMINHO_DO_ARQUIVO_DE_PALAVRAS> <PALAVRA_ALVO>
--file
: Caminho para o arquivo que contém as palavras.--target
: Palavra alvo que será encontrada pelo programa.
Se você tiver um arquivo chamado palavras.txt
e deseja que o programa encontre a palavra rust
, execute:
cargo run -- palavras.txt rust
O repositório possui um arquivo chamado db.txt
contendo todas as palavras do português.
O programa funciona seguindo os seguintes passos:
- Lê o arquivo fornecido e extrai as palavras possíveis.
- Começa a adivinhar com base na palavra de maior entropia.
- Após cada tentativa, recebe dicas sobre o quão próxima está a palavra.
- Refina as escolhas até que:
- Encontre a palavra com sucesso.
- Ou esgote todas as opções possíveis.
- O programa exibe o número de tentativas realizadas e a palavra encontrada.
- Caso não seja possível encontrar a palavra, o programa informa que não foi bem-sucedido.