Design: Chess Game System
Design focuses on the core chess game logic and piece movement rules. UI, network play, and AI opponents are out of scope.
Functional Requirements
Non-Functional Requirements
Jump into concepts and practice - no test required
+-------------------+
| Game Engine |
+---------+---------+
|
+---------v---------+
| Board State |
+---------+---------+
|
+---------v---------+ +----------------+
| Piece (Base) |<------+ Move Validator |
+---------+---------+ +----------------+
|
+---------+---------+
| Pawn | Rook | ... |
+-------------------+move() on each piece in the list?class Piece { move() { return 'generic move'; } } class Knight extends Piece { move() { return 'L-shape move'; } } class Bishop extends Piece { move() { return 'diagonal move'; } } pieces = [new Piece(), new Knight(), new Bishop()] for p in pieces: print(p.move())class Piece { move() { throw 'Not implemented'; } } class Queen extends Piece { } let q = new Queen(); q.move();