Increase king danger for xiangqi generals
authorFabian Fichter <ianfab@users.noreply.github.com>
Sun, 10 Nov 2019 14:19:29 +0000 (15:19 +0100)
committerFabian Fichter <ianfab@users.noreply.github.com>
Sun, 10 Nov 2019 15:53:26 +0000 (16:53 +0100)
xiangqi
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 648 W: 249 L: 166 D: 233

src/evaluate.cpp
src/position.h

index f422ea7..140c032 100644 (file)
@@ -558,6 +558,7 @@ namespace {
                  -   6 * mg_value(score) / 8
                  +       mg_value(mobility[Them] - mobility[Us])
                  +   3 * kingFlankAttacks * kingFlankAttacks / 8
+                 + 500 * pos.xiangqi_general()
                  -   7;
 
     // Transform the kingDanger units into a Score, and subtract it from the evaluation
index 0b7a83d..d4e978c 100644 (file)
@@ -136,6 +136,7 @@ public:
   bool gating() const;
   bool seirawan_gating() const;
   bool cambodian_moves() const;
+  bool xiangqi_general() const;
   bool unpromoted_soldier(Color c, Square s) const;
   // winning conditions
   int n_move_rule() const;
@@ -540,6 +541,11 @@ inline bool Position::cambodian_moves() const {
   return var->cambodianMoves;
 }
 
+inline bool Position::xiangqi_general() const {
+  assert(var != nullptr);
+  return var->xiangqiGeneral;
+}
+
 inline bool Position::unpromoted_soldier(Color c, Square s) const {
   assert(var != nullptr);
   return var->xiangqiSoldier && relative_rank(c, s, var->maxRank) <= RANK_5;