Um jogo de adivinhação de palavras desenvolvido em Python com CustomTkinter. Versão profissional e modular do clássico Wordle com suporte a múltiplas palavras simultâneas, diferentes tamanhos (5-7 letras), teclado interativo e sistema de feedback visual com cores oficiais Wordle.
WORDLE PRO é uma versão profissional e expandida do clássico jogo Wordle, adaptado para português e com recursos avançados. Permite jogar com 1 a 4 palavras simultâneas, escolher tamanho de palavras (5, 6 ou 7 letras), e oferece feedback visual preciso com as cores oficiais do Wordle.
- 🎯 Múltiplos Modos: 1, 2, 3 ou 4 palavras simultâneas
- 📏 3 Tamanhos: 5, 6 ou 7 letras por palavra
- 🎨 Cores Oficiais: Verde (correto), Amarelo (misplaced), Cinza (errado)
- ⌨️ Teclado Interativo: Clique ou use teclado físico
- 📊 Grid Dinâmico: Layout adapta conforme número de palavras
- 💾 100+ Palavras: Lista abrangente em português
- 🎭 Feedback Visual: Teclado muda cor conforme seu desempenho
- 📱 Responsivo: Funciona bem em diferentes resoluções
- 🏆 Sistema de Pontos: Tentativas limitadas por número de palavras
- 🌙 Dark Mode: Interface escura confortável
1. Adivinhe a palavra (ou palavras)
2. 6 tentativas (7 se 6-7 letras)
3. Feedback em cada tentativa:
🟩 Verde = Letra correta no lugar certo
🟨 Amarelo = Letra certa no lugar errado
⬜ Cinza = Letra não existe na palavra
4. Resolva todas as palavras para vencer
| Ação | Mouse | Teclado |
|---|---|---|
| Adicionar letra | Clique no botão | Digit letra (A-Z) |
| Deletar letra | Clique ⌫ | BACKSPACE |
| Submeter palpite | Clique ENTER | ENTER |
MENU INICIAL:
┌──────────────────────────┐
│ WORDLE MULTI-MODO │
│ │
│ Quantidade de Palavras: │
│ [1] 2 3 4 │
│ │
│ Tamanho das Letras: │
│ [5] 6 7 │
│ │
│ [JOGAR AGORA] │
└──────────────────────────┘
↓ (Escolhe 2 palavras de 5 letras)
DURANTE O JOGO:
┌─────────────────┬─────────────────┐
│ PALAVRA 1 │ PALAVRA 2 │
├─────────────────┼─────────────────┤
│ 🟩🟨⬜🟩🟩 │ ⬜⬜🟨🟩⬜ │
│ ⬜⬜⬜⬜⬜ │ 🟨⬜🟨⬜⬜ │
│ ... │ ... │
└─────────────────┴─────────────────┘
Teclado:
[Q][W][E][R][T]...[P]
[A][S][D][F][G]...[L]
[ENTER][Z][X][C]...[M][⌫]
Digitou "PIZZA" na palavra 1 ✓
Digitou "GATOS" na palavra 2 (feedback recebido)
Dificuldade: ⭐ Fácil
Layout: 1 grid central
Tentativas: 6 (5 letras) / 7 (6-7 letras)
Tempo: ~5-15 minutos
Ideal para:
✓ Iniciantes
✓ Treino rápido
✓ Desafio casual
Dificuldade: ⭐⭐ Médio
Layout: 2 grids lado a lado
Tentativas: 7 (5 letras) / 8 (6-7 letras)
Tempo: ~10-25 minutos
Ideal para:
✓ Desafio moderado
✓ Jogar com amigo (reveza)
✓ Melhorar estratégia
Dificuldade: ⭐⭐⭐ Difícil
Layout: 3 grids em grid 2x2
Tentativas: 8 (5 letras) / 9 (6-7 letras)
Tempo: ~15-40 minutos
Ideal para:
✓ Veteranos
✓ Desafio intenso
✓ Provar habilidades
Dificuldade: ⭐⭐⭐⭐ Extremo
Layout: 4 grids em grid 2x2
Tentativas: 9 (5 letras) / 10 (6-7 letras)
Tempo: ~20-60 minutos
Ideal para:
✓ Desafio máximo
✓ Recorde pessoal
✓ Competição extrema
Dificuldade: ⭐ Fácil
Exemplos: PIZZA, GATOS, ZEBRA, MUNDO, TESLA
Palavras na lista: ~20
Tempo por tentativa: Rápido
Dificuldade: ⭐⭐ Médio
Exemplos: QUEIJO, BANANA, GOOGLE, PYTHON, DESIGN
Palavras na lista: ~30
Tempo por tentativa: Normal
Padrão do jogo original
Dificuldade: ⭐⭐⭐ Difícil
Exemplos: LARANJA, NETFLIX, ARQUIVO, USUARIO, BOOLEAN
Palavras na lista: ~25
Tempo por tentativa: Mais tempo para pensar
Desafio significativo
| Componente | Tecnologia | Propósito |
|---|---|---|
| Linguagem | Python | 3.7+ |
| GUI | CustomTkinter | Interface moderna |
| Lógica | Python nativo | Mecânicas do jogo |
┌─────────────────┐
│ Inicializa │
│ WordlePro │
└────────┬────────┘
│
┌────▼──────────────┐
│ Menu Principal │
│ (1-4 palavras) │
│ (5-7 letras) │
└────┬──────────────┘
│
┌────▼──────────────┐
│ Seleciona opções │
│ Clica JOGAR AGORA │
└────┬──────────────┘
│
┌────▼──────────────────┐
│ Inicializa Jogo │
│ - Seleciona palavras │
│ - Cria grids │
│ - Mostra teclado │
└────┬──────────────────┘
│
┌────▼────────────────────────────────┐
│ LOOP DO JOGO │
│ ├─ Espera input (teclado/mouse) │
│ ├─ Adiciona letra ao palpite │
│ ├─ Atualiza grid visual │
│ └─ Aguarda ENTER │
└────┬───────────────────────────────┘
│
┌────▼──────────────────────┐
│ Processa Palpite │
│ ├─ Valida comprimento │
│ ├─ Verifica todas palavras│
│ ├─ Calcula cores │
│ ├─ Atualiza teclado │
│ └─ Incrementa tentativas │
└────┬────────────────────┘
│
├─→ [Todas resolvidas?] ─→ VITÓRIA
│
├─→ [Tentativas esgotadas?] ─→ GAME OVER
│
└─→ [Continuar?] ─→ LOOP
termo.py
│
└── 📦 CLASSE: WordlePro (CustomTkinter)
│
├── INICIALIZAÇÃO
│ ├── __init__()
│ ├── full_word_list (100+ palavras)
│ └── Configurações de cores
│
├── MENU
│ ├── setup_menu()
│ │ ├─ Selector: Número de palavras
│ │ ├─ Selector: Tamanho de letras
│ │ └─ Botão: JOGAR AGORA
│ │
│ └── start_game()
│ ├─ Filtra palavras por tamanho
│ ├─ Seleciona randomicamente
│ └─ Inicia interface do jogo
│
├── INTERFACE (UI)
│ ├── setup_ui()
│ │ ├─ Header
│ │ ├─ Scroll container
│ │ ├─ Grids (dinâmicos)
│ │ └─ Teclado
│ │
│ └── setup_keyboard()
│ ├─ 3 linhas de botões (QWERTY)
│ ├─ Botão ENTER
│ └─ Botão ⌫ (delete)
│
├── CONTROLES
│ ├── handle_keypress(event)
│ ├── add_letter(char)
│ ├── delete_letter()
│ └── submit_guess()
│
├── LÓGICA
│ ├── update_grid()
│ │ └─ Mostra letras no grid
│ │
│ ├── submit_guess()
│ │ ├─ Valida palpite
│ │ ├─ Calcula cores
│ │ ├─ Atualiza teclado
│ │ ├─ Verifica vitória
│ │ └─ Verifica game over
│ │
│ └── update_key_color(char, color)
│ └─ Muda cor do botão
│
└── UTILITÁRIOS
└── Constantes de cores
COLOR_CORRECT = "#6aaa64" # Verde (letra certa, lugar certo)
COLOR_MISPLACED = "#c9b458" # Amarelo (letra certa, lugar errado)
COLOR_WRONG = "#787c7e" # Cinza (letra não existe)
COLOR_EMPTY = "#3a3a3c" # Cinza escuro (célula vazia)Prioridade de cores:
- Se green (correto) em posição: GREEN
- Se yellow (misplaced): YELLOW (mas não sobrescreve GREEN)
- Se gray (errado): GRAY
def submit_guess(self):
guess = self.current_guess
# Para cada palavra:
for w_idx in range(self.num_words):
secret = list(self.secret_words[w_idx])
colors = [COLOR_WRONG] * self.word_len
# PASSO 1: Marcar corretos (green)
for i in range(self.word_len):
if guess[i] == secret[i]:
colors[i] = COLOR_CORRECT
secret[i] = None # Marca como usado
# PASSO 2: Marcar misplaced (yellow)
for i in range(self.word_len):
if colors[i] != COLOR_CORRECT and guess[i] in secret:
colors[i] = COLOR_MISPLACED
secret[secret.index(guess[i])] = None # Marca como usado
# PASSO 3: Aplicar cores ao grid
for i, color in enumerate(colors):
cell.configure(fg_color=color)
# PASSO 4: Verificar vitória
if guess == self.secret_words[w_idx]:
self.words_solved[w_idx] = True
# PASSO 5: Verificar fim do jogo
if all(self.words_solved):
VITÓRIA!
elif self.current_attempt == self.max_attempts - 1:
GAME OVER!PALAVRA SECRETA: PIZZA
PALPITE: PARRA
PASSO 1 (Corretos):
P I R R A
✓ - - - -
Posições 0 corretas
secret = [None, I, Z, Z, A]
PASSO 2 (Misplaced):
P I R R A
✓ 🟨 - - ✓
I está em secret mas em posição errada
A está em secret e em posição correta
secret = [None, None, Z, Z, None]
RESULTADO:
P=GREEN (posição 0 correta)
I=YELLOW (existe mas posição errada)
R=GRAY (não existe segunda vez)
R=GRAY (não existe segunda vez)
A=GREEN (posição 4 correta)
TECLADO:
P: GREEN (não muda mais)
I: YELLOW
R: GRAY
A: GREEN
Tentativas = Num_Palavras + 5
1 palavra: 1 + 5 = 6 tentativas
2 palavras: 2 + 5 = 7 tentativas
3 palavras: 3 + 5 = 8 tentativas
4 palavras: 4 + 5 = 9 tentativas
- Python 3.7+
- pip
- Clone o repositório:
git clone https://github.com/luisguigui/wordle-pro.git
cd wordle-pro- Crie ambiente virtual:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate- Instale dependências:
pip install customtkinter- Execute:
python termo.py- Interface deve aparecer:
- Menu de seleção
- Escolha modo e tamanho
- Comece a jogar!
customtkinter>=5.0.0
-
Primeira Palavra:
- Use vogais (A, E, I, O, U)
- Exemplo: AUDIO, ORADE
- Objetivo: descobrir quais letras existem
-
Segunda Palavra:
- Use consoantes comuns
- Exemplo: CINTA, FORTE
- Objetivo: refinar posições
-
Terceira Palavra:
- Use feedback anterior
- Mude letras que não funcionam
- Objetivo: descobrir a palavra
-
Dica Final:
- Pense em padrões
- Considere palavras comuns
- Não adivinhe aleatoriamente
Solução: pip install customtkinter
Causa: Jogo não iniciado
Solução: Clique "JOGAR AGORA" no menu
Causa: Janela sem foco
Solução: Clique na janela do jogo
Causa: Palavra não tem comprimento correto
Solução: Preencha todas as letras antes de ENTER
Causa: Palavra não foi adicionada
Solução: Veja a lista em term.py (linhas 21-37)
self.full_word_list = [
# 5 LETRAS
"ARROZ", "PIZZA", "CARNE",
# Adicione aqui:
"SAPATO", # Nova palavra de 6 letras
# 6 LETRAS
"QUEIJO", "BANANA", "TOMATE",
# ...
]COLOR_CORRECT = "#6aaa64" # Mude para "#00FF00" (verde puro)
COLOR_MISPLACED = "#c9b458" # Mude para "#FFFF00" (amarelo puro)
COLOR_WRONG = "#787c7e" # Mude para "#808080" (cinza puro)# Altere a fórmula:
# Padrão:
self.max_attempts = self.num_words + 5
# Novo:
self.max_attempts = self.num_words + 10 # Mais fácil- Persistência: Salvar score/histórico
- Temas: Light/Dark mode customizável
- Dificuldade: Hard mode (sem hints)
- Multiplayer: Online vs outro jogador
- Estatísticas: Gráficos de desempenho
- Achievements: Badges por desafios
- Som: Efeitos sonoros
- Idiomas: Suportar múltiplos idiomas
- API: Banco de dados de palavras
- Mobile: Versão mobile responsiva
Luis Guilherme G.B.
- 🐙 GitHub: @luisguigui
- 💼 Portfólio: Desenvolvedor Python Full-Stack
- 📧 Contato: Abra uma issue no repositório
Este projeto está sob a licença MIT. Use livremente para fins educacionais e comerciais!
🎮 WORDLE PRO: JOGUE MAIS, ADIVINHE MELHOR
Múltiplos modos, tamanhos variáveis,
feedback profissional
⭐ DESAFIE SEU VOCABULÁRIO ⭐
Última atualização: 2026-04-20
Versão: 1.0 — Multi-Modo Edition
Status: ✅ Production Ready
Foco: Jogabilidade, Customização, Desafio