odin-default-js-exercises/caesar
c-auri 0d27422bc5 Change shift variable and function names
Using shift as a parameter name might be confusing,
since it is a verb and therefore not a good variable name on its own.
Changing it to shiftValue should clear things up and also makes it
possible to shorten the name of the shiftChar function to just shift,
which leads to a cleaner signature: shift(char, shiftValue)
2022-11-18 14:53:38 +01:00
..
.DS_Store Added test cases 2017-09-20 19:04:46 -04:00
README.md pulled eslint files from jester-tester and updated exercise numbers 2021-05-12 21:37:19 +12:00
caesar.js Change shift variable and function names 2022-11-18 14:53:38 +01:00
caesar.spec.js move files from testing repo to this repo 2021-04-30 21:49:46 +12:00

README.md

Exercise 13 - Caesar cipher

Implement the legendary Caesar cipher:

In cryptography, a Caesar cipher, also known as Caesar's cipher, the shift cipher, Caesar's code or Caesar shift, is one of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. For example, with a left shift of 3, D would be replaced by A, E would become B, and so on. The method is named after Julius Caesar, who used it in his private correspondence.

Hint: You may need to convert letters to their unicode values. Be sure to read the documentation!

write a function that takes a string to be encoded and a shift factor and then returns the encoded string:

caesar('A', 1) // simply shifts the letter by 1: returns 'B'

the cipher should retain capitalization:

caesar('Hey', 5) // returns 'Mjd;

should not shift punctuation:

caesar('Hello, World!', 5) //returns 'Mjqqt, Btwqi!'

the shift should wrap around the alphabet:

caesar('Z', 1) // returns 'A'

negative numbers should work as well:

caesar('Mjqqt, Btwqi!', -5) // returns 'Hello, World!'