All posts
Hobby project

Casino Odds: Learn & Master

Hobby Project·2025 - Present
FlutterDartiOSMonte CarloProbability

An educational iOS app that teaches casino strategy and probability through card counting trainers, odds calculators, and Monte Carlo simulations across 13+ games. Built as a weekend project — entirely learning-focused with no real-money gambling.

Casino Odds home screen
Casino Odds blackjack trainer
Casino Odds poker odds calculator
Casino Odds roulette probability
Casino Odds session tracking
Casino Odds game selection

Overview

Casino Odds is a hobby app I built to explore probability and strategy in casino games. It covers 13+ games including blackjack, poker, roulette, craps, baccarat, and sic bo, with trainers and calculators that make the underlying math tangible. The app is free, has no ads, no account, and doesn't involve any real-money gambling — it's purely a learning tool.

Trainers & Calculators

The blackjack trainer runs Hi-Lo and Hi-Opt II card counting drills with configurable deck counts and dealer rules. Poker odds are calculated for Texas Hold'em, Three Card Poker, Caribbean Stud, and Video Poker. Table games include probability calculators for roulette spreads, craps propositions, and baccarat, all with adjustable payout ratios.

Monte Carlo Simulations

For games where closed-form odds get unwieldy, the app runs Monte Carlo simulations — 100,000+ hands per scenario — to estimate expected value and variance. Running these efficiently on-device pushed me to think carefully about Dart performance, isolate usage for background compute, and how to present probabilistic results honestly in the UI.

Privacy by Design

Because it's a hobby app with no monetisation, I leaned into a privacy-first posture: no account required, no data collection, no tracking, no analytics. Everything runs offline after the initial install. It's a nice reminder of how simple an app can be when you aren't optimising for engagement metrics.

What I Learned

Probability in Real UIs

Translating probability theory into interfaces that don't mislead users is harder than it looks. I spent time on how to display expected value, variance, and confidence intervals in ways that are honest about uncertainty rather than suggesting false precision.

Dart Performance for Compute

Running 100,000+ hand Monte Carlo simulations on-device required actually paying attention to Dart's performance characteristics — isolates for off-main-thread compute, avoiding unnecessary allocations in hot loops, and structuring loops so the JIT has a chance to optimise them.

Scope as a Gift

Like Image Blocx, keeping Casino Odds strictly a hobby project was liberating. No subscription plumbing, no ad SDKs, no analytics pipelines to maintain — just the math, the trainers, and a clean UI. Scope discipline turns out to be one of the most valuable tools a solo developer has.

Key Challenges

  • Running Monte Carlo simulations fast enough on-device for interactive use
  • Presenting probability and expected value without misleading non-mathematical users
  • Modelling 13+ distinct game rulesets with configurable house rules in a shared framework

Links