How subasad/dahalmahra works
Dahalmahra is a browser-based, real-time four-player card game. Players create or join a room, fill its lobby, choose a master suit, play legal cards through 13 tricks, and receive trick/round results before the next round. The server coordinates Socket.IO events and room state; Game.ts implements dealing, turn validation, trick resolution, scoring, Kot, and dealer rotation. The README also documents the responsive game UI and team play. Client/server source is partial, so edges reflect only visible event flows or README claims.
Main entry points: server.ts Room server · client.js Game client · Game.ts Game engine · index.html Game interface
Components 9
Browser game
- Game client
public/client.js
Realtime service
- Room server
src/server.ts - Room and round state
src/server.ts
Game rules and state
- Game engine
src/Game.ts - Game state types
src/types.ts
Game presentation
- Game interface
public/index.html - Responsive styling
public/style.css - Card artwork
public/images/cards
Other components
- Player
Connections 10
- Player → Game client: plays through
README.md - Game client → Room server: sends game events
public/client.js - Room server → Game client: sends game updates
src/server.ts - Room server → Room and round state: stores room state
src/server.ts - Room server → Game engine: calls game rules
src/server.ts - Game engine → Game state types: uses state types
src/Game.ts - Room server → Game state types: uses player types
src/server.ts - Game client → Game interface: updates interface
- Game client → Card artwork: renders card art
public/client.js - Game interface → Responsive styling: uses styles