Design and implement a simplified Animal Chess (Dou Shou Qi) game using object-oriented principles. Include:
-
Piece classes Elephant, Lion, Tiger, Leopard, Wolf, Dog, Cat, and Rat, each encapsulating its movement and capture rules;
-
A 9x7 board that models cell types (river, trap, den, land) and ownership;
-
Movement validation, capturing logic, turn handling, and win conditions;
-
A simple API to initialize the board in a standard setup, place pieces, query/display board state, and execute moves;
-
Test cases that
(a) initialize the board and place all pieces,
(b) demonstrate a lion moving to capture another piece, and
(c) simulate a full turn with several moves. Input: actions invoked via predefined APIs (no CLI/IO required). Data constraints: at most 16 pieces on the board.