Introduce piece type wazir to support courier chess.
bench: 4648488
{ SOUTH, WEST, EAST, NORTH }, // clobber
{ NORTH_WEST, NORTH_EAST }, // breakthrough
{}, // immobile
+ { SOUTH, WEST, EAST, NORTH }, // wazir
{ SOUTH_WEST, SOUTH, SOUTH_EAST, WEST, EAST, NORTH_WEST, NORTH, NORTH_EAST }, // commoner
{ SOUTH_WEST, SOUTH, SOUTH_EAST, WEST, EAST, NORTH_WEST, NORTH, NORTH_EAST } // king
};
{}, // clobber
{ NORTH_WEST, NORTH, NORTH_EAST }, // breakthrough
{}, // immobile
+ { SOUTH, WEST, EAST, NORTH }, // wazir
{ SOUTH_WEST, SOUTH, SOUTH_EAST, WEST, EAST, NORTH_WEST, NORTH, NORTH_EAST }, // commoner
{ SOUTH_WEST, SOUTH, SOUTH_EAST, WEST, EAST, NORTH_WEST, NORTH, NORTH_EAST } // king
};
{}, // clobber
{}, // breakthrough
{}, // immobile
+ {}, // wazir
{}, // commoner
{} // king
};
{}, // clobber
{}, // breakthrough
{}, // immobile
+ {}, // wazir
{}, // commoner
{} // king
};
0, // clobber
0, // breakthrough
0, // immobile
+ 0, // wazir
0, // commoner
0 // king
};
0, // clobber
0, // breakthrough
0, // immobile
+ 0, // wazir
0, // commoner
0 // king
};
FersValueMg, AlfilValueMg, SilverValueMg, AiwokValueMg, BersValueMg,
ArchbishopValueMg, ChancellorValueMg, AmazonValueMg, KnibisValueMg, BiskniValueMg,
ShogiPawnValueMg, LanceValueMg, ShogiKnightValueMg, EuroShogiKnightValueMg, GoldValueMg, HorseValueMg,
- ClobberPieceValueMg, BreakthroughPieceValueMg, ImmobilePieceValueMg, CommonerValueMg },
+ ClobberPieceValueMg, BreakthroughPieceValueMg, ImmobilePieceValueMg, WazirValueMg, CommonerValueMg },
{ VALUE_ZERO, PawnValueEg, KnightValueEg, BishopValueEg, RookValueEg, QueenValueEg,
FersValueEg, AlfilValueEg, SilverValueEg, AiwokValueEg, BersValueEg,
ArchbishopValueMg, ChancellorValueEg, AmazonValueEg, KnibisValueMg, BiskniValueMg,
ShogiPawnValueEg, LanceValueEg, ShogiKnightValueEg, EuroShogiKnightValueEg, GoldValueEg, HorseValueEg,
- ClobberPieceValueEg, BreakthroughPieceValueEg, ImmobilePieceValueEg, CommonerValueEg }
+ ClobberPieceValueEg, BreakthroughPieceValueEg, ImmobilePieceValueEg, WazirValueEg, CommonerValueEg }
};
namespace PSQT {
ClobberPieceValueMg = 300, ClobberPieceValueEg = 300,
BreakthroughPieceValueMg = 300, BreakthroughPieceValueEg = 300,
ImmobilePieceValueMg = 100, ImmobilePieceValueEg = 100,
+ WazirValueMg = 400, WazirValueEg = 400,
CommonerValueMg = 600, CommonerValueEg = 600,
MidgameLimit = 15258, EndgameLimit = 3915
FERS, MET = FERS, ALFIL, SILVER, KHON = SILVER, AIWOK, BERS, DRAGON = BERS,
ARCHBISHOP, CHANCELLOR, AMAZON, KNIBIS, BISKNI,
SHOGI_PAWN, LANCE, SHOGI_KNIGHT, EUROSHOGI_KNIGHT, GOLD, HORSE,
- CLOBBER_PIECE, BREAKTHROUGH_PIECE, IMMOBILE_PIECE, COMMONER, KING,
+ CLOBBER_PIECE, BREAKTHROUGH_PIECE, IMMOBILE_PIECE, WAZIR, COMMONER, KING,
ALL_PIECES = 0,
PIECE_TYPE_NB = 1 << PIECE_TYPE_BITS
v->flagMove = true;
return v;
} ();
+ const Variant* courier = [&]{
+ Variant* v = new Variant();
+ v->maxRank = RANK_8;
+ v->maxFile = FILE_L;
+ v->remove_piece(QUEEN);
+ v->add_piece(ALFIL, 'e');
+ v->add_piece(FERS, 'f');
+ v->add_piece(COMMONER, 'm');
+ v->add_piece(WAZIR, 'w');
+ v->startFen = "rnebmk1wbenr/1ppppp1pppp1/6f5/p5p4p/P5P4P/6F5/1PPPPP1PPPP1/RNEBMK1WBENR w - - 0 1";
+ v->promotionPieceTypes = {FERS};
+ v->doubleStep = false;
+ v->castling = false;
+ v->bareKingValue = -VALUE_MATE;
+ v->bareKingMove = true;
+ v->stalemateValue = -VALUE_MATE;
+ return v;
+ } ();
#endif
// Add to UCI_Variant option
add("janus", janus);
add("embassy", embassy);
add("jesonmor", jesonmor);
+ add("courier", courier);
#endif
}