module Bchess::BoardHelpers

Public Instance Methods

castle_detected?(piece, column) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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?() click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/bchess/helpers/board_helpers.rb, line 35
def to_column(column)
  column.bytes.first - 97
end
to_row(row) click to toggle source
# File lib/bchess/helpers/board_helpers.rb, line 31
def to_row(row)
  row.to_i - 1
end