psq[ pc][ s] = score + ( pt == PAWN ? PBonus[std::min(r, RANK_8)][std::min(file_of(s), FILE_H)]
: pt == KING ? KingBonus[std::min(r, RANK_8)][std::min(f, FILE_D)] * (1 + v->capturesToHand)
: pt <= QUEEN ? Bonus[pc][std::min(r, RANK_8)][std::min(f, FILE_D)]
+ : pt == HORSE ? Bonus[KNIGHT][std::min(r, RANK_8)][std::min(f, FILE_D)]
: make_score(5, 5) * (2 * f + std::max(std::min(r, Rank(v->maxRank - r)), RANK_1) - 8));
if (pt == SOLDIER && r < v->soldierPromotionRank)
psq[pc][s] -= score * (v->soldierPromotionRank - r) / (4 + f);
CannonPieceValueMg = 800, CannonPieceValueEg = 700,
JanggiCannonPieceValueMg = 800, JanggiCannonPieceValueEg = 600,
SoldierValueMg = 200, SoldierValueEg = 270,
- HorseValueMg = 500, HorseValueEg = 800,
+ HorseValueMg = 520, HorseValueEg = 800,
ElephantValueMg = 300, ElephantValueEg = 300,
JanggiElephantValueMg = 340, JanggiElephantValueEg = 350,
BannerValueMg = 3400, BannerValueEg = 3500,