Back
Close
  • 65

Learning Opportunities

This puzzle can be solved using the following concepts. Practice using these concepts and improve your skills.

Statement

 Goal

Part 2 of a series, please solve Part 1 first to understand this problem fully https://www.codingame.com/training/easy/is-the-king-in-check-part-1

8 x 8 space-separated character rows of a chessboard with three pieces on the board: your King and two enemy pieces. Print Check or No Check depending on whether one of the enemy pieces is able to attack your king on the next turn (remembering that pieces that are 'in the way' of an enemy's line of attack at your king will block each other - excluding Knights which can't be blocked).

The King will be a k character (note: it was K in the previous challenge, please update your code). The possible enemy pieces are Bishop (B), Knight (N), Rook (R) or Queen (Q). The empty positions will be _ in the input. There are exactly three non-_ characters: one k and two of B/N/R/Q.

Bishops (B): Attack diagonally in all four directions.
Rooks (R): Attack horizontally/verically in all four directions (can attack along same row or column)
Queens (Q): Attack in all eight of the above directions.

Knights (N): Attack in L-shapes - squares that are two rows and one column away (L), or one row and two columns away (∟). (These happen to be the only eight squares in a 5x5 sub-grid that a Queen can't attack from the same spot).

Example 1

_ _ _ _ _ _ _ _
_ _ _ Q _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ N _ _ _ _
_ k _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _

In the above diagram, the Queen is not able to attack the King, but the Knight is, so the repsonse is Check.

Example 2

_ _ _ _ _ _ _ _
_ k N _ Q _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _

Here the Queen would be able to attack the King if it weren't for the fact that the Knight is in the way. The knight cannot attack the king either so the answer is No Check.
Input
8 lines of : 8 space-separated characters, mostly underscores with exactly one k and two of B/N/R/Q.
Output
1 line : Check if the King is in check (by either enemy) or No Check if not.
Constraints
Example
Input
_ _ _ _ _ _ _ Q
_ _ _ _ R _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ k _ _ _ _ _
_ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
Output
Check

A higher resolution is required to access the IDE