나는 뒤죽박죽 된 일련의 문자를 취하여 영어를 반환하는 함수를 만들려고합니다. 웬일인지 word = (word.ord-4).chr
을 제대로 작동시키지 못합니다. 코드의 비밀은 글자가 4 슬롯 뒤로 이동한다는 것입니다. 그래서 정수로 먼저 변환하고 4를 뺀 다음 다시 문자열로 변환합니다.루프에서 .ord 및 .chr을 올바르게 사용하는 방법은 무엇입니까?
루프는 또한 특수 문자 인 경우 단어를 건너 뛰라고 말한 사실을 무시하는 것처럼 보입니다. 내가 도대체 뭘 잘못하고있는 겁니까?
이 문제를 해결하는 데 도움이되는 제안이나 출처는 무엇입니까?
def north_korean_cipher(coded_mesage)
input = coded_mesage.split('') # splits the coded message into array of letters
input.each do |word|
word = (word.ord - 4).chr
if word == '@' || '#' || '$' || '%' || '^' || '&' || '*'
next
end
end
print input
end
north_korean_cipher('m^aerx%e&gsoi!')
은 BTW, 당신은에 * 회전 * 알파벳 가지고있다 -> w','B의'를 - > x,'c -> y','d -> z','e -> a' 등등 – Stefan
힌트를 주셔서 감사합니다, @Stefan,하지만 Array의 메서드 만 회전시키지 않습니까? –
'("a".ord - 4) .chr'은''''''',''w "'를 반환하지 않습니다. 그리고 네, 회전 된 배열을 사용하여 매핑을 만들 수 있습니다. – Stefan