From 042bab966da7c6b0ee213b0c490325577b452125 Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Mon, 14 Sep 2020 21:32:15 +0200 Subject: [PATCH] Penalty for undroppable shogi pawns shogi STC LLR: 2.96 (-2.94,2.94) [0.00,10.00] Total: 5265 W: 2710 L: 2532 D: 23 http://www.variantfishtest.org:6543/tests/view/5f5a95fa6e23db221d9e9120 shogi LTC LLR: 2.96 (-2.94,2.94) [0.00,10.00] Total: 3730 W: 1932 L: 1776 D: 22 http://www.variantfishtest.org:6543/tests/view/5f5c8fec6e23db221d9e9154 --- src/evaluate.cpp | 3 +++ src/psqt.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 5000df0..90de684 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -471,6 +471,9 @@ namespace { // Reduce score if there is a deficit of gates if (pos.seirawan_gating() && !pos.piece_drops() && pos.count_in_hand(Us, ALL_PIECES) > popcount(pos.gates(Us))) score -= make_score(200, 900) / pos.count_in_hand(Us, ALL_PIECES) * (pos.count_in_hand(Us, ALL_PIECES) - popcount(pos.gates(Us))); + + if (pt == SHOGI_PAWN && !pos.shogi_doubled_pawn()) + score -= make_score(50, 20) * std::max(pos.count_with_hand(Us, SHOGI_PAWN) - pos.max_file() - 1, 0); } return score; diff --git a/src/psqt.cpp b/src/psqt.cpp index 67b8bdb..d7f4a08 100644 --- a/src/psqt.cpp +++ b/src/psqt.cpp @@ -213,7 +213,7 @@ void init(const Variant* v) { psq[~pc][rank_of(s) <= v->maxRank ? flip_rank(s, v->maxRank) : s] = -psq[pc][s]; } // pieces in pocket - psq[ pc][SQ_NONE] = score + make_score(35, 10) * (1 + !(isSlider || pt == SHOGI_PAWN)); + psq[ pc][SQ_NONE] = score + make_score(35, 10) * (1 + !isSlider); psq[~pc][SQ_NONE] = -psq[pc][SQ_NONE]; } } -- 1.7.0.4