• 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

Comments (0)