class Bchess::Pawn

Public Instance Methods

can_move_to_field?(dcolumn, drow) click to toggle source
Calls superclass method
# File lib/bchess/pawn.rb, line 15
def can_move_to_field?(dcolumn, drow)
  super &&
    pawn_move(dcolumn, drow)
end
can_take_on_field?(dcolumn, drow) click to toggle source
# File lib/bchess/pawn.rb, line 20
def can_take_on_field?(dcolumn, drow)
  direction = white? ? 1 : -1
  by_diagonal(dcolumn, drow, 1) && (drow - row) == direction
end
initiialize(*args) click to toggle source
Calls superclass method
# File lib/bchess/pawn.rb, line 3
def initiialize(*args)
  super(args)
end
name() click to toggle source
# File lib/bchess/pawn.rb, line 7
def name
  ''
end
valid?() click to toggle source
Calls superclass method
# File lib/bchess/pawn.rb, line 11
def valid?
  super && pawn_position?
end

Private Instance Methods

column_kept?(dcolumn, column) click to toggle source
# File lib/bchess/pawn.rb, line 33
def column_kept?(dcolumn, column)
  column == dcolumn
end
direction_kept?(_dcolumn, drow) click to toggle source
# File lib/bchess/pawn.rb, line 37
def direction_kept?(_dcolumn, drow)
  white? ? drow > row : row > drow
end
pawn_move(dcolumn, drow) click to toggle source
# File lib/bchess/pawn.rb, line 27
def pawn_move(dcolumn, drow)
  row_diff?(dcolumn, drow) &&
    direction_kept?(dcolumn, drow) &&
    column_kept?(dcolumn, column)
end
pawn_position?() click to toggle source
# File lib/bchess/pawn.rb, line 49
def pawn_position?
  (1..6).cover?(row)
end
row_diff?(_dcolumn, drow) click to toggle source
# File lib/bchess/pawn.rb, line 41
def row_diff?(_dcolumn, drow)
  (row - drow).abs <= (starting_position? ? 2 : 1)
end
starting_position?() click to toggle source
# File lib/bchess/pawn.rb, line 45
def starting_position?
  row == (white? ? 1 : 6)
end