
Snippet of chess
dylanclark112
1 Likes0 Commentsruby# 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