Skip to content

alaevate/deeproulette

Repository files navigation

DeepRoulette
DeepRoulette

LSTM-powered roulette predictor
real-time learning, 5 betting strategies, works with any table.

GitHub Issues GitHub Pull Requests Discord GitHub contributors

🚀 Quick Start📊 Strategies📁 Structure🧠 How It Works⚙️ Settings

DeepRoulette Demo

⚠️ Disclaimer

This software is for educational and research purposes only. Roulette is a game of pure chance. The house always has an edge. No AI system can guarantee wins. Never gamble with money you cannot afford to lose. Always gamble responsibly.


🚀 Quick Start — No Tech Knowledge Needed

Step 1 — Install Python (one-time, skip if already installed)

  1. Go to https://www.python.org/downloads/
  2. Download the latest Python 3 installer
  3. Run it and tick the box that says "Add Python to PATH"
  4. Click Install

Step 2 — Set up the project (one-time)

  • Double-click SETUP.bat in the project folder. It will automatically install everything the program needs.

Step 3 — Run the program

  • Double-click START.bat.

That's it! An interactive menu will guide you through everything — no typing of commands needed.


📊 Strategies

Choose a strategy in the interactive menu. Each one tells the AI how many numbers to bet on per spin:

Strategy Numbers Bet Win Chance Risk Best For
🎯 Sniper 1 ~2.7% Extreme Thrill seekers — huge payouts, rare wins
🔥 Aggressive 3 ~8.1% High Confident sessions with strong AI training
⚖️ Balanced 6 ~16.2% Medium Recommended starting point
🛡️ Conservative 18 ~48.6% Low Beginners — most consistent results
🤖 Adaptive AI 1–18 Varies Variable Let the AI decide based on its own confidence

Not sure which to pick? Start with Balanced or Conservative.


📁 Project Structure

DeepRoulette/
│
├── START.bat              ← Double-click to run the program
├── SETUP.bat              ← Double-click ONCE to install everything
├── main.py                ← Program entry point
├── requirements.txt       ← Package list (used by SETUP.bat)
│
├── config/
│   └── settings.py        ← All tunable settings in one place
│
├── core/
│   ├── engine.py          ← Main prediction loop
│   └── trainer.py         ← Model training (offline & online)
│
├── data/
│   ├── live_feed.py       ← Live WebSocket feed (Pragmatic Play / configurable)
│   └── simulator.py       ← Local random spin generator
│
├── models/
│   └── neural_network.py  ← LSTM architecture definition
│
├── strategies/
│   ├── base.py            ← Shared betting logic
│   ├── sniper.py          ← 1 number
│   ├── aggressive.py      ← 3 numbers
│   ├── balanced.py        ← 6 numbers
│   ├── conservative.py    ← 18 numbers
│   └── adaptive.py        ← AI-driven dynamic
│
├── ui/
│   ├── menu.py            ← Interactive startup menu
│   └── display.py         ← Colourful terminal output
│
├── utils/
│   ├── logger.py          ← Session log files
│   └── tracker.py         ← Win/loss statistics
│
├── saved_models/          ← AI model files saved here (.keras)
├── logs/                  ← Session log files saved here
└── data_store/            ← Reserved for future data storage

🧠 How It Works

  Roulette Table  (live, online, or manual entry)
       │  (spin result every ~30 seconds)
       ▼
  Live Feed / Simulator
       │  (integer 0–36)
       ▼
  Prediction Engine
       │
       ├── [History buffer]  Collects the last 15 spin results
       │
       ├── [Neural Network]  3-layer LSTM → outputs a probability
       │                     for each of the 37 possible numbers
       │
       ├── [Strategy]        Picks the top N numbers by probability
       │
       ├── [Betting]         Sizes bets as 2% of balance per number
       │
       ├── [Accounting]      Win: +35× the winning bet − all bets
       │                     Loss: −all bets
       │
       ├── [Statistics]      Updates win rate, ROI, streak
       │
       └── [Auto-train]      (if enabled) Re-trains the model on
                             recent history — model improves over time

The AI Model

  • Architecture: 3 stacked LSTM layers (256 → 128 → 64 units), followed by 2 Dense layers
  • Input: The last 15 spin results, normalised to [0, 1]
  • Output: A probability distribution over all 37 numbers (0–36)
  • Training: Categorical cross-entropy loss, Adam optimiser, early stopping
  • Online learning: Optional — the model updates after every spin using the most recent 150 results

⚙️ Advanced Settings

All settings are in config/settings.py. Key values:

Setting Default What it controls
SEQUENCE_LENGTH 15 Past spins used as AI input
BET_FRACTION 0.02 Fraction of balance bet per number
AUTO_TRAIN_MIN 30 Min spins before online training starts
SPIN_INTERVAL 5 Seconds between simulated spins
RECONNECT_DELAY 30 Seconds before WebSocket reconnect
TRAINING_EPOCHS 100 Epochs for full offline training

🤝 Contributing

Pull requests and issues are welcome!


📄 License

MIT License — see LICENSE


Built with ❤️ by alaevate

About

AI roulette predictor — 3-layer LSTM, live WebSocket feed, 5 betting strategies, real-time online learning, and Rich terminal UI.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors