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