# monop-board — IRC Monopoly Game State Tracker & Board Viewer ## Overview Two components: 1. **IRC Bot (Python)** — Sits in an IRC channel, parses monop-irc game output, writes `game-state.json` 2. **Static Site Generator (HTML/CSS/JS)** — Reads `game-state.json`, renders a visual Monopoly board ## monop-irc Message Format (from source analysis) The game outputs text lines to IRC. Key patterns to parse: ### Roll & Movement - `roll is , ` — dice roll (two dice) - `That puts you on ` — player landed on a square - `You pass Go and get $200` — passed Go - ` rolled doubles. Goes again` — doubles ### Buying/Owning - `That would cost $` — unowned property - `Do you want to buy?` — purchase prompt - `You own it.` — already owned ### Rent - `You owe $` — rent payment ### Jail - `That's 3 doubles. You go to jail` - `You're in jail` type messages - GOJF card usage ### Player Holdings (from `holdings` command) - `'s () holdings (Total worth: $):` - ` $` — cash on hand - ` $, get-out-of-jail-free card(s)` - Then property listing in format: ` ` ### Board Print (from `board` command) - Header: `Name Own Price Mg # Rent` - Properties: ` ` - Two columns side by side ### Turn Indicator - `'s turn` or similar turn announcements ### Player Info - ` (is|was) player ` ## The 40 Monopoly Squares (in order, 0-39) 0: Go, 1: Mediterranean Ave, 2: Community Chest, 3: Baltic Ave, 4: Income Tax, 5: Reading Railroad, 6: Oriental Ave, 7: Chance, 8: Vermont Ave, 9: Connecticut Ave, 10: Just Visiting/Jail, 11: St. Charles Place, 12: Electric Company, 13: States Ave, 14: Virginia Ave, 15: Pennsylvania Railroad, 16: St. James Place, 17: Community Chest, 18: Tennessee Ave, 19: New York Ave, 20: Free Parking, 21: Kentucky Ave, 22: Chance, 23: Indiana Ave, 24: Illinois Ave, 25: B&O Railroad, 26: Atlantic Ave, 27: Ventnor Ave, 28: Water Works, 29: Marvin Gardens, 30: Go to Jail, 31: Pacific Ave, 32: North Carolina Ave, 33: Community Chest, 34: Pennsylvania Ave, 35: Short Line Railroad, 36: Chance, 37: Park Place, 38: Luxury Tax, 39: Boardwalk ## Color Groups - Purple: Mediterranean, Baltic (houses $50) - Light Blue: Oriental, Vermont, Connecticut (houses $50) - Pink: St. Charles, States, Virginia (houses $100) - Orange: St. James, Tennessee, New York (houses $100) - Red: Kentucky, Indiana, Illinois (houses $150) - Yellow: Atlantic, Ventnor, Marvin Gardens (houses $150) - Green: Pacific, North Carolina, Pennsylvania (houses $200) - Dark Blue: Park Place, Boardwalk (houses $200) - Railroads: Reading, Pennsylvania, B&O, Short Line - Utilities: Electric Company, Water Works ## game-state.json Schema ```json { "lastUpdated": "ISO8601", "currentPlayer": 0, "players": [ { "name": "Alice", "number": 1, "money": 1500, "location": 0, "inJail": false, "jailTurns": 0, "goJailFreeCards": 0, "properties": [1, 3], "numRailroads": 0, "numUtilities": 0 } ], "squares": [ { "id": 0, "name": "Go", "type": "safe", "owner": -1, "cost": 0, "mortgaged": false, "houses": 0, "monopoly": false, "group": null, "rent": [0] } ], "log": [ {"timestamp": "ISO8601", "text": "roll is 3, 4", "player": "Alice"} ] } ``` ## Static Site Requirements - Visual Monopoly board layout (the classic square board shape) - Player tokens shown on their current square - Property ownership indicated by color/icon - Houses/hotels shown on properties - Player info panel: name, money, properties, cards - Color-coded by property group - Auto-refreshes by polling game-state.json - Single HTML file (or minimal files) — no build step needed - Mobile-friendly ## Git Repo - Push to: https://forge.johnmaguire.me/jarvis/monop-board.git - Make periodic commits as work progresses