Add Blackjack game: rules, card rendering, game loop and tests
Implement the playable console game for gateway MIL-002. - rules.py: deal_card, calculate_score (blackjack = 0, aces drop 11 -> 1) and compare with an Outcome enum; no console I/O - display.py: hand rendering as plain-text rank plus suit emoji (keycap emoji rendered as boxes in common terminals), score formatting and outcome messages - art.py: course logo shown at the start of every game - game.py: play_game (hit/stand, dealer draws below 17), play (restart loop, console clear, logo) and ask_yes_no with re-prompt; read, write and draw are injected so games can be scripted - __main__.py: python -m blackjack entry point, exits cleanly on Ctrl+C/Ctrl+D - constants.py: card ranks and suits, prompts and messages - tests: 32 new unit and scripted end-to-end tests (35 in total) - README: run instructions for python -m blackjack Closes #7 Closes #8 Closes #9 Closes #10 Closes #11 Closes #12 Closes #13 Closes #14 Task: MIL-002#1 Task: MIL-002#2 Task: MIL-002#3 Task: MIL-002#4 Task: MIL-002#5 Task: MIL-002#6 Task: MIL-002#7 Task: MIL-002#8
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
"""!
|
||||
@file art.py
|
||||
@brief ASCII art shown at the start of every game.
|
||||
"""
|
||||
|
||||
## The game logo from the course assignment.
|
||||
LOGO: str = r"""
|
||||
.------. _ _ _ _ _
|
||||
|A_ _ |. | | | | | | (_) | |
|
||||
|( \/ ).-----. | |__ | | __ _ ___| | ___ __ _ ___| | __
|
||||
| \ /|K /\ | | '_ \| |/ _` |/ __| |/ / |/ _` |/ __| |/ /
|
||||
| \/ | / \ | | |_) | | (_| | (__| <| | (_| | (__| <
|
||||
`-----| \ / | |_.__/|_|\__,_|\___|_|\_\ |\__,_|\___|_|\_\\
|
||||
| \/ K| _/ |
|
||||
`------' |__/
|
||||
"""
|
||||
Reference in New Issue
Block a user