ecattez / shahmat

A Chess implementation with the Domain Driven Design
https://ecattez.github.io/shahmat/
GNU General Public License v3.0
3 stars 0 forks source link

Feature: King #17

Closed ecattez closed 4 years ago

ecattez commented 4 years ago

Feature: King

Scenario: A king moves exactly one square horizontally, vertically, or diagonally.

GIVEN a <color> king in <from>
AND the one square <direction> is vacant
WHEN the king is moved <direction>
THEN the king is in <to>

Example:
        | color | from | to | direction |
        | WHITE | E4 | E5 | FORWARD |
        | WHITE | E6 | D7 | FORWARD_LEFT |
        | WHITE | C3 | D4 | FORWARD_RIGHT |
        | WHITE | B6 | B5 | BACKWARD |
        | WHITE | B5 | A4 | BACKWARD_LEFT |
        | WHITE | A5 | B4 | BACKWARD_RIGHT |
        | WHITE | E5 | D5 | SHIFT_LEFT |
        | WHITE | F6 | G6 | SHIFT_RIGHT |
        | BLACK | E5 | E4 | FORWARD |
        | BLACK | D5 | E4 | FORWARD_LEFT |
        | BLACK | E5 | D4 | FORWARD_RIGHT |
        | BLACK | D5 | D6 | BACKWARD |
        | BLACK | G6 | H7 | BACKWARD_LEFT |
        | BLACK | G5 | F6 | BACKWARD_RIGHT |
        | BLACK | E4 | F4 | SHIFT_LEFT |
        | BLACK | G6 | F6 | SHIFT_RIGHT |

Scenario: A king cannot move beyond an obstructed path

GIVEN a <color> king in <from>
AND the one square <direction> is not vacant
WHEN the king is moved <direction>
THEN the move is refused

Example:
        | color | from | direction |
        | WHITE | E4 | FORWARD |
        | WHITE | E6 | FORWARD_LEFT |
        | WHITE | C3 | FORWARD_RIGHT |
        | WHITE | B6 | BACKWARD |
        | WHITE | B5 | BACKWARD_LEFT |
        | WHITE | A5 | BACKWARD_RIGHT |
        | WHITE | E5 | SHIFT_LEFT |
        | WHITE | F6 | SHIFT_RIGHT |
        | BLACK | E5 | FORWARD |
        | BLACK | D5 | FORWARD_LEFT |
        | BLACK | E5 | FORWARD_RIGHT |
        | BLACK | D5 | BACKWARD |
        | BLACK | G6 | BACKWARD_LEFT |
        | BLACK | G5 | BACKWARD_RIGHT |
        | BLACK | E4 | SHIFT_LEFT |
        | BLACK | F6 | SHIFT_RIGHT |

Scenario: A king can capture any opposing piece on the board that is within its bounds of movement

GIVEN a <color> king in <from>
AND an opposing piece in <to>
WHEN the king is moved to <to>
THEN the king captures the opposing piece

Example:
        | color | from | to |
        | WHITE | E4 | D3 |
        | WHITE | E4 | D4 |
        | WHITE | E4 | D5 |
        | WHITE | E4 | E3 |
        | WHITE | E4 | E5 |
        | WHITE | E4 | F3 |
        | WHITE | E4 | F4 |
        | WHITE | E4 | F5 |
        | BLACK | D5 | E6 |
        | BLACK | D5 | E5 |
        | BLACK | D5 | E4 |
        | BLACK | D5 | D6 |
        | BLACK | D5 | D4 |
        | BLACK | D5 | C6 |
        | BLACK | D5 | C5 |
        | BLACK | D5 | C4 |