user-1: 
How do computers evaluate three-check chess positions where the first side to check the other side three times wins?  

How do they value the first and second checks?  
It looks like the position evaluations would be tricky but it also looks like three-check chess would be an easier game to solve than standard chess.  



user825: 
https://github.com/ddugovic/Stockfish

Very active development, this is the Stockfish version used by lichess.
What you need to do is search this macro:

#ifdef THREECHECK

Evaluation function:

https://github.com/ddugovic/Stockfish/blob/master/src/evaluate.cpp

Checks are given extra bonus unlike normal chess:
    if (pos.is_three_check())
        score += ChecksGivenBonus[pos.checks_given(Us)];

pos.checks_given gives the number of checks already done. ChecksGivenBonus is an array of bonus values.
The bonus values are:
  S(444, 181),  // first check
  S(2425, 603), // second check

444 is the bonus for opening/middlegame, and 181 is the bonus for endgame. The bonus for the second check is much greater.
I'm not sure positional evaluations in three-checks is tricky. I can see the parameters have changed, king safety improved, but the overall structure is identical to regular chess.

user15415: 
I have been working on the aforementioned code of Stockfish for three-check chess, so I will try to summarize the most important evaluation changes (in terms of Elo gain) we made compared to standard chess. As was mentioned before, apart from these changes the evaluation is very similar to normal chess, with only some parameter tweaks.

Bonus for the number of checks:


In the middlegame, one check is worth about 2/3 of a minor piece, whereas the value of two checks is around 3 minor pieces, but such positions usually are highly dynamic, so they are hard to evaluate statically.
In the endgame, checks are not worth that much, since material is much more important. One check is worth about a pawn, two checks correspond to a bit less than a minor piece.

Much higher bonuses/penalties for safe/unsafe king positions, e.g., for the number of attacking pieces or for holes in the pawn shelter.


The king safety evaluation is also scaled depending on the number of checks the opponent has already given, so that king safety is more important if he is close to giving the third checks.

Piece values slightly differ from standard chess. Pawns are worth a bit less in the middlegame, since dynamic factors like open files are comparatively more important, and rooks are more valuable in endgames, since they can easily threaten to give check if only few pieces are on the board.

Regarding the second part of the question, I think that evaluation is tricky in closed positions, because it then is hard to evaluate imbalances regarding the number of checks and material. If the position is highly tactical, then the search should usually be able to resolve inaccuracies of the evaluation.
Solving three-check chess most probably is easier than for standard chess, because games tend to be shorter. One important point is the game theoretical value with optimal play. If white can force a (relatively short) win, then a proof might be feasible, but if it is a draw with optimal play, then the required proof tree would probably be much too big.


-1: <ul>
<li><p>How do computers evaluate three-check chess positions where the first side to check the other side three times wins?  </p>

<ul>
<li><p>How do they value the first and second checks?  </p></li>
<li><p>It looks like the position evaluations would be tricky but it also looks like three-check chess would be an easier game to solve than standard chess.  </p></li>
</ul></li>
</ul>
 825: <blockquote>
  <p><a href="https://github.com/ddugovic/Stockfish" rel="noreferrer">https://github.com/ddugovic/Stockfish</a></p>
</blockquote>

<p>Very active development, this is the Stockfish version used by lichess.</p>

<p>What you need to do is search this macro:</p>

<blockquote>
  <p>#ifdef THREECHECK</p>
</blockquote>

<p>Evaluation function:</p>

<blockquote>
  <p><a href="https://github.com/ddugovic/Stockfish/blob/master/src/evaluate.cpp" rel="noreferrer">https://github.com/ddugovic/Stockfish/blob/master/src/evaluate.cpp</a></p>
</blockquote>

<p>Checks are given <strong>extra bonus</strong> unlike normal chess:</p>

<pre><code>    if (pos.is_three_check())
        score += ChecksGivenBonus[pos.checks_given(Us)];
</code></pre>

<p><code>pos.checks_given</code> gives the number of checks already done. <code>ChecksGivenBonus</code> is an array of bonus values.</p>

<p>The bonus values are:</p>

<pre><code>  S(444, 181),  // first check
  S(2425, 603), // second check
</code></pre>

<p><code>444</code> is the bonus for opening/middlegame, and <code>181</code> is the bonus for endgame. The bonus for the second check is much greater.</p>

<p>I'm not sure positional evaluations in three-checks is tricky. I can see the parameters have changed, king safety improved, but the overall structure is identical to regular chess.</p>
 15415: <ol>
<li><p>I have been working on the aforementioned code of Stockfish for three-check chess, so I will try to summarize the most important <strong>evaluation changes</strong> (in terms of Elo gain) we made <strong>compared to standard chess</strong>. As was mentioned before, apart from these changes the evaluation is very similar to normal chess, with only some parameter tweaks.</p>

<ul>
<li><strong>Bonus for the number of checks</strong>:

<ul>
<li>In the middlegame, one check is worth about 2/3 of a minor piece, whereas the value of two checks is around 3 minor pieces, but such positions usually are highly dynamic, so they are hard to evaluate statically.</li>
<li>In the endgame, checks are not worth that much, since material is much more important. One check is worth about a pawn, two checks correspond to a bit less than a minor piece.</li>
</ul></li>
<li><strong>Much higher bonuses/penalties for safe/unsafe king positions</strong>, e.g., for the number of attacking pieces or for holes in the pawn shelter.

<ul>
<li>The <strong>king safety evaluation</strong> is also scaled <strong>depending on the number of checks</strong> the opponent has already given, so that king safety is more important if he is close to giving the third checks.</li>
</ul></li>
<li><strong>Piece values slightly differ from standard chess.</strong> Pawns are worth a bit less in the middlegame, since dynamic factors like open files are comparatively more important, and rooks are more valuable in endgames, since they can easily threaten to give check if only few pieces are on the board.</li>
</ul></li>
<li><p>Regarding the second part of the question, I think that <strong>evaluation is tricky in closed positions</strong>, because it then is hard to evaluate imbalances regarding the number of checks and material. If the position is highly tactical, then the search should usually be able to resolve inaccuracies of the evaluation.</p></li>
<li><p><strong>Solving three-check chess</strong> most probably is easier than for standard chess, because games tend to be shorter. One important point is the game theoretical value with optimal play. If white can force a (relatively short) win, then a proof might be feasible, but if it is a draw with optimal play, then the required proof tree would probably be much too big.</p></li>
</ol>
