A text-based Blackjack game with ASCII art and smart betting system
Project description
🃏 Blackjack Game
Uma implementação de Blackjack (21) em Python com arte ASCII das cartas, e princípios de Programação Orientada a Objetos.
🎯 Características
- Lógica completa do jogo Blackjack
- Visualização das cartas em arte ASCII
- Limpeza automática da tela para melhor experiência
- Blackjack Basic Strategy implementado para Dealer
- Jogador vs Dealer
- Design OOP limpo e modular
- Pacote totalmente instalável via pip
- Interface de linha de comando
📦 Instalação
A partir do código-fonte:
# Clone ou baixe o repositório
cd blackjack
# Instale em modo de desenvolvimento
pip install -e .
# Ou instale normalmente
pip install .
Após a instalação:
# Execute o jogo
blackjack
🎮 Como Jogar
- Execute o comando
blackjackapós a instalação - Você receberá 2 cartas, o dealer recebe 2 (uma oculta)
- Escolha Hit (pegar uma carta) ou Stand (manter a mão atual)
- Tente chegar o mais próximo possível de 21 sem ultrapassar
- O dealer joga automaticamente (pega carta com 16 ou menos)
- A mão mais alta ganha!
🎨 Visualização ASCII
As cartas agora são exibidas em bela arte ASCII:
┌─────────┐ ┌─────────┐ ┌─────────┐
│A │ │K │ │Q │
│ │ │ │ │ │
│ ♠ │ │ ♥ │ │ ♦ │
│ │ │ │ │ │
│ A│ │ K│ │ Q│
└─────────┘ └─────────┘ └─────────┘
A carta oculta do dealer aparece como:
┌─────────┐
│░░░░░░░░░│
│░░░░░░░░░│
│░░░░░░░░░│
│░░░░░░░░░│
│░░░░░░░░░│
└─────────┘
💻 Uso como Módulo
from blackjack import BlackJackGame
# Criar e jogar um jogo
game = BlackJackGame()
game.play_round()
🎬 Demonstração das Cartas
Para ver todas as cartas em ASCII:
python demo_ascii_cards.py
🏗️ Arquitetura
Princípios de Design
Esta implementação segue princípios sólidos de OOP:
- Encapsulamento: Cada classe gerencia seus próprios dados e comportamento
- Responsabilidade Única: Cada classe tem um propósito claro
- Composição: Game usa Deck, Players usam Hands
- Herança: Dealer estende Player com regras específicas
Estrutura de Classes
- Card: Representa uma única carta de baralho (com arte ASCII)
- Deck: Gerencia baralho de 52 cartas (criação, embaralhamento, distribuição)
- Hand: Gerencia uma coleção de cartas e calcula valores
- Player: Representa um jogador com uma mão
- Dealer: Estende Player com regras específicas do dealer
- BlackjackGame: Orquestra o fluxo e lógica do jogo
Melhorias Implementadas
✅ Arte ASCII para cartas: Visualização bonita e imersiva ✅ Limpeza de tela: Interface limpa e profissional ✅ Animações suaves: Pausas estratégicas para melhor experiência ✅ Emojis: Feedback visual divertido ✅ Compatibilidade cross-platform: Funciona em Windows, Linux e macOS
🧪 Testes
# Execute os testes
python -m pytest tests/
📋 Requisitos
- Python 3.8+
- Nenhuma dependência externa
📝 Licença
MIT License
👤 Autor
Gabriel Chaves
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gabrielchaves_blackjack-1.0.3.tar.gz.
File metadata
- Download URL: gabrielchaves_blackjack-1.0.3.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edd429208d77804ea1a1ac373027b15656d4fef77cd715244af45a1ef4498642
|
|
| MD5 |
77afb9c743c664ebfec1995e848ca289
|
|
| BLAKE2b-256 |
80bbff604ce6521746df403a041b79dcd7a80c0be1b20e6bb9f74c5d680fcd83
|
File details
Details for the file gabrielchaves_blackjack-1.0.3-py3-none-any.whl.
File metadata
- Download URL: gabrielchaves_blackjack-1.0.3-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bd64070a53946cd3f53f72400b11188a438035547d3d5047b0334fbfab977cc
|
|
| MD5 |
b9730d4eebd3147f4f5fffb4c5314964
|
|
| BLAKE2b-256 |
584e0f82a2c7c55af4f4afde4c8221cf34b8be507eb3d514dfd04752a6869035
|