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.2.tar.gz (18.9 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.2-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gabrielchaves_blackjack-1.0.2.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

Hashes for gabrielchaves_blackjack-1.0.2.tar.gz
Algorithm Hash digest
SHA256 e89a4615b25c62ed217de0741930ac880d5f5bbc6e030c067a8edd535a77a434
MD5 5a8b0f2fb4ba90d0d3cdfe6ae7c6e81a
BLAKE2b-256 9acdf8b9302c1370e09a99bca89d61581e925a3e5cd8f90aa59a84d8f34fc783

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gabrielchaves_blackjack-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3dcc4410de20202c3ae992ae23ce17c12febda3b80d82329558e476e62390441
MD5 fed1c396f368a3aaec6ada4b9aec186b
BLAKE2b-256 6118ba2020b08db290bf796290cfcecca82d9de7ed6cdc6cab3d3299b6118cb3

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