class Piece
Private Instance Methods
jumped?(board,x,y)
click to toggle source
# File lib/piece.rb, line 4 def jumped?(board,x,y) start, new = self.to_coord, [x,y] # find all the spaces ([x,y]) between start and new x_diff = (start.first - new.first) y_diff = (start.last - new.last) moves_between = [] if x_diff == 0 # vertical movement multiplyer = y_diff / y_diff.abs ((y_diff.abs)-1).times do |aug| aug = (aug + 1) * multiplyer moves_between << [x, y + aug] end elsif y_diff == 0 # horizontal movement multiplyer = x_diff / x_diff.abs ((x_diff.abs)-1).times do |aug| aug = (aug + 1) * multiplyer moves_between << [x + aug, y] end else # diagonal movement y_multiplyer = y_diff / y_diff.abs x_multiplyer = x_diff / x_diff.abs ((x_diff.abs)-1).times do |aug| y_aug = (aug + 1) * y_multiplyer x_aug = (aug + 1) * x_multiplyer moves_between << [x + x_aug, y + y_aug] end end moves_between.any? {|coord| !board.at(*coord).empty?} end