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.0.tar.gz (18.5 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.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gabrielchaves_blackjack-1.0.0.tar.gz
  • Upload date:
  • Size: 18.5 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.0.tar.gz
Algorithm Hash digest
SHA256 1f26b487b1bc0cdda73d64eb6b75a272390ce0df5c98738b5a856350f5623afd
MD5 7710f920b34eaabbda201f20df17d21c
BLAKE2b-256 4feb459dc3cbe5338ea1fc844521dba63c2a185022d56143a1de646ae601652e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gabrielchaves_blackjack-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a5cdee1e627f7cb6285ee02bee0f2dbe2926e4fd0f195025e9a617224eeffcd
MD5 7a7ac75b3c698b505f83fba2b0bfd689
BLAKE2b-256 4901f68279df078355e5b905f7218bf7b0f91cd162aa4cc7dcf128e2cdcceaa7

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