Files
011-black-jack/README.md
T
Tirsvad 36b5788aef Add project setup: layout, pyproject, constants, Doxyfile, README
Set up the Blackjack project foundation for gateway MIL-001.

- pyproject.toml: Python >=3.13, src layout, no runtime dependencies,
  optional dev extras (ruff, mypy, pytest) and their configuration
- src/blackjack/: package with constants.py (deck, scoring thresholds,
  emoji card faces) and Doxygen-style docstrings
- tests/test_package.py: smoke tests for the package and its constants
- Doxyfile: reads src/, writes HTML to docs/doxygen/
- README.md: venv setup with pip upgrade, run, test, lint and Doxygen
  instructions
- .gitignore: ignore generated docs/doxygen/

The repository description and topics were set on the git host through
its API (no file change).

Closes #1
Closes #2
Closes #3
Closes #4
Closes #5
Closes #6

Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Task: MIL-001#6
2026-10-04 21:48:52 +08:00

95 lines
2.0 KiB
Markdown

# Blackjack
A console Blackjack game against a computer dealer, played with emoji cards.
It is the day 11 capstone of Udemy's *100 Days of Code: The Complete Python Pro
Bootcamp*, built with a plan-first process (milestones and issues in `docs/`).
## House rules
- The deck is unlimited; cards are not removed when drawn. No jokers.
- Jack, Queen and King count 10. An ace counts 11 or 1.
- A two-card hand of ace + 10 is a blackjack.
- The computer is the dealer and draws while its score is below 17.
## Requirements
- Python 3.13 or newer
- No runtime dependencies
- Optional: [Doxygen](https://www.doxygen.nl/) to build the source documentation
- A terminal with UTF-8 and emoji support (for example Windows Terminal)
## Setup
Create and activate a local virtual environment, upgrade pip, then install the
project in editable mode with the development tools.
Windows (PowerShell):
```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
```
Linux and macOS:
```bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
```
Leave the environment with `deactivate`.
## Run
The game entry point is added in the *Game Implementation* milestone:
```bash
python -m blackjack
```
## Test
```bash
python -m unittest discover -s tests
```
`pytest` also runs the same tests (`python -m pytest`).
## Lint and type check
```bash
ruff check .
ruff format --check .
mypy src
```
## Documentation
Generate the source documentation (Doxygen comments in `src/`) into
`docs/doxygen/`:
```bash
doxygen Doxyfile
```
Planning documents (business case, stakeholder analysis, project plan and
milestones) are in `docs/`.
## Project layout
```text
src/blackjack/ game package (constants.py, ...)
tests/ unit tests
docs/ planning documents and generated Doxygen output
pyproject.toml project configuration
Doxyfile Doxygen configuration
```
## License
See [LICENSE](LICENSE).