def promote(p1)
      puts "Promote to: [Q]ueen, [K]night, [R]ook, [B]ishop"

      loop do
        promo_piece = gets.chomp.downcase

        if ["q", :queen].include? promo_piece
          @piece_locations_buffer[p1][:type] = :queen
          break

        elsif ["k", :knight].include? promo_piece
          @piece_locations_buffer[p1][:type] = :knight
          break

        elsif ["r", :rook].include? promo_piece
          @piece_locations_buffer[p1][:type] = :rook
          break

        elsif ["b", :bishop].include? promo_piece
          @piece_locations_buffer[p1][:type] = :bishop
          break

        else
          puts "Please enter one of: [Q]ueen, [K]night, [R]ook, [B]ishop"
        end
      end
    end
def promote(p1)
      puts "Promote to: [Q]ueen, [K]night, [R]ook, [B]ishop"

      loop do
        promo_piece = gets.chomp.downcase

        if ["q", :queen].include? promo_piece
          @piece_locations_buffer[p1][:type] = :queen
          break

        elsif ["k", :knight].include? promo_piece
          @piece_locations_buffer[p1][:type] = :knight
          break

        elsif ["r", :rook].include? promo_piece
          @piece_locations_buffer[p1][:type] = :rook
          break

        elsif ["b", :bishop].include? promo_piece
          @piece_locations_buffer[p1][:type] = :bishop
          break

        else
          puts "Please enter one of: [Q]ueen, [K]night, [R]ook, [B]ishop"
        end
      end
    end
Once a pawn reaches the end, this method is called to swap the pawn
 for another piece (from the list below)