On Mon, Mar 17, 2008 at 1:50 AM, Max Zhou <ball908765 / yahoo.com> wrote: > I am trying to make a program that takes what you input, and encrypts it by turning a to p, b to q, z to b, etc. It moves the letter 2 spaces to the left (a to c) and moves it down (c to p). (See below.) Even though you can just say that a will be n, how do you seperate each letter and turn it into a string? Please put it in terms that a Ruby beginner would understand. > abcdefghijklm > nopqrstuvwxyz > You can split a string with the String#split method: irb > "Foobar".split(//) => ["F", "o", "o", "b", "a", "r"] You can get the ASCII value of a character either with ?character: > ?F => 70 If you want to loop the splitted string, try eval(has anyone a better solution?): > "Foobar".split(//).each { |c| puts eval("?#{c}") } You can use Fixnum#chr to turn an ASCII value in a character: > 65.chr #=> "A" You're trying to implement the ROT13 or ROTx algorithm. A naive approach, still buggy might look like that: plaintext = "Hello" encrypted = "" plaintext.split(//).each { |c| i=eval("?#{c}"); encrypted << (i+13).chr } puts encrypted #=> Uryy| As you see, the encrypted string contains a |(vertical line) and it also chokes on spaces. I leave the rest to you. Ask again if you're stuck. Regards, Thomas