Jogo de Sudoku com geração de puzzles, validação e resolução automática. Interface web com Streamlit. Projeto pronto para versionamento em Git e deploy no Streamlit Cloud.
Se o projeto estiver num repositório Git (GitHub, GitLab, etc.):
git clone https://github.com/SEU_UTILIZADOR/sudoku-python.git
cd sudoku-pythonSe já tiver a pasta local e quiser associar a um repositório remoto:
cd sudoku-python
git init
git remote add origin https://github.com/SEU_UTILIZADOR/sudoku-python.git
git add .
git commit -m "Sudoku em Python com Streamlit"
git branch -M main
git push -u origin mainSubstitua SEU_UTILIZADOR/sudoku-python pelo URL real do seu repositório.
- Python 3.10 ou superior
Windows (PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1Windows (CMD):
python -m venv .venv
.venv\Scripts\activate.batLinux/macOS:
python3 -m venv .venv
source .venv/bin/activateSe o venv for criado sem o pip (erro no ensurepip), instale o pip dentro do ambiente:
.\.venv\Scripts\python.exe -m ensurepip --upgradepip install -r requirements.txtstreamlit run app.pyO navegador abrirá em http://localhost:8501.
- Crie uma conta em share.streamlit.io.
- Conecte o repositório GitHub onde está este projeto (ou faça upload do código).
- No deploy, configure:
- Main file path:
app.py - Python version: 3.10 ou superior (definido em configuração do app, se disponível).
- Main file path:
- O Streamlit usará automaticamente o
requirements.txtda raiz do repositório. - Clique em Deploy. O app ficará disponível em um URL público.
O repositório deve conter estes ficheiros para o app ser lido e executado corretamente:
sudoku-python/
├── .gitignore # Ignora .venv, __pycache__, etc.
├── app.py # Ponto de entrada (streamlit run app.py)
├── sudoku.py # Lógica do jogo
├── requirements.txt # streamlit>=1.28.0
├── .streamlit/
│ └── config.toml # Tema e servidor
└── README.md
O .gitignore já está configurado para não versionar o ambiente virtual (.venv), ficheiros Python compilados (__pycache__) e segredos (.streamlit/secrets.toml).
- Dificuldades: Fácil, Média, Difícil, Especialista, Mestra, Génio.
- Novo jogo: gera um puzzle novo com a dificuldade escolhida.
- Teclado numérico: preenche a célula selecionada com 1–9.
- Desfazer / Apagar: reverte jogadas ou apaga a célula selecionada.
- Dicas (3): revela o valor correto numa célula vazia.
- Tempo e erros: cronómetro e contador de erros (máx. 3).
- Grelha delineada: blocos 3×3 visíveis; hover na linha e coluna.
| Ficheiro | Descrição |
|---|---|
app.py |
Interface Streamlit do jogo |
sudoku.py |
Geração, validação e resolução |
requirements.txt |
Dependências (Streamlit) |
Uso livre para fins educacionais e pessoais.