Rstinkho / cyphers

[morning exercise] Encode some strings

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ciphers

Write a command line app that encodes some strings.

You don't have to work in order, you can choose to start with the second problem if you want.

Instructions

  • Write your code in script.js, specifically in the 2 given functions.

    • morseDecode should take a single parameter, the morse code as a string, and return the decoded message as a string
    • caesarEncode should take two parameters, a message as a string and the number of places to shift by (positive values shift to the right, negative values shift to the left), and return the encoded message as a string
  • Run node script.js YOUR_ARGUMENTS_HERE to test your functions

Morse Code

Given the following alphabet:

{
  a: '.-',
  b: '-...',
  c: '-.-.',
  d: '-..',
  e: '.',
  f: '..-.',
  g: '--.',
  h: '....',
  i: '..',
  j: '.---',
  k: '-.-',
  l: '.-..',
  m: '--',
  n: '-.',
  o: '---',
  p: '.--.',
  q: '--.-',
  r: '.-.',
  s: '...',
  t: '-',
  u: '..-',
  v: '...-',
  w: '.--',
  v: '...-',
  x: '-..-',
  y: '-.--',
  z: '--..'
}

Build a command line morse-code encoder.

Further

Decode the following messages: (hint: command line arguments can take strings with quotes)

... .- -- ..- . .-..    -- --- .-. ... .    .. -. ...- . -. - . -..    -- --- .-. ... .    -.-. --- -.. .
-.-- --- ..- .-.    .. -. ... - .-. ..- -.-. - --- .-. ...    .-.. --- ...- .    -.-- --- ..-
- .... .. ...    .. ...    - .... .    .- -. ... .-- . .-.    - ---    - .... .    ..- .-.. - .. -- .- - .    --.- ..- . ... - .. --- -.    --- ..-.    .-.. .. ..-. .    - .... .    ..- -. .. ...- . .-. ... .    .- -. -..    . ...- . .-. -.-- - .... .. -. --.
....

Caesar cipher

From wikipedia: Caesar cipher 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 transformation can be represented by aligning two alphabets; the cipher alphabet is the plain alphabet rotated left or right by some number of positions. For instance, here is a Caesar cipher using a left rotation of three places, equivalent to a right shift of 23 (the shift parameter is used as the key):

Example:

Plain:    ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher:   XYZABCDEFGHIJKLMNOPQRSTUVW

When encrypting, a person looks up each letter of the message in the "plain" line and writes down the corresponding letter in the "cipher" line.

Plaintext:  THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Ciphertext: QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD

Further

Write your function such that it can decode a message given to it as well.

About

[morning exercise] Encode some strings


Languages

Language:JavaScript 100.0%