4 KiB
monop-board — IRC Monopoly Game State Tracker & Board Viewer
Overview
Two components:
- IRC Bot (Python) — Sits in an IRC channel, parses monop-irc game output, writes
game-state.json - 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 <N>, <N>— dice roll (two dice)That puts you on <SquareName>— player landed on a squareYou pass Go and get $200— passed Go<PlayerName> rolled doubles. Goes again— doubles
Buying/Owning
That would cost $<N>— unowned propertyDo you want to buy?— purchase promptYou own it.— already owned
Rent
You owe <PlayerName> $<N>— rent payment
Jail
That's 3 doubles. You go to jailYou're in jailtype messages- GOJF card usage
Player Holdings (from holdings command)
<Name>'s (<N>) holdings (Total worth: $<N>):$<N>— cash on hand$<N>, <N> get-out-of-jail-free card(s)- Then property listing in format:
<SquareName> <Owner> <Group> <Cost> <Morg> <Houses> <Rent>
Board Print (from board command)
- Header:
Name Own Price Mg # Rent - Properties:
<Name> <Owner> <Group> <Cost> <Morg> <Houses> <Rent> - Two columns side by side
Turn Indicator
<Name>'s turnor similar turn announcements
Player Info
<Name> (is|was) player <N>
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
{
"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