# Piece superclass possible moves:
def possible_moves(deltas, allowed_steps, board)
possible_moves = []
deltas.each do |delta|
current_position = @position
allowed_steps.times do
move = [delta, current_position].transpose.map {|x| x.reduce(:+)}
break unless board.move_on_board?(move)
possible_moves << move if board.piece_at(move).nil?
if !board.piece_at(move).nil?
possible_moves << move if board.piece_at(move).color != self.color
break
end
current_position = move
end
end
possible_moves
end
### For example our Rook Piece subclass inherits this function like so: def possible_moves(board)
def possible_moves(board)
deltas = [[-1,0], [0,-1], [1,0], [0,1]]
super(deltas, 8, board)
end