The Mandalay Bay — a satirical choose-your-adventure resort simulator with a unified chip economy. Play blackjack, slots, and the sports book on the casino floor; check into the hotel; lounge at the 11-acre pool complex; climb MGM Rewards tiers; and explore the property as a pixel RPG. Available as a Python CLI, a browser terminal (GitHub Pages), and a Phaser overworld.
| Surface | URL / command |
|---|---|
| Web terminal | Web-Terminal-Access |
| Pixel RPG | The-Pixel-RPG |
| CLI | python3 -m mandalay_bay |
| Quarto docs (Posit Connect Cloud) | Posit-Cloud |
All three surfaces share the same save slots and chip wallet (CLI: ~/.mandalay_bay/saves/; browser: localStorage).
Requires Python 3.11+ (stdlib only at runtime).
git clone https://github.com/Exios66/degen-llms.git
cd degen-llms
python3 -m mandalay_bay # Save library → casino floor
python3 -m mandalay_bay --list-saves # View save slots
python3 -m mandalay_bay --slot 1 --new-save --name "Ace"
python3 -m blackjack # Standalone blackjack (no resort hub)Optional editable install and tests:
pip install -e ".[dev]"
python3 -m pytest -v # 200+ testsEight floors, twelve activities, one chip wallet:
| Floor | Activities | Min bet |
|---|---|---|
| Table Games | Blackjack, Texas Hold'em, Mandalay Roulette, Craps | 10 chips |
| Slot Machines | 14 machines incl. Megabucks & linked progressives | 1 chip |
| Lottery Counter | Pick 3/4, Mega/Powerball, premium scratchers | Varies (stake-scaled) |
| Sports Book | Scenario board, parlays/futures + prediction markets | 10 chips |
| Trading Floor | Futures & call/put options (NYSE, commodities, crypto) | 25 chips |
| Arcade Alley | CRT cabinets — Strip Cross, Neon Invaders, Breakout, Showgirl Beat | 5 chips |
| Racing Pavilion | Mandalay Racing (thoroughbred sim) | 5 chips |
| Equestrian Arena | Dressage & show jumping | 10 chips |
Stake tiers run from penny slots through 401K Contribution ($542–$6,500) and High Roller / No Limit. Progressive jackpots (Megabucks, Monte Carlo, Super Spin) persist in your save.
Beyond the gaming pits:
- Casino Floor — shopping & bars — The Shoppes at Mandalay Place sky bridge, three full-service bars, intoxication tracking
- Resort dining — Aureole, Border Grill, Stripsteak capacity overlay with drink-scaled encounters
- Cashier — Buy chips, cash out to your off-strip bank account, view the floor ledger
- Off-Strip Bank Account — Park winnings outside the cage; fund trips from outside income
- Staff Manifest — Editable dealer roster with session overrides
- High Limit salon, Foundation Room & Gentleman's Club — Chip- and tier-gated VIP venues (web + RPG; Velvet Ledger also on CLI)
Exit the casino floor to the Mandalay Bay Hotel Experience:
- Clerk Carmen at the front desk — locate reservations, settle overdue charges, upgrade rooms, review folios, checkout, resort dining
- Hallway mini-game — three beats of directional choices to reach your door
- In-room amenities — TV (Shark Reef ch. 47, wave pool cam), sensor-enabled minibar, unlimited foreign calls, balcony decisions / suite balcony POV smoke-break, 17 unlockable Vegas vignettes
- Gentleman's Club — The Velvet Ledger — Gold+ / suite key / club phone line; tip storms, stocked bar, minigames, ledger eggs
- Strip Ride (web) — room-phone limo or Rewards Connect Uber / Lyft to Luxor, Excalibur, Bellagio, Circa with exclusive slots and per-property menu themes
- Guest Directory — leather-bound lobby guest book with persistent signatures
- Real-time day/night cycle — 2 hours real time = 1 in-game day; daily room/resort/parking charges; rotating check-in requirements (phone, desk, both, or whale net-positive)
- MGM Rewards phone — press P for tier status, comps, reservation locate, audio call trees, and Connect rideshare
Room types: Deluxe King → Panorama Suite → Chairman Penthouse. MGM Rewards tier comps can cover upgrades and room nights.
The 11-acre pool expansion includes wave pool timing, hot tubs, private cabanas, Shark Reef Aquarium species collection, topless beach club, and beach rave — with unlockable pool vignettes that chain into hotel room events.
Lifetime wagered chips advance you through Sapphire → Pearl → Gold → Platinum → Noir → Chairman. Each tier unlocks narrative comps (welcome drink, slot free-play, buffet, room night, suite upgrade, penthouse fantasy) and perks that gate TV channels, phone calls, and VIP access.
Walk the resort in a Pokémon-style pixel overworld built with Phaser 3:
- 32 rooms, 73 NPCs — a walkable Las Vegas Blvd Strip (Mandalay → Luxor → Excalibur), valet, registration, two casino floors, the book, High Limit Salon, Foundation Room, the Shoppes and sky bridge, two bars, the hotel tower and your own room, Delano, the spa, four pool zones, Shark Reef, House of Blues, ULTRA Arena, and the back of house
- Terminal parity, not a rewrite — hotel, pool, shops, slots, sportsbook, racing, and cashier are the terminal's own screens mounted inside an encounter panel, so the two surfaces cannot drift
- Pokémon systems — START menu, line-of-sight challengers, a quest board, a three-part dex, a bag, twelve cosmetic secrets, and NPCs who move with the clock
- One clock, one wallet — daily resort charges, rotating reservation requirements, and eviction all reach the overworld
- Legible floors — gold walkways connect every door, dark trim separates each zone, and floating signs name the room you're standing in
- Your guest, your sprite — a character creator for archetype, skin tone, hair, and outfit, reopenable as the Trainer Card's wardrobe
- Plays on a phone — full-bleed handheld framing, a thumb pad, tap a tile to walk, tap anywhere to advance dialogue
- Hand-authored sprites — characters are pixel grids with proper faces and a three-frame stride, drawn at 2× on a 16-pixel art grid that lights from the top left
- Arcade polish — DS-scale textures, Web Audio BGM/SFX, cabinet bezel, room placards, Konami code
- Unified saves — position, quests, flags, and chips ride the same slot as the terminal and the CLI
See docs/rpg/GDD.md.
- 5 save slots with most-recent-first library ordering
- Interactive picker on launch, or direct CLI:
--slot N,--slot N --new-save - Ephemeral play:
--no-save - Auto-save on leave, after activities, and on Ctrl+C
- CLI storage:
~/.mandalay_bay/saves/(override with--save-dirorMANDALAY_BAY_SAVE_DIR) - Browser storage:
localStorageper slot (mandalay-bay-library)
python3 -m mandalay_bay --slot 2
python3 -m mandalay_bay --slot 3 --new-save --name "Ace" --chips 2500
python3 -m mandalay_bay --no-save --chips 5000
python3 -m mandalay_bay --save-dir ./backups --list-saves
python3 -m mandalay_bay --no-color --ascii --no-intro
python3 -m blackjack --quick --bots 3 --rounds 10| Flag | Purpose |
|---|---|
--slot |
Load save slot 1–5 directly |
--new-save / --new |
Create new save in --slot |
--no-save |
Ephemeral session (no persistence) |
--list-saves |
Print save library and exit |
--save-dir |
Custom save directory |
--chips |
Starting chips for new saves |
--name |
Default player name |
--no-color / --ascii / --no-intro |
Display options |
degen-llms/
├── mandalay_bay/ # Python source of truth — hub, resort systems, CLI activities
│ ├── activities/ # Blackjack, Hold'em, roulette, slots, sportsbook, racing, equestrian, craps, lottery
│ ├── craps.py / lottery.py / prediction_markets.py
│ ├── hotel*.py / pool*.py / rewards*.py / casino_amenities*.py
│ ├── hub.py / session.py / chips.py / saves.py
│ └── data/ # Sports catalog, staff manifest, guest directory, horse names
├── blackjack/ # Decoupled blackjack engine (casino + standalone modes)
├── poker/ # Texas Hold'em table engine (`holdem.py`) + hand evaluation
├── docs/ # Web terminal (GitHub Pages) + shared JS engine
│ ├── js/ # Browser parity modules (core, hotel, pool, sportsbook, craps, lottery, …)
│ │ ├── blackjack/ / holdem/
│ │ └── app.js # Casino floor UI
│ ├── css/ # Terminal styling
│ ├── *.md # Player & developer guides (mirrored in Quarto)
│ └── rpg/ # Phaser overworld (maps, NPCs, encounter overlays)
├── tests/ # pytest suite (200+ tests)
├── scripts/ # GitHub Pages deploy, Posit Connect publish, asset tooling
├── .github/workflows/ # gh-pages deploy (workflow_dispatch only)
├── index.qmd / play.qmd # Quarto documentation manuscript
├── _quarto.yml / _publish.yml # Quarto site + Posit Connect Cloud publish target
└── CONTRIBUTING-POSIT.md # Connect Cloud deploy notes
Python is the authoritative game logic; the web app mirrors it in vanilla ES modules. The RPG delegates casino/hotel mechanics to the shared docs/js/ engine. The Quarto site (index.qmd, guides) publishes separately to Posit Connect Cloud.
Full docs in docs/ and on the GitHub Wiki (source in wiki/; publish with /sync-github-wiki or bash scripts/sync-github-wiki.sh):
| Guide | Description |
|---|---|
| About | Vision, design pillars, history |
| Casino Offerings | Full floor catalog and amenities |
| Player Guide | Every menu, dialog, hotel flow, and shortcut |
| Getting Started | Install, launch, CLI flags |
| Save Slots | Load, create, and manage saves |
| Chip Economy | Wallet, ledger, buy-ins, cash-outs |
| Blackjack | Table rules, controls, casino & standalone modes |
| Table Games | Hold'em, roulette, craps |
| Slot Machines | Machines, paytables, progressives |
| Lottery | Pick 3/4, Mega/Powerball, premium scratchers |
| Sports Book | Scenario board, parlays, prediction markets |
| Trading Floor | Futures & options (NYSE, commodities, crypto) |
| Arcade Alley | CRT cabinets — Strip Cross, Invaders, Breakout, rhythm |
| Racing | Thoroughbred + equestrian |
| Hotel / Strip Ride / Pool / Rewards | Resort off the floor |
| Architecture | Packages, data flow, activity system |
| Adding Activities | Plug in new games |
| Testing | Running and writing tests |
| RNG | CSPRNG guarantees |
| Pixel RPG / GDD | Overworld design (Phases 1–6) |
In-game help: Casino Guide from the main lobby.
The interactive web terminal + RPG source lives in docs/ on main. That tree is mirrored to the gh-pages branch /docs folder for the live site.
Enable Pages (one-time): Repository Settings → Pages → Deploy from branch → gh-pages → /docs.
Automatic push/schedule deploy is disabled (Actions billing limits). Publish manually with the preferred skill wrapper, or optionally run the workflow from the Actions tab (workflow_dispatch only):
bash .cursor/skills/gh-pages-deploy-loop/scripts/run-manual.sh # Preferred
# or: gh workflow run deploy-gh-pages.yml
# legacy: SYNC_TRIGGER=manual_run ./scripts/sync-gh-pages.shCustom error screens (404.html, maintenance.html, offline.html) deploy with the site. See .cursor/skills/gh-pages-deploy-loop/SKILL.md.
A Quarto documentation website (overview manuscript + player/developer guides) publishes to the JackJBurleson Posit Connect Cloud account as its own content instance — it does not overwrite the PSYCH 755 manuscript.
# Requires Quarto ≥ 1.10, jupyter, pandas, matplotlib
export PYTHONPATH="$PWD"
quarto render
python scripts/publish_posit_degen_llms.py # creates or updates Connect Cloud contentSee CONTRIBUTING-POSIT.md and .cursor/skills/posit-connect-publish/SKILL.md.
All random outcomes use OS-backed CSPRNG (secrets.SystemRandom() in Python, crypto.getRandomValues() in the browser). No outcome manipulation.
Copy into a profile README under Highlighted Projects (same style as other for-the-badge project links):
[](https://github.com/Exios66/degen-llms)Preview:
MIT — see LICENSE.