Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for [old] Morse Encoder by Rounin
"use strict";
function repeat(s, n) {
var out = ""
while(n-- > 0) out += s
return out
}
function digit(n) {
if(n > 5) return digit(10-n).split('').reverse().join('')
else return repeat(".", n) + repeat("-", 5-n)
}
function morseEncoder(text) {
text = text.toLowerCase()
var out = ""
var letters = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
for(var c = 0; c < text.length; ++c) {
var code = text[c].codePointAt(0)
if(text[c] == ' ') out += ' '
else if(code >= 'a'.codePointAt(0)) out += letters[code - 'a'.codePointAt(0)]
else out += digit(code - '0'.codePointAt(0))
if((text.length - c) > 1) out += ' '
}
return out;
}
var assert = require('assert');
if (!global.is_checking) {
console.log('Example:')
console.log(morseEncoder('some text'))
// These "asserts" are used for self-checking and not for an auto-testing
assert.equal(morseEncoder("some text"), "... --- -- . - . -..- -")
assert.equal(morseEncoder("2018"), "..--- ----- .---- ---..")
assert.equal(morseEncoder("It was a good day"), ".. - .-- .- ... .- --. --- --- -.. -.. .- -.--")
console.log("Coding complete? Click 'Check' to earn cool rewards!");
}
March 25, 2018