ngx-chess-board
Version:
Chess game component
67 lines (63 loc) • 2.3 kB
text/typescript
import { Board } from '../models/board';
import { Bishop } from '../models/pieces/bishop';
import { Color } from '../models/pieces/color';
import { Knight } from '../models/pieces/knight';
import { Piece } from '../models/pieces/piece';
import { Queen } from '../models/pieces/queen';
import { Rook } from '../models/pieces/rook';
import { UnicodeConstants } from '../utils/unicode-constants';
export class PiecePromotionResolver {
static resolvePromotionChoice(board: Board, piece: Piece, index: number) {
const isWhite = piece.color === Color.WHITE;
switch (index) {
case 1:
board.pieces.push(
new Queen(
piece.point,
piece.color,
isWhite
? UnicodeConstants.WHITE_QUEEN
: UnicodeConstants.BLACK_QUEEN,
board
)
);
break;
case 2:
board.pieces.push(
new Rook(
piece.point,
piece.color,
isWhite
? UnicodeConstants.WHITE_ROOK
: UnicodeConstants.BLACK_ROOK,
board
)
);
break;
case 3:
board.pieces.push(
new Bishop(
piece.point,
piece.color,
isWhite
? UnicodeConstants.WHITE_BISHOP
: UnicodeConstants.BLACK_BISHOP,
board
)
);
break;
case 4:
board.pieces.push(
new Knight(
piece.point,
piece.color,
isWhite
? UnicodeConstants.WHITE_KNIGHT
: UnicodeConstants.BLACK_KNIGHT,
board
)
);
break;
}
}
}