Sha256: b1112ab9beda0f26dde27a07f0c2d95632fe0dc32e179838e225e73612c07969

Contents?: true

Size: 544 Bytes

Versions: 10

Compression:

Stored size: 544 Bytes

Contents

module EnPassantBoardControl
  def capture_passed_pawn!(target_square)
    captured_pawn = passed_pawn(target_square)

    self[captured_pawn] = EmptySquare.instance
  end

  def was_en_passant?(piece, target_square)
    captured_pawn = passed_pawn(target_square)

    self[target_square].is_a?(Pawn) &&
      self[target_square].pawn_to_pass(piece).include?(captured_pawn)
  end

  def passed_pawn(target_square)
    direction = self[target_square].color == :white ? 1 : -1

    [target_square.first + direction, target_square.last]
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sapphire-chess-1.1.7 lib/sapphire-chess/movement_rules/en_passant_board_control.rb
sapphire-chess-1.1.6 lib/sapphire-chess/movement_rules/en_passant_board_control.rb
sapphire-chess-1.1.5 lib/sapphire-chess/movement_rules/en_passant_board_control.rb
sapphire-chess-1.1.4 lib/sapphire-chess/movement_rules/en_passant_board_control.rb
sapphire-chess-1.1.3 lib/sapphire-chess/movement_rules/en_passant_board_control.rb
sapphire-chess-1.1.2 lib/sapphire-chess/movement_rules/en_passant_board_control.rb
sapphire-chess-1.1.1 lib/sapphire-chess/movement_rules/en_passant_board_control.rb
sapphire-chess-1.1.0 lib/sapphire-chess/movement_rules/en_passant_board_control.rb
sapphire-chess-1.0.1 lib/sapphire-chess/movement_rules/en_passant_board_control.rb
sapphire-chess-1.0.0 lib/sapphire-chess/movement_rules/en_passant_board_control.rb