user9461: I am writing a simple chess game in which I have to determine the end game conditions. My algorithm requires the piece that is putting the opponent king in check, and checks the following:

King cannot escape
Piece cannot be eliminated
Path cannot be blocked

If all three conditions satisfy, then it is checkmate. However, I am wondering if there can be more than one piece simultaneously putting a king in check. It doesn't seem to be possible, but I can't come up with a proof for it. For example, is it possible for 2 rooks to put a king in check at the same time? Personally, I don't think that it's possible.

user12873: The King can be checked by multiple pieces via a double check tactic. Consider the following position:
White Queen on g4, White Rook on f5, Black King on d7.
White plays 1. Rf7+, and Black's King is checked by both White's Rook and Queen.
For your algorithm, it would be checkmate if BOTH pieces cannot be blocked, taken, avoided, etc. Consider the following:

e4 e6 2. Nc3 d5 3. exd5 exd5 4.d3 d4 5. Ne4 Nc6 6. Qe2 Bg4 7. Nf6#

The final position is a double check and checkmate. Notice how both White's Queen and Knight can be taken or avoided, if you consider them individually. However, they cannot BOTH be taken/avoided/blocked, so Black is checkmated.

user9477: Double check is possible.
One piece must move to deliver a check, while simultaneously allowing another piece to give check that had been blocked by the moving piece.
Examples:

a rook could move on the rank to check on a file while uncovering a bishop check
a knight could move to give check while uncovering a rook check or a bishop check


user9531: If you consider Chinese chess (Xiang Qi), then technically even triple check is possible.  Imgaine the enemy king, your knight or bishop, your rook and your cannon all in line in that order.  Then if the knight or bishop can move away to give check it is a triple check.  Another difference is that a double check by rook and cannon on the same line could be blocked in one move, so even though technically it is a triple check, because the cannon can leap over the rook, it seems more similar to a double check with respect to blocking.

user19740: For the purposes of writing an algorithm, I don't think I would approach it that way at all.
On any given ply, you generate a list of legal moves to investigate.  A move is illegal if, in the resulting position, your king is in check.  If there are no legal moves, and the king is currently in check, then it's checkmate.  
You don't need an algorithm to figure out whether a check can be blocked or whether the checking piece can be eliminated, or any other scenarios.  The lack of any legal moves in the position indicates that already.

user10308: If you include a pawn that has just been promoted to a rook, then yes, it is quite possible to give check with two rooks simultaneously.
Consider the position where White has Ke1 Re6 e7 g7,  and Black has Ke8 Nf8. White moves 1. exf8(R)++ and gives check with the newly promoted rook as well as the existing rook.
Checkmate could also be given in this way if, for example, White had a queen on g7 instead of a pawn.

user4418: Double check is a fine tactic. An example would be a bishop lined up on the same diagonal as the king with a rook or knight in the way blocking the check. The rook or knight moves giving check to the king and also uncovering the check from the bishop. The king must move since there is no way to block two different lines or take two different pieces at the same time. 

9461: <p>I am writing a simple chess game in which I have to determine the end game conditions. My algorithm requires the piece that is putting the opponent king in check, and checks the following:</p>

<ul>
<li>King cannot escape</li>
<li>Piece cannot be eliminated</li>
<li>Path cannot be blocked</li>
</ul>

<p>If all three conditions satisfy, then it is checkmate. However, I am wondering if there can be more than one piece simultaneously putting a king in check. It doesn't seem to be possible, but I can't come up with a proof for it. For example, is it possible for 2 rooks to put a king in check at the same time? Personally, I don't think that it's possible.</p>
 12873: <p>The King can be checked by multiple pieces via a double check tactic. Consider the following position:</p>

<p>White Queen on g4, White Rook on f5, Black King on d7.</p>

<p>White plays 1. Rf7+, and Black's King is checked by both White's Rook and Queen.</p>

<p>For your algorithm, it would be checkmate if BOTH pieces cannot be blocked, taken, avoided, etc. Consider the following:</p>

<ol>
<li>e4 e6 2. Nc3 d5 3. exd5 exd5 4.d3 d4 5. Ne4 Nc6 6. Qe2 Bg4 7. Nf6#</li>
</ol>

<p>The final position is a double check and checkmate. Notice how both White's Queen and Knight can be taken or avoided, if you consider them individually. However, they cannot BOTH be taken/avoided/blocked, so Black is checkmated.</p>
 9477: <p>Double check is possible.</p>

<p>One piece must move to deliver a check, while simultaneously allowing another piece to give check that had been blocked by the moving piece.</p>

<p>Examples:</p>

<ul>
<li>a rook could move on the rank to check on a file while uncovering a bishop check</li>
<li>a knight could move to give check while uncovering a rook check or a bishop check</li>
</ul>
 9531: <p>If you consider Chinese chess (<a href="https://en.wikipedia.org/wiki/Xiangqi" rel="nofollow noreferrer">Xiang Qi</a>), then technically even triple check is possible.  Imgaine the enemy king, your knight or bishop, your rook and your cannon all in line in that order.  Then if the knight or bishop can move away to give check it is a triple check.  Another difference is that a double check by rook and cannon on the same line could be blocked in one move, so even though technically it is a triple check, because the cannon can leap over the rook, it seems more similar to a double check with respect to blocking.</p>
 19740: <p>For the purposes of writing an algorithm, I don't think I would approach it that way at all.</p>

<p>On any given ply, you generate a list of legal moves to investigate.  A move is illegal if, in the resulting position, your king is in check.  If there are no legal moves, and the king is currently in check, then it's checkmate.  </p>

<p>You don't need an algorithm to figure out whether a check can be blocked or whether the checking piece can be eliminated, or any other scenarios.  The lack of any legal moves in the position indicates that already.</p>
 10308: <p>If you include a pawn that has just been promoted to a rook, then yes, it is quite possible to give check with two rooks simultaneously.<br>
Consider the position where White has Ke1 Re6 e7 g7,  and Black has Ke8 Nf8. White moves 1. exf8(R)++ and gives check with the newly promoted rook as well as the existing rook.<br>
Checkmate could also be given in this way if, for example, White had a queen on g7 instead of a pawn.</p>
 4418: <p>Double check is a fine tactic. An example would be a bishop lined up on the same diagonal as the king with a rook or knight in the way blocking the check. The rook or knight moves giving check to the king and also uncovering the check from the bishop. The king must move since there is no way to block two different lines or take two different pieces at the same time. </p>
