Я хочу зашифровать строку путем увеличения ASCII на значение ключа. Но с этим кодом у меня возникла проблема.
def caesar_cipher(str, key)
new_sentence = []
str.split("").each do |letter|
ascii = letter.ord
puts ascii
ascii += key if ascii >= 65 && ascii <= 90
if ascii > 90
return_start = ascii - 90
ascii = 64 + return_start
end
ascii += key if ascii >= 97 && ascii <= 122
if ascii > 122
return_start = ascii - 122
ascii = 96 + return_start
end
puts ascii
new_sentence << ascii.chr
end
puts new_sentence
end
caesar_cipher("Wh", 5)
Я положил puts
, чтобы посмотреть, что произойдет, и когда я puts ascii
, я увижу, что мне не вернулось хорошее число. Для «W» все хорошо. Он начинает с 87
и go до 66
. Но я не понимаю, почему у 'h' есть проблема. Он начинает с 104
и go до 78
. Почему он не go до 109
?