Попытка создать зашифрованный шифр в Ruby. Проблема, с которой я сталкиваюсь, заключается в том, что когда программа достигает цикла while, она выполняет только желаемую операцию с самой последней буквой введенного слова. Прежде чем углубляться в то, что я пробовал, найдите код:
#!/usr/bin/ruby
#print 65.chr ASCII code for A
#print 97.chr ASCII code for a
a = 0
b = 97
d = []
e = 0
# Just to print the alphabet alongside the ASCII value
# (For sanity checking)
while a <= 25
print b.chr + " "
print b.to_s + "\n"
a = a + 1
b = b + 1
end
puts "\n Please enter a word to translate"
word = gets.strip
# The desired effect is to move the letter along by key value
puts "Please enter a key"
k = gets.chomp.to_i
# In its current state, what happens is only the last char
# is moved along by the key value.
while e <= word.length
word.each_byte do |c|
d[e] = c + k
end
e = e + 1
end
puts d
Я думаю, что проблема заключается в логике цикла while. Я собираюсь атаковать это, читая предварительно преобразованное слово в массив, в отличие от использования объекта .each_byte.
Я не знаю, как это сделать, и руководства / вопросы, которые я нашел, не совсем отвечают на вопрос. Если кто-то знает, как это сделать, или знает лучший способ решения этой проблемы, я был бы очень признателен.