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.3.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.3-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

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

Hashes for gabrielchaves_blackjack-1.0.3.tar.gz
Algorithm Hash digest
SHA256 edd429208d77804ea1a1ac373027b15656d4fef77cd715244af45a1ef4498642
MD5 77afb9c743c664ebfec1995e848ca289
BLAKE2b-256 80bbff604ce6521746df403a041b79dcd7a80c0be1b20e6bb9f74c5d680fcd83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gabrielchaves_blackjack-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8bd64070a53946cd3f53f72400b11188a438035547d3d5047b0334fbfab977cc
MD5 b9730d4eebd3147f4f5fffb4c5314964
BLAKE2b-256 584e0f82a2c7c55af4f4afde4c8221cf34b8be507eb3d514dfd04752a6869035

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