Files
thejayman77 479be1f6b9 Initial commit: Hold'em engine, bots, and simulation harness
Kotlin Multiplatform engine (JVM target only for now; androidTarget and
iosArm64 slot in without touching commonMain).

Core:
- HandEvaluator: single-pass 5-7 card evaluation, ~24M evals/sec. Verified
  exhaustively against published frequencies for all 2,598,960 five-card hands.
- Equity: Monte Carlo with ties split. PreflopChart ranks the 169 starting
  hands using all-in equity plus an explicit playability adjustment, so
  looseness means "plays the top N%".
- Table: no-limit betting rounds, side pots, odd-chip splits, uncalled-bet
  refunds, and incomplete (short all-in) raises that correctly do not reopen
  betting.

Bots:
- SkillLevel and PlayStyle are orthogonal axes. Skill drives decision quality
  (rollout accuracy, pot-odds discipline, position awareness, error rate);
  style drives bluffing, sandbagging, aggression, tightness.
- BotMood gives tilt that persists between hands and decays.
- OpponentModel lets Advanced/Expert exploit habitual bettors.
- MathBot emits a DecisionTrace of the numbers behind each decision, which the
  coach will later hand to an LLM to narrate. The LLM never does poker maths.

Simulator:
- 2,200-3,400 hands/sec. Deck RNG is separate from bot RNGs so rollout counts
  cannot shift the deal.
- Controlled skill-ladder test asserts the difficulty gradient is monotonic:
  73.9 / 53.9 / 27.6 / -155.4 bb/100 over 50k hands.

Assets: 52 CC0 English-pattern card faces plus generated backs.

Tests: 30 passing (evaluator, table rules, pre-flop chart).

Known open: win-rate magnitudes ~10x realistic and several profiles looser
than their labels. Tuning, not correctness.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 04:36:03 -04:00

36 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Card Asset Licensing
**Source:** [Category:SVG English pattern playing cards](https://commons.wikimedia.org/wiki/Category:SVG_English_pattern_playing_cards) on Wikimedia Commons
**License:** CC0 1.0 Universal (Public Domain Dedication) — <https://creativecommons.org/publicdomain/zero/1.0/>
**Author:** Dmitry Fomin ([User:Dmitry_Fomin](https://commons.wikimedia.org/wiki/User:Dmitry_Fomin))
## What this means
CC0 is a public domain dedication. You may use, modify, and redistribute these
files for any purpose, including commercial games, with **no attribution
required** and no obligation to open-source your own code. Attribution is
retained here as a courtesy, not an obligation.
## Contents
53 files, all verified CC0 at download time (2026-07-24):
- 52 individual card faces (`<rank>_of_<suit>.svg`), 360 × 540 px each
- Ranks: `2``10`, `jack`, `queen`, `king`, `ace`
- Suits: `clubs`, `diamonds`, `hearts`, `spades`
- `playing_cards_deck.svg` — full 52-card sheet (~2.5 MB)
## Deliberately excluded
`English pattern playing cards deck PLUS.svg` was **not** downloaded. Unlike the
rest of the category, it is licensed **LGPL**, not CC0 — a copyleft license with
redistribution conditions that are a poor fit for game assets. Everything you
need is covered by the 52 individual cards above.
## Not included
There is no **card back** design in this category — you will need to source or
draw one separately.