Skip to main content

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

  1. Execute o comando blackjack após a instalação
  2. Você receberá 2 cartas, o dealer recebe 2 (uma oculta)
  3. Escolha Hit (pegar uma carta) ou Stand (manter a mão atual)
  4. Tente chegar o mais próximo possível de 21 sem ultrapassar
  5. O dealer joga automaticamente (pega carta com 16 ou menos)
  6. 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

gabrielchaves_blackjack-1.0.1.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gabrielchaves_blackjack-1.0.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file gabrielchaves_blackjack-1.0.1.tar.gz.

File metadata

  • Download URL: gabrielchaves_blackjack-1.0.1.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for gabrielchaves_blackjack-1.0.1.tar.gz
Algorithm Hash digest
SHA256 eb95590f65a6f48d25cdbff3f0ee2ca8f32f5f18ba72e8a8812d2671e8b96023
MD5 d72d4c0baa0fd551f345cff6213656be
BLAKE2b-256 635f5ed1546558b80f065ffac19a39d9a25e8ed16689fa45399a16c409b785c6

See more details on using hashes here.

File details

Details for the file gabrielchaves_blackjack-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for gabrielchaves_blackjack-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e6c5ac423d8342f97dda61909723ae1d7997de0482bb0d6751992164e6adff08
MD5 c00b30f557898995cd90b55fc19143ab
BLAKE2b-256 92bb4f642c51f2491b710234e76d84df95f2f51b229b742e90e264888cc594bd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page