* Add Betza notation of palace moves
* Change piece char table to avoid check detection
: pt == KING && v->cambodianMoves ? "ismN"
: pt == FERS && v->cambodianMoves ? "ifnD"
: "";
+ // Janggi palace moves
+ if (v->diagonalLines)
+ {
+ PieceType pt2 = pt == KING ? v->kingType : pt;
+ if (pt2 == WAZIR)
+ suffix += "F";
+ else if (pt2 == SOLDIER)
+ suffix += "fF";
+ else if (pt2 == ROOK)
+ suffix += "B";
+ else if (pt2 == JANGGI_CANNON)
+ suffix += "pB";
+ }
+ // Castling
if (pt == KING && v->castling)
suffix += "O" + std::to_string((v->castlingKingsideFile - v->castlingQueensideFile) / 2);
+ // Drop region
if (v->pieceDrops)
{
if (pt == PAWN && !v->firstRankPawnDrops)
// https://en.wikipedia.org/wiki/Janggi
Variant* janggi_variant() {
Variant* v = xiangqi_variant();
+ v->pieceToCharTable = "PN.R.AB....C.........Kpn.r.ab....c.........k";
v->remove_piece(FERS);
v->remove_piece(CANNON);
v->remove_piece(ELEPHANT);