【发布时间】:2015-04-26 17:30:21
【问题描述】:
我正在创建一个程序来解密秘密消息'i want a coke!'。到目前为止,这是我的代码示例:
class Decoder
def initialize(coded_message)
@input = coded_message.downcase.split('')
@symbols = %w(@ # $ % ^ & *)
@alph = ('a'..'z').to_a.join
end
def decoded_symbol
@input.map! do |symbols|
if @symbols.include?(symbols)
symbols = " "
else
symbols = symbols
end
end
end
def decoded_cipher
@input.map! do |char|
if @alph.include?(char)
char = @alph[@alph.index(char) - 4]
end
char = char
end
end
def run
decoded_cipher
decoded_symbol
end
end
Decoder.new("m^aerx%e&gsoi!").run
但是,这是终端返回的内容:
=> ["i", " ", "w", "a", "n", "t", " ", "a", " ", "c", "o", "k", "e", "!"]
我试图让它作为一个句子返回。我一直在玩run 方法,看看我是否可以更改@input 输出,但无法正常工作。任何建议将不胜感激。
【问题讨论】:
-
Decoder.new("m^aerx%e&gsoi!").run.join应该可以工作 -
p "m^aerx%e&gsoi!".tr("a-z@#$%^&*", "w-za-v ") -
@PramodShinde 也可以。不过我确实想把它放在课堂上。感谢您的回复。