Design the backend system for an online, turn-based checkers game.
Requirements
Cover (at minimum):
-
Core gameplay
-
Create a new game and initialize the board.
-
Make a move (validate legality).
-
Apply captures (including multi-jump sequences).
-
King promotion.
-
Determine game end (win/lose/draw rules you choose, but state assumptions).
-
Multiplayer backend
-
Two players per game; players take turns.
-
Prevent cheating/tampering (server-authoritative state).
-
Handle concurrent requests and duplicate submissions.
-
APIs and data model
-
Define key endpoints (or RPCs), request/response shapes, and stored entities.
-
Scalability & reliability (high-level)
-
Support many concurrent games.
-
Reason about persistence, reconnection, and observability.
Follow-up
Point out which part(s) of your design/implementation are most worth optimizing and why (e.g., move validation, state representation, network updates).