SMERESKI
  1. PROJECTS
  2. SKILLS
  3. RESUME
  4. BLOG
  5. GAMES
  6. CONTACT

PROJECT

2026 · 5.2k LOC

Casino Smereski

A three-game card room in your pocket — blackjack, Jacks-or-Better video poker, and a bluff-and-call game of Bullshit, all off one bankroll.

FlutterDartshared_preferencesImmutable stateAndroid + WindowsPRIVATE

Casino Smereski is a small card room that ships as one app. A lobby drops you into any of three games; a single chip wallet rides across all of them and persists between sessions, so a good run at the blackjack table funds the next poker draw or buys into the next pot.

Blackjack plays by the book: deal, hit or stand, dealer hits soft 17, naturals pay out, busts settle immediately. A settings screen exposes the rules that usually stay hidden — soft-17 behavior, shoe size from four to six decks — so the house edge is yours to tune.

Video Poker is Jacks-or-Better: deal five, hold the keepers, draw replacements, settle against a real pay table. A standalone hand evaluator ranks the result — the same evaluator the tests hammer.

Bullshit is the bluffing game — Cheat, B.S., whatever your table called it. Four seats around a single deck, you against three AI players, the claimed rank climbing ace through king. Lay cards face-down, claim the rank, lie if you dare; anyone can call Bullshit, and the reveal decides who eats the pile. Every seat antes into a pot the winner takes, settled against the same wallet. A pure-Dart engine runs the rules and a seeded AI plays the other three seats.

The logic is pure Dart with no widgets in sight. Every game transition returns a new state object instead of mutating the old one, which makes the rules unit-testable and the bugs reproducible. Persistence hides behind store interfaces — bankroll, settings, stats — so the platform layer swaps without touching the rules.

Three felt themes — Emerald, Crimson, Midnight — recolor the table on demand. Built cross-platform: Windows desktop and Android from the same source, distributed through my own app store rather than any storefront.

SCREENSHOTS

2 FRAMES

Tap a frame to open full-res. Drop replacements at public/screenshots/<project>/.