int pocketsize = v->pieceDrops ? (v->pocketSize ? v->pocketSize : v->pieceTypes.size()) : 0;
if (Options["Protocol"] == "xboard")
{
+ // Overwrite setup command for Janggi variants
+ auto itJanggi = variants.find("janggi");
+ if ( itJanggi != variants.end()
+ && v->variantTemplate == itJanggi->second->variantTemplate
+ && v->startFen == itJanggi->second->startFen
+ && v->pieceToCharTable == itJanggi->second->pieceToCharTable)
+ {
+ sync_cout << "setup (PH.R.AE..K.C.ph.r.ae..k.c.) 9x10+0_janggi "
+ << "rhea1aehr/4k4/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/4K4/RHEA1AEHR w - - 0 1"
+ << sync_endl;
+ return;
+ }
// Send setup command
sync_cout << "setup (" << v->pieceToCharTable << ") "
<< v->maxFile + 1 << "x" << v->maxRank + 1
// Official tournament rules with bikjang and material counting.
Variant* janggi_variant() {
Variant* v = xiangqi_variant();
+ v->variantTemplate = "janggi";
v->pieceToCharTable = ".N.R.AB.P..C.........K.n.r.ab.p..c.........k";
v->remove_piece(FERS);
v->remove_piece(CANNON);