# File lib/quiz1/t/solutions/James Edward Gray II/solitaire.rb, line 37
def decrypt(message)
        # Step 1
        key_stream = generate(message.size)
        
        # Step 2
        values = message.split("").map { |letter| letter[0] - ?A + 1 }

        # Step 3
        key_values = key_stream.split("").map { |letter| letter[0] - ?A + 1 }
        
        # Step 4
        values.each_with_index do |value, index|
                next if value < 0
                if value <= key_values[index]
                        values[index] = value + 26 - key_values[index]
                else
                        values[index] = value - key_values[index]
                end
        end
        
        # Step 5
        message = (values.map { |number| (number - 1 + ?A).chr }).join("")
        
        return message
end