A mobile app for learning and practicing blackjack basic strategy for casino play.
Clean, simple, ad-free and free-to-use mobile application designed to help players learn and master basic strategy for casino blackjack. Built using React Native and Expo.
- Complete Strategy Matrix: All hard totals, soft totals, and pairs
- Color-Coded Display: Visual cues for each action type
- Interactive Highlighting: Tap cells to highlight row and column
- Three Sections: Easy tabs to switch between hand types
- Mobile-Optimized: Fits perfectly on iPhone and Android screens
- Legend: Quick reference for action colors
- Random Hand Generation: Realistic blackjack scenarios
- Action Buttons: Hit, Stand, Double, Split
- Instant Feedback: Immediate correct/incorrect indication
- Detailed Explanations: Learn why each decision is correct
- Statistics Tracking: Monitor accuracy and improvement
- Streak Counter: Stay motivated with fire streaks! ๐ฅ
- Continuous Practice: Seamless hand-to-hand flow
Learn Mode
Practice Mode
- Real-time accuracy percentage
- Correct vs. total decisions
- Current and best streaks
- Motivation through gamification
- Vegas-inspired green felt aesthetic
- Gold accent highlights with app logo
- Professional card display with suit colors (โฅโฆโฃโ )
- Clean, intuitive interface
- Smooth animations and transitions
- Node.js 18+
- npm or yarn
- Expo CLI (
npm install -g expo-cli) - EAS CLI (
npm install -g eas-cli) for building
# Clone the repository
git clone <your-repo-url>
cd blackjack-basic-strategy
# Install dependencies
npm install
# Start the development server
npm start# Start development server
npm start
# Run on iOS simulator (Mac only)
npm run ios
# Run on Android emulator
npm run android
# Run in web browser
npm run web
# Type checking
npm run type-check
# Linting
npm run lint
# Run tests
npm test# Install EAS CLI globally
npm install -g eas-cli
# Login to your Expo account
eas login
# Configure your project (already done)
# eas build:configureiOS Preview Build (requires Apple Developer account - $99/year):
eas build --platform ios --profile preview- Creates a TestFlight build automatically
- Share with up to 10,000 beta testers
- No need for physical device access
Android Preview Build (free):
eas build --platform android --profile preview- Creates an APK you can install directly
- Share the download link with anyone
- No Google Play account needed
iOS Production Build:
eas build --platform ios --profile production
eas submit --platform iosAndroid Production Build:
eas build --platform android --profile production
eas submit --platform androidiOS (TestFlight):
- Build completes โ Apple automatically creates TestFlight build
- Add testers via email in App Store Connect
- Testers receive email with install link
- Open on iPhone โ Install via TestFlight app
Android (APK):
- Build completes โ EAS provides download link
- Share link with testers
- Open link on Android device
- Enable "Install from Unknown Sources" if prompted
- Install APK
For iOS Friends:
- Add their email addresses to TestFlight (in App Store Connect)
- They'll receive an invitation email
- Limit: 10,000 external testers
For Android Friends:
- Share the APK download link from EAS dashboard
- They can install directly on their devices
- No limit on testers
- View the complete basic strategy chart
- Switch between Hard Totals, Soft Totals, and Pairs
- Tap any cell to highlight that row and column
- Use the legend to understand action colors
- Study patterns and memorize decisions
- A random hand is automatically dealt
- View dealer's up card and your two cards
- Select the correct action (Hit, Stand, Double, or Split)
- Get instant feedback with explanation
- Review statistics at the top
- Continue practicing to improve your skills!
Following basic strategy reduces the house edge to approximately 0.5%, making blackjack one of the best casino games for the player.
- Hard Totals: Hands without an Ace, or where Ace counts as 1
- Soft Totals: Hands with an Ace counted as 11
- Pairs: When to split, when to hit or stand
- Dealer Considerations: How dealer's up card affects decisions
- Framework: Expo SDK 54 / React Native 0.81
- Language: TypeScript 5.3
- Navigation: Expo Router 6.0 (file-based routing)
- State Management: React Context
- Testing: Jest + React Native Testing Library
- Build System: EAS Build
- Styling: React Native StyleSheet with custom theme system
blackjack-basic-strategy/
โโโ app/ # Screens (Expo Router)
โ โโโ (tabs)/ # Tab navigation
โ โ โโโ _layout.tsx # Tab layout with logo header
โ โ โโโ index.tsx # Learn screen (strategy chart)
โ โ โโโ practice.tsx # Practice screen (game)
โ โโโ _layout.tsx # Root layout with providers
โ
โโโ components/ # Reusable UI components
โ โโโ AppLogo.tsx # App logo component
โ โโโ Card.tsx # Playing card display
โ โโโ Hand.tsx # Multi-card hand
โ โโโ ActionButton.tsx # Action button with animations
โ โโโ ActionButtons.tsx # Button grid
โ โโโ ChartCell.tsx # Strategy chart cell
โ โโโ ChartLegend.tsx # Action legend
โ โโโ ChartTabs.tsx # Animated tab selector
โ โโโ StrategyChart.tsx # Strategy chart grid
โ โโโ FeedbackMessage.tsx # Result feedback
โ โโโ StatBar.tsx # Statistics display
โ โโโ Screen.tsx # Screen wrapper
โ
โโโ constants/ # Constants and configuration
โ โโโ basicStrategy.ts # Complete strategy matrix
โ โโโ gameRules.ts # Game configuration
โ โโโ colors.ts # Color palette
โ โโโ theme.ts # Design system (with web-compatible shadows)
โ
โโโ contexts/ # React Context providers
โ โโโ PracticeContext.tsx # Practice game state
โ
โโโ types/ # TypeScript definitions
โ โโโ index.ts # All type definitions
โ
โโโ utils/ # Utility functions
โ โโโ cardUtils.ts # Card & deck operations
โ โโโ handUtils.ts # Hand evaluation
โ โโโ strategyUtils.ts # Strategy lookups
โ โโโ practiceGame.ts # Practice logic
โ โโโ chartUtils.ts # Chart data conversion
โ
โโโ assets/ # App assets
โ โโโ icon.png # App icon (device)
โ โโโ adaptive-icon.png # Android adaptive icon
โ โโโ logo.png # In-app logo
โ โโโ splash.png # Splash screen
โ โโโ favicon.png # Web favicon
โ
โโโ __tests__/ # Test suites
โ โโโ handUtils.test.ts
โ โโโ strategyUtils.test.ts
โ
โโโ docs/ # Documentation
โโโ README.md # Documentation index
โโโ BASIC_STRATEGY_RULES.md
โโโ TECHNICAL.md
โโโ DESIGN_SPECS.md
โโโ DEVELOPMENT_HISTORY.md
The app includes comprehensive unit tests for all game logic:
npm test
# โ
52/52 tests passingTests cover:
- Hand evaluation (all edge cases)
- Strategy lookups (all scenarios)
- Ace handling (soft/hard transitions)
- Pair detection
- Action validation
The app implements the mathematically optimal basic strategy for:
- Multiple decks (4-8 decks)
- Dealer stands on soft 17 (S17)
- Double after split allowed (DAS)
- Standard 3:2 blackjack payout
These are the most common casino rules. Following this strategy gives you the best odds against the house.
- Development: FREE (open source tools)
- Android Distribution: FREE (can distribute APKs directly or use Google Play)
- iOS Distribution: $99/year (Apple Developer Program - required for TestFlight & App Store)
- EAS Build Service: FREE tier available, or $29/month for unlimited builds
Vegas Elegance Meets Modern Simplicity
- Clean, uncluttered interface
- Vegas-inspired color scheme
- Professional card aesthetics with custom logo
- Intuitive navigation
- Instant visual feedback
- Mobile-optimized for all screen sizes
Private project - All rights reserved
Basic strategy charts based on mathematical analysis of blackjack probabilities by Edward Thorp, Julian Braun, and others. Verified by computer simulations.
For issues or questions, please refer to the documentation in the /docs folder.
- Privacy Policy: PRIVACY.md
Start learning basic strategy today and improve your blackjack game! ๐
Made with โค๏ธ for blackjack enthusiasts

