Module: Bchess::BoardHelpers
- Included in:
- Board, PGN::GameBody, Piece
- Defined in:
- lib/bchess/helpers/board_helpers.rb
Instance Method Summary collapse
- #castle_detected?(piece, column) ⇒ Boolean
- #en_passant_detected?(piece, column, row) ⇒ Boolean
- #field(column, row) ⇒ Object
- #invalid_data?(piece, column, row) ⇒ Boolean
- #kings_present? ⇒ Boolean
- #pawn_long_move_detected?(piece, row) ⇒ Boolean
- #promotion_detected?(piece, row) ⇒ Boolean
- #to_column(column) ⇒ Object
- #to_row(row) ⇒ Object
Instance Method Details
#castle_detected?(piece, column) ⇒ Boolean
11 12 13 |
# File 'lib/bchess/helpers/board_helpers.rb', line 11 def castle_detected?(piece, column) piece.is_a?(Bchess::King) && piece.column == 4 && (column - piece.column).abs == 2 end |
#en_passant_detected?(piece, column, row) ⇒ Boolean
19 20 21 |
# File 'lib/bchess/helpers/board_helpers.rb', line 19 def en_passant_detected?(piece, column, row) piece.is_a?(Bchess::Pawn) && piece.row != row && piece.column != column && at(column, row).nil? && piece.can_take_on_field?(column, row) end |
#field(column, row) ⇒ Object
3 4 5 |
# File 'lib/bchess/helpers/board_helpers.rb', line 3 def field(column, row) (column + 97).chr + (row + 1).to_s end |
#invalid_data?(piece, column, row) ⇒ Boolean
7 8 9 |
# File 'lib/bchess/helpers/board_helpers.rb', line 7 def invalid_data?(piece, column, row) piece.nil? || !(0..7).cover?(column) || !(0..7).cover?(row) end |
#kings_present? ⇒ Boolean
27 28 29 |
# File 'lib/bchess/helpers/board_helpers.rb', line 27 def kings_present? !!king(Bchess::WHITE) && !!king(Bchess::BLACK) end |
#pawn_long_move_detected?(piece, row) ⇒ Boolean
23 24 25 |
# File 'lib/bchess/helpers/board_helpers.rb', line 23 def pawn_long_move_detected?(piece, row) piece.is_a?(Bchess::Pawn) && (piece.row - row).abs == 2 end |
#promotion_detected?(piece, row) ⇒ Boolean
15 16 17 |
# File 'lib/bchess/helpers/board_helpers.rb', line 15 def promotion_detected?(piece, row) piece.is_a?(Bchess::Pawn) && (row == 0 || row == 7) end |
#to_column(column) ⇒ Object
35 36 37 |
# File 'lib/bchess/helpers/board_helpers.rb', line 35 def to_column(column) column.bytes.first - 97 end |
#to_row(row) ⇒ Object
31 32 33 |
# File 'lib/bchess/helpers/board_helpers.rb', line 31 def to_row(row) row.to_i - 1 end |