Switch from CoffeeScript to Dart with convert engine
This commit is contained in:
parent
b100eb0d3f
commit
497a087270
13 changed files with 340 additions and 1915 deletions
10
.gitignore
vendored
10
.gitignore
vendored
|
@ -4,3 +4,13 @@ test/temp
|
|||
bower_components
|
||||
.tmp
|
||||
test/bower_components/
|
||||
|
||||
# Dart files
|
||||
pubspec.lock
|
||||
packages/
|
||||
.pub/
|
||||
.packages
|
||||
app/scripts/MorseConverter.js*
|
||||
|
||||
# Atom editor
|
||||
.atom/
|
||||
|
|
10
README.md
10
README.md
|
@ -21,7 +21,7 @@ The webapp can be accessed at [marcel-kapfer.de/writtenmorse/morseconverter](htt
|
|||
You need the following programs installed on your computer:
|
||||
|
||||
```
|
||||
npm, bower, gulp
|
||||
npm, bower, gulp, dart2js
|
||||
```
|
||||
|
||||
To see your changes run the first time:
|
||||
|
@ -30,7 +30,13 @@ To see your changes run the first time:
|
|||
npm install && bower install
|
||||
```
|
||||
|
||||
and the rebuild the webapp with:
|
||||
Now change to `app/scripts/` and compile the `MorseConverter.dart`:
|
||||
|
||||
```
|
||||
dart2js -m MorseConverter.dart -o MorseConverter.js
|
||||
```
|
||||
|
||||
and then rebuild the webapp with:
|
||||
|
||||
```
|
||||
gulp
|
||||
|
|
|
@ -117,9 +117,7 @@
|
|||
|
||||
<!-- build:js scripts/app.js -->
|
||||
<script src="scripts/app.js"></script>
|
||||
<script src="scripts/CodeRecognization.js"></script>
|
||||
<script src="scripts/writtenMorseConvert.js"></script>
|
||||
<script src="scripts/normalMorseConvert.js"></script>
|
||||
<script src="scripts/MorseConverter.js"></script>
|
||||
<!-- endbuild-->
|
||||
|
||||
</body>
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
isNormalMorseCode = (input) ->
|
||||
input = input.toLowerCase()
|
||||
return !(input.indexOf("a") > -1 or input.indexOf("b") > -1 or
|
||||
input.indexOf("c") > -1 or input.indexOf("d") > -1 or
|
||||
input.indexOf("e") > -1 or input.indexOf("f") > -1 or
|
||||
input.indexOf("g") > -1 or input.indexOf("h") > -1 or
|
||||
input.indexOf("i") > -1 or input.indexOf("j") > -1 or
|
||||
input.indexOf("k") > -1 or input.indexOf("l") > -1 or
|
||||
input.indexOf("m") > -1 or input.indexOf("n") > -1 or
|
||||
input.indexOf("o") > -1 or input.indexOf("p") > -1 or
|
||||
input.indexOf("q") > -1 or input.indexOf("r") > -1 or
|
||||
input.indexOf("s") > -1 or input.indexOf("t") > -1 or
|
||||
input.indexOf("u") > -1 or input.indexOf("v") > -1 or
|
||||
input.indexOf("w") > -1 or input.indexOf("x") > -1 or
|
||||
input.indexOf("y") > -1 or input.indexOf("z") > -1 or
|
||||
input.indexOf("0") > -1 or input.indexOf("1") > -1 or
|
||||
input.indexOf("2") > -1 or input.indexOf("3") > -1 or
|
||||
input.indexOf("4") > -1 or input.indexOf("5") > -1 or
|
||||
input.indexOf("6") > -1 or input.indexOf("7") > -1 or
|
||||
input.indexOf("8") > -1 or input.indexOf("9") > -1 or
|
||||
input.indexOf("Ä") > -1 or input.indexOf("Ö") > -1 or
|
||||
input.indexOf("Ü") > -1 or input.indexOf("ß") > -1 or
|
||||
input.indexOf("$") > -1 or input.indexOf(",") > -1 or
|
||||
input.indexOf(":") > -1 or input.indexOf(";") > -1 or
|
||||
input.indexOf("!") > -1 or input.indexOf("?") > -1 or
|
||||
input.indexOf("+") > -1 or input.indexOf("_") > -1 or
|
||||
input.indexOf("(") > -1 or input.indexOf(")") > -1 or
|
||||
input.indexOf("=") > -1 or input.indexOf("/") > -1 or
|
||||
input.indexOf("@") > -1 or input.indexOf("'") > -1)
|
||||
|
||||
isWrittenMorseCode = (input) ->
|
||||
input = input.toLowerCase()
|
||||
return not (input.indexOf("a") > -1 or input.indexOf("b") > -1 or
|
||||
input.indexOf("c") > -1 or input.indexOf("d") > -1 or
|
||||
input.indexOf("e") > -1 or input.indexOf("f") > -1 or
|
||||
input.indexOf("g") > -1 or input.indexOf("h") > -1 or
|
||||
input.indexOf("i") > -1 or input.indexOf("j") > -1 or
|
||||
input.indexOf("k") > -1 or input.indexOf("l") > -1 or
|
||||
input.indexOf("m") > -1 or input.indexOf("n") > -1 or
|
||||
input.indexOf("o") > -1 or input.indexOf("p") > -1 or
|
||||
input.indexOf("q") > -1 or input.indexOf("r") > -1 or
|
||||
input.indexOf("s") > -1 or input.indexOf("t") > -1 or
|
||||
input.indexOf("u") > -1 or input.indexOf("v") > -1 or
|
||||
input.indexOf("w") > -1 or input.indexOf("x") > -1 or
|
||||
input.indexOf("y") > -1 or input.indexOf("z") > -1 or
|
||||
input.indexOf("2") > -1 or input.indexOf("3") > -1 or
|
||||
input.indexOf("4") > -1 or input.indexOf("5") > -1 or
|
||||
input.indexOf("6") > -1 or input.indexOf("7") > -1 or
|
||||
input.indexOf("8") > -1 or input.indexOf("9") > -1 or
|
||||
input.indexOf("Ä") > -1 or input.indexOf("Ö") > -1 or
|
||||
input.indexOf("Ü") > -1 or input.indexOf("ß") > -1 or
|
||||
input.indexOf(".") > -1 or input.indexOf(",") > -1 or
|
||||
input.indexOf(":") > -1 or input.indexOf(";") > -1 or
|
||||
input.indexOf("!") > -1 or input.indexOf("?") > -1 or
|
||||
input.indexOf("-") > -1 or input.indexOf("_") > -1 or
|
||||
input.indexOf("(") > -1 or input.indexOf(")") > -1 or
|
||||
input.indexOf("=") > -1 or input.indexOf("/") > -1 or
|
||||
input.indexOf("@") > -1 or input.indexOf("'") > -1 or
|
||||
input.indexOf("$") > -1)
|
60
app/scripts/CodeRecognization.dart
Normal file
60
app/scripts/CodeRecognization.dart
Normal file
|
@ -0,0 +1,60 @@
|
|||
/**
|
||||
* 2016 (c) Marcel Kapfer (mmk2410)
|
||||
* Licensed under MIT License
|
||||
*/
|
||||
|
||||
import 'Convert.dart';
|
||||
|
||||
/**
|
||||
* Detect code.
|
||||
*/
|
||||
class CodeRecognization {
|
||||
|
||||
/**
|
||||
* Detect if message is Morse code.
|
||||
*
|
||||
* @param message string to be checked.
|
||||
* @return Boolean true if message is Morse code.
|
||||
*/
|
||||
static bool isMorseCode(String message) {
|
||||
|
||||
List<String> alphabet = new List.from(Convert.alphabet);
|
||||
alphabet = alphabet
|
||||
..remove('.')
|
||||
..remove('-')
|
||||
..remove(' ');
|
||||
|
||||
for (String char in message.toUpperCase().split('')) {
|
||||
if (alphabet.contains(char)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect if message is writtenMorse code.
|
||||
*
|
||||
* @param message string to be checked.
|
||||
* @return Boolean true if message is writtenMorse coe.
|
||||
*/
|
||||
static bool isWrittenMorseCode(String message) {
|
||||
|
||||
List<String> alphabet = new List.from(Convert.alphabet);
|
||||
alphabet = alphabet
|
||||
..remove('0')
|
||||
..remove('1')
|
||||
..remove('#')
|
||||
..remove('+');
|
||||
|
||||
for (String char in message.toUpperCase().split('')) {
|
||||
if (alphabet.contains(char)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
var isNormalMorseCode, isWrittenMorseCode;
|
||||
|
||||
isNormalMorseCode = function(input) {
|
||||
input = input.toLowerCase();
|
||||
return !(input.indexOf("a") > -1 || input.indexOf("b") > -1 || input.indexOf("c") > -1 || input.indexOf("d") > -1 || input.indexOf("e") > -1 || input.indexOf("f") > -1 || input.indexOf("g") > -1 || input.indexOf("h") > -1 || input.indexOf("i") > -1 || input.indexOf("j") > -1 || input.indexOf("k") > -1 || input.indexOf("l") > -1 || input.indexOf("m") > -1 || input.indexOf("n") > -1 || input.indexOf("o") > -1 || input.indexOf("p") > -1 || input.indexOf("q") > -1 || input.indexOf("r") > -1 || input.indexOf("s") > -1 || input.indexOf("t") > -1 || input.indexOf("u") > -1 || input.indexOf("v") > -1 || input.indexOf("w") > -1 || input.indexOf("x") > -1 || input.indexOf("y") > -1 || input.indexOf("z") > -1 || input.indexOf("0") > -1 || input.indexOf("1") > -1 || input.indexOf("2") > -1 || input.indexOf("3") > -1 || input.indexOf("4") > -1 || input.indexOf("5") > -1 || input.indexOf("6") > -1 || input.indexOf("7") > -1 || input.indexOf("8") > -1 || input.indexOf("9") > -1 || input.indexOf("Ä") > -1 || input.indexOf("Ö") > -1 || input.indexOf("Ü") > -1 || input.indexOf("ß") > -1 || input.indexOf("$") > -1 || input.indexOf(",") > -1 || input.indexOf(":") > -1 || input.indexOf(";") > -1 || input.indexOf("!") > -1 || input.indexOf("?") > -1 || input.indexOf("+") > -1 || input.indexOf("_") > -1 || input.indexOf("(") > -1 || input.indexOf(")") > -1 || input.indexOf("=") > -1 || input.indexOf("/") > -1 || input.indexOf("@") > -1 || input.indexOf("'") > -1);
|
||||
};
|
||||
|
||||
isWrittenMorseCode = function(input) {
|
||||
input = input.toLowerCase();
|
||||
return !(input.indexOf("a") > -1 || input.indexOf("b") > -1 || input.indexOf("c") > -1 || input.indexOf("d") > -1 || input.indexOf("e") > -1 || input.indexOf("f") > -1 || input.indexOf("g") > -1 || input.indexOf("h") > -1 || input.indexOf("i") > -1 || input.indexOf("j") > -1 || input.indexOf("k") > -1 || input.indexOf("l") > -1 || input.indexOf("m") > -1 || input.indexOf("n") > -1 || input.indexOf("o") > -1 || input.indexOf("p") > -1 || input.indexOf("q") > -1 || input.indexOf("r") > -1 || input.indexOf("s") > -1 || input.indexOf("t") > -1 || input.indexOf("u") > -1 || input.indexOf("v") > -1 || input.indexOf("w") > -1 || input.indexOf("x") > -1 || input.indexOf("y") > -1 || input.indexOf("z") > -1 || input.indexOf("2") > -1 || input.indexOf("3") > -1 || input.indexOf("4") > -1 || input.indexOf("5") > -1 || input.indexOf("6") > -1 || input.indexOf("7") > -1 || input.indexOf("8") > -1 || input.indexOf("9") > -1 || input.indexOf("Ä") > -1 || input.indexOf("Ö") > -1 || input.indexOf("Ü") > -1 || input.indexOf("ß") > -1 || input.indexOf(".") > -1 || input.indexOf(",") > -1 || input.indexOf(":") > -1 || input.indexOf(";") > -1 || input.indexOf("!") > -1 || input.indexOf("?") > -1 || input.indexOf("-") > -1 || input.indexOf("_") > -1 || input.indexOf("(") > -1 || input.indexOf(")") > -1 || input.indexOf("=") > -1 || input.indexOf("/") > -1 || input.indexOf("@") > -1 || input.indexOf("'") > -1 || input.indexOf("$") > -1);
|
||||
};
|
217
app/scripts/Convert.dart
Normal file
217
app/scripts/Convert.dart
Normal file
|
@ -0,0 +1,217 @@
|
|||
/**
|
||||
* 2016 (c) Marcel Kapfer (mmk2410)
|
||||
* Licensed under MIT License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Methods for converting Morse and writtenMorse code.
|
||||
*/
|
||||
class Convert {
|
||||
|
||||
// Normal alphabet.
|
||||
static List<String> alphabet = [
|
||||
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
|
||||
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
|
||||
'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3',
|
||||
'4', '5', '6', '7', '8', '9', 'Ä', 'Ö', 'Ü', 'ß',
|
||||
'.', ',', ':', ';', '?', '!', '-', '_', '(', ')',
|
||||
'=', '+', '/', '@', "'", '\$', '\n', " ", '<br>'
|
||||
];
|
||||
|
||||
// Normal alphabet signal words.
|
||||
static List<String> alphabetExtra = [
|
||||
'LETTERSPACE', 'END OF WORK', 'ERROR', 'STARTING SIGNAL', 'ENDING SIGNAL',
|
||||
'UNDERSTOOD', 'WAIT', 'SOS', 'LETTER SPACE', 'WORD SPACE'
|
||||
];
|
||||
|
||||
// writtenMorse Alphabet.
|
||||
static List<String> writtenMorse = [
|
||||
'01', '1000', '1010', '100', '0', '0010',
|
||||
'110', '0000', '00', '0111', '101', '0100',
|
||||
'11', '10', '111', '0110', '1101', '010',
|
||||
'000', '1', '001', '0001', '011', '1001',
|
||||
'1011', '1100', '11111', '01111', '00111',
|
||||
'00011', '00001', '00000', '10000', '11000',
|
||||
'11100', '11110', '0101', '1110', '0011',
|
||||
'00011000', '010101', '110011', '111000',
|
||||
'101010', '001100', '101011', '100001', '001101',
|
||||
'10110', '101101', '10001', '01010', '10010',
|
||||
'011010', '011110', '0001001', '<br>', "+", '\n'
|
||||
];
|
||||
|
||||
// writtenMorse alphabet signal words.
|
||||
static List<String> writtenMorseExtra = [
|
||||
'#', '000101', '00000000', '10101', '01010', '00010', '01000',
|
||||
'000111000', '#', '+'
|
||||
];
|
||||
|
||||
// writtenMorse separators.
|
||||
static List<String> writtenMorseSeparators = ['#', '+'];
|
||||
|
||||
// Morse alphabet.
|
||||
static List<String> morse = [
|
||||
'.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---',
|
||||
'-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.', '...', '-', '..-',
|
||||
'...-', '.--', '-..-', '-.--', '--..', '-----', '.----', '..---', '...--',
|
||||
'....-', '.....', '-....', '--...', '---..', '----.', '.-.-', '---.', '..--',
|
||||
'...--...', '.-.-.-', '--..--', '---...', '-.-.-.', '..--..', '-.-.--',
|
||||
'-....-', '..--.-', '-.--.', '-.--.-', '-...-', '.-.-.', '-..-.', '.--.-.',
|
||||
'.----.', '...-..-', '<br>', ' ', '\n'
|
||||
];
|
||||
|
||||
// Morse alphabet signal words.
|
||||
static List<String> morseExtra = [
|
||||
' ', '...-.-', '........', '-.-.-', '.-.-.', '...-.', '.-...',
|
||||
'...---...', ' ', ' '
|
||||
];
|
||||
|
||||
// Morse separators.
|
||||
static List<String> morseSeparators = [' ', ' '];
|
||||
|
||||
/**
|
||||
* Convert message to writtenMorse code.
|
||||
*
|
||||
* @param message Message to convert.
|
||||
* @return converted message.
|
||||
*/
|
||||
static String getWrittenMorseEncoded(String message) {
|
||||
return _encode(
|
||||
message, writtenMorse, writtenMorseExtra, writtenMorseSeparators);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert messgae from writtenMorse code.
|
||||
*
|
||||
* @param message Message to convert.
|
||||
* @return converted Message.
|
||||
*/
|
||||
static String getWrittenMorseDecoded(String message) {
|
||||
return _decode(
|
||||
message, writtenMorse, writtenMorseExtra, writtenMorseSeparators);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert messgae to Morse code.
|
||||
*
|
||||
* @param message Message to convert.
|
||||
* @return converted Message.
|
||||
*/
|
||||
static String getMorseEncoded(String message) {
|
||||
return _encode(
|
||||
message, morse, morseExtra, morseSeparators).replaceAll(" ", " ");
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert messgae from Morse code.
|
||||
*
|
||||
* @param message Message to convert.
|
||||
* @return converted Message.
|
||||
*/
|
||||
static String getMorseDecoded(String message) {
|
||||
return _decode(
|
||||
message, morse, morseExtra, morseSeparators);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert message to given alphabet.
|
||||
*
|
||||
* @param message Message to convert.
|
||||
* @param codeAlphabet Alphabet of the code to convert to.
|
||||
* @param codeAlphabetExtra Signal words of code to convert to.
|
||||
* @param separators Separators of code to convert to.
|
||||
* @return Converted message.
|
||||
*/
|
||||
static String _encode(String message, List<String> codeAlphabet, List<String> codeAlphabetExtra, List<String> separators) {
|
||||
|
||||
message = message.trim().toUpperCase();
|
||||
|
||||
if (message.isEmpty) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (alphabetExtra.contains(message)) {
|
||||
return codeAlphabetExtra[alphabetExtra.indexOf(message)];
|
||||
}
|
||||
|
||||
StringBuffer converted = new StringBuffer();
|
||||
|
||||
List<String> messageList = message.split('');
|
||||
|
||||
for (int i = 0; i < messageList.length; i++) {
|
||||
String char = messageList[i];
|
||||
|
||||
converted.write(
|
||||
codeAlphabet[alphabet.indexOf(char)]
|
||||
);
|
||||
|
||||
if ((i < messageList.length - 1)
|
||||
&& (char != " ")
|
||||
&& (messageList[i + 1] != " ")
|
||||
) {
|
||||
converted.write(separators[0]);
|
||||
}
|
||||
}
|
||||
|
||||
return converted.toString().substring(0, converted.length);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert message from given alphabet.
|
||||
*
|
||||
* @param message Message to convert.
|
||||
* @param codeAlphabet Alphabet of the code to convert from.
|
||||
* @param codeAlphabetExtra Signal words of code to convert from.
|
||||
* @param separators Separators of code to convert from.
|
||||
* @return Converted message.
|
||||
*/
|
||||
static String _decode(String message, List<String> codeAlphabet, List<String> codeAlphabetExtra, List<String> separators) {
|
||||
|
||||
message = message.trim().toUpperCase();
|
||||
|
||||
if(message.isEmpty) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if(codeAlphabetExtra.contains(message)) {
|
||||
return alphabetExtra[codeAlphabetExtra.indexOf(message)];
|
||||
}
|
||||
|
||||
StringBuffer converted = new StringBuffer();
|
||||
|
||||
List<String> lineList = message.split("\n");
|
||||
|
||||
for (String line in lineList) {
|
||||
|
||||
List<String> wordList = line.split(separators[1]);
|
||||
|
||||
for(int i = 0; i < wordList.length; i++) {
|
||||
String word = wordList[i];
|
||||
|
||||
List<String> charList = word.split(separators[0]);
|
||||
|
||||
for(String char in charList) {
|
||||
|
||||
if (codeAlphabet.contains(char)) {
|
||||
converted.write(
|
||||
alphabet[codeAlphabet.indexOf(char)]
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (i < wordList.length - 1) {
|
||||
converted.write(" ");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
converted.write("\n");
|
||||
|
||||
}
|
||||
|
||||
return converted.toString().substring(0, converted.length - 1);
|
||||
|
||||
}
|
||||
|
||||
}
|
39
app/scripts/MorseConverter.dart
Normal file
39
app/scripts/MorseConverter.dart
Normal file
|
@ -0,0 +1,39 @@
|
|||
/**
|
||||
* 2016 (c) Marcel Kapfer (mmk2410)
|
||||
* Licensed under MIT License
|
||||
*/
|
||||
|
||||
/**
|
||||
* JS interopt file for making the Dart methods accessible in JavaScript.
|
||||
*/
|
||||
|
||||
import 'dart:js' as js;
|
||||
|
||||
import 'Convert.dart';
|
||||
import 'CodeRecognization.dart';
|
||||
|
||||
void main() {
|
||||
js.context['isMorseCode'] = (message) {
|
||||
return CodeRecognization.isMorseCode(message);
|
||||
};
|
||||
|
||||
js.context['isWrittenMorseCode'] = (message) {
|
||||
return CodeRecognization.isWrittenMorseCode(message);
|
||||
};
|
||||
|
||||
js.context['getWrittenMorseEncoded'] = (message) {
|
||||
return Convert.getWrittenMorseEncoded(message);
|
||||
};
|
||||
|
||||
js.context['getWrittenMorseDecoded'] = (message) {
|
||||
return Convert.getWrittenMorseDecoded(message);
|
||||
};
|
||||
|
||||
js.context['getMorseEncoded'] = (message) {
|
||||
return Convert.getMorseEncoded(message);
|
||||
};
|
||||
|
||||
js.context['getMorseDecoded'] = (message) {
|
||||
return Convert.getMorseDecoded(message);
|
||||
};
|
||||
}
|
|
@ -71,15 +71,15 @@
|
|||
}
|
||||
if (writtenMorse) {
|
||||
if (isWrittenMorseCode(input.value)) {
|
||||
string = getWrittenMorseEncoded(input.value);
|
||||
} else {
|
||||
string = getWrittenMorseDecoded(input.value);
|
||||
} else {
|
||||
string = getWrittenMorseEncoded(input.value);
|
||||
}
|
||||
} else {
|
||||
if (isNormalMorseCode(input.value)) {
|
||||
string = getNormalMorseEncoded(input.value);
|
||||
if (isMorseCode(input.value)) {
|
||||
string = getMorseDecoded(input.value);
|
||||
} else {
|
||||
string = getNormalMorseDecoded(input.value);
|
||||
string = getMorseEncoded(input.value);
|
||||
}
|
||||
}
|
||||
outputArea.innerHTML = string;
|
||||
|
|
|
@ -1,522 +0,0 @@
|
|||
getNormalMorseDecoded = (input) ->
|
||||
# Well, this shouldn't happen...
|
||||
if !(input)
|
||||
return null
|
||||
|
||||
# remove trailing whitspaces
|
||||
if input.charAt input.length is " "
|
||||
input.substring 0, input.length - 1
|
||||
|
||||
input = input.toUpperCase()
|
||||
output = ""
|
||||
|
||||
# Return special signs
|
||||
if input is "LETTERSPACE"
|
||||
return " "
|
||||
else if input is "END OF WORK"
|
||||
return "...-.-"
|
||||
else if input is "ERROR"
|
||||
return "........"
|
||||
else if input is "STARTING SIGNAL"
|
||||
return "-.-.-"
|
||||
else if input is "ENDING SIGNAL"
|
||||
return ".-.-."
|
||||
else if input is "UNDERSTOOD"
|
||||
return "...-."
|
||||
else if input is "WAIT"
|
||||
return ".-..."
|
||||
else if input is "SOS"
|
||||
return "...---..."
|
||||
else if input is "LETTER SPACE"
|
||||
return " "
|
||||
else if input is "WORD SPACE"
|
||||
return " "
|
||||
else # the converting part
|
||||
|
||||
while input.length > 0
|
||||
|
||||
if input.charAt(0) is " "
|
||||
if output.charAt(output.length) is " "
|
||||
output = output.substring 0, output.length - 1
|
||||
output += " "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "\n"
|
||||
output += "<br>"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "A"
|
||||
output += ".- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "B"
|
||||
output += "-... "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "C"
|
||||
output += "-.-. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "D"
|
||||
output += "-.. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "E"
|
||||
output += ". "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "F"
|
||||
output += "..-. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "G"
|
||||
output += "--. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "H"
|
||||
output += ".... "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "I"
|
||||
output += ".. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "J"
|
||||
output += ".--- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "K"
|
||||
output += "-.- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "L"
|
||||
output += ".-.. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "M"
|
||||
output += "-- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "N"
|
||||
output += "-. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "O"
|
||||
output += "--- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "P"
|
||||
output += ".--. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Q"
|
||||
output += "--.- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "R"
|
||||
output += ".-. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "S"
|
||||
output += "... "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "T"
|
||||
output += "- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "U"
|
||||
output += "..- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "V"
|
||||
output += "...- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "W"
|
||||
output += ".-- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "X"
|
||||
output += "-..- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Y"
|
||||
output += "-.-- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Z"
|
||||
output += "--.. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "0"
|
||||
output += "----- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "1"
|
||||
output += ".---- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "2"
|
||||
output += "..--- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "3"
|
||||
output += "...-- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "4"
|
||||
output += "....- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "5"
|
||||
output += "..... "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "6"
|
||||
output += "-.... "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "7"
|
||||
output += "--... "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "8"
|
||||
output += "---.. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "9"
|
||||
output += "----. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Ä"
|
||||
output += ".-.- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Ö"
|
||||
output += "---. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Ü"
|
||||
output += "..-- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "ß"
|
||||
output += "...--... "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "."
|
||||
output += ".-.-.- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is ","
|
||||
output += "--..-- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is ":"
|
||||
output += "---... "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is ""
|
||||
output += "-.-.-. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "?"
|
||||
output += "..--.. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "!"
|
||||
output += "-.-.-- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "-"
|
||||
output += "-....- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "_"
|
||||
output += "..--.- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "("
|
||||
output += "-.--. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is ")"
|
||||
output += "-.--.- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "="
|
||||
output += "-...- "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "+"
|
||||
output += ".-.-. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "/"
|
||||
output += "-..-. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "@"
|
||||
output += ".--.-. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "'"
|
||||
output += ".----. "
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "$"
|
||||
output += "...-..- "
|
||||
input = input.substring 1
|
||||
|
||||
else
|
||||
return "Code not listed or wrong."
|
||||
|
||||
if output.charAt(output.length - 1) is " "
|
||||
output = output.substring 0, output.length - 1
|
||||
|
||||
return output
|
||||
|
||||
getNormalMorseEncoded = (input) ->
|
||||
# Well, this shouldn't happen...
|
||||
if !(input) then return null
|
||||
|
||||
# remove trailing whitspaces
|
||||
while input.charAt(input.length - 1) is " "
|
||||
input = input.substring 0, input.length - 1
|
||||
|
||||
input = input.toUpperCase()
|
||||
|
||||
# remove all trailing new lines
|
||||
while input.charAt(input.length - 1) is "\n"
|
||||
input = input.substring 0, input.length - 1
|
||||
|
||||
# add one letterspace to the input
|
||||
input += " "
|
||||
|
||||
inputToSign = input
|
||||
output = ""
|
||||
|
||||
while inputToSign isnt " "
|
||||
|
||||
d = 0
|
||||
signFull = true
|
||||
sign = ""
|
||||
|
||||
while signFull
|
||||
|
||||
if inputToSign.substring(d, d + 7) is " " or
|
||||
inputToSign.substring(d, d + 3) is " " or
|
||||
inputToSign.charAt(0) is "\n"
|
||||
|
||||
if d is 0
|
||||
|
||||
if inputToSign.substring(0, 7) is " "
|
||||
output += " "
|
||||
inputToSign = inputToSign.substring 7, inputToSign.length
|
||||
|
||||
if inputToSign.substring(0, 3) is " "
|
||||
inputToSign = inputToSign.substring 3, inputToSign.length
|
||||
|
||||
if inputToSign.charAt(0) is "\n"
|
||||
output += "<br>"
|
||||
inputToSign = inputToSign.substring 1, inputToSign.length
|
||||
|
||||
else
|
||||
sign = inputToSign.substring 0, d
|
||||
inputToSign = inputToSign.substring d, inputToSign.length
|
||||
signFull = false
|
||||
|
||||
else
|
||||
d++
|
||||
|
||||
if sign is ".-"
|
||||
output += "A"
|
||||
|
||||
else if sign is "-..."
|
||||
output += "B"
|
||||
|
||||
else if sign is "-.-."
|
||||
output += "C"
|
||||
|
||||
else if sign is "-.."
|
||||
output += "D"
|
||||
|
||||
else if sign is "."
|
||||
output += "E"
|
||||
|
||||
else if sign is "..-."
|
||||
output += "F"
|
||||
|
||||
else if sign is "--."
|
||||
output += "G"
|
||||
|
||||
else if sign is "...."
|
||||
output += "H"
|
||||
|
||||
else if sign is ".."
|
||||
output += "I"
|
||||
|
||||
else if sign is ".---"
|
||||
output += "J"
|
||||
|
||||
else if sign is "-.-"
|
||||
output += "K"
|
||||
|
||||
else if sign is ".-.."
|
||||
output += "L"
|
||||
|
||||
else if sign is "--"
|
||||
output += "M"
|
||||
|
||||
else if sign is "-."
|
||||
output += "N"
|
||||
|
||||
else if sign is "---"
|
||||
output += "O"
|
||||
|
||||
else if sign is ".--."
|
||||
output += "P"
|
||||
|
||||
else if sign is "--.-"
|
||||
output += "Q"
|
||||
|
||||
else if sign is ".-."
|
||||
output += "R"
|
||||
|
||||
else if sign is "..."
|
||||
output += "S"
|
||||
|
||||
else if sign is "-"
|
||||
output += "T"
|
||||
|
||||
else if sign is "..-"
|
||||
output += "U"
|
||||
|
||||
else if sign is "...-"
|
||||
output += "V"
|
||||
|
||||
else if sign is ".--"
|
||||
output += "W"
|
||||
|
||||
else if sign is "-..-"
|
||||
output += "X"
|
||||
|
||||
else if sign is "-.--"
|
||||
output += "Y"
|
||||
|
||||
else if sign is "--.."
|
||||
output += "Z"
|
||||
|
||||
else if sign is "-----"
|
||||
output += "0"
|
||||
|
||||
else if sign is ".----"
|
||||
output += "1"
|
||||
|
||||
else if sign is "..---"
|
||||
output += "2"
|
||||
|
||||
else if sign is "...--"
|
||||
output += "3"
|
||||
|
||||
else if sign is "....-"
|
||||
output += "4"
|
||||
|
||||
else if sign is "....."
|
||||
output += "5"
|
||||
|
||||
else if sign is "-...."
|
||||
output += "6"
|
||||
|
||||
else if sign is "--..."
|
||||
output += "7"
|
||||
|
||||
else if sign is "---.."
|
||||
output += "8"
|
||||
|
||||
else if sign is "----."
|
||||
output += "9"
|
||||
|
||||
else if sign is ".-.-"
|
||||
output += "Ä"
|
||||
|
||||
else if sign is "---."
|
||||
output += "Ö"
|
||||
|
||||
else if sign is "..--"
|
||||
output += "Ü"
|
||||
|
||||
else if sign is "...--..."
|
||||
output += "ß"
|
||||
|
||||
else if sign is "----"
|
||||
output += "CH"
|
||||
|
||||
else if sign is ".-.-.-"
|
||||
output += "."
|
||||
|
||||
else if sign is "--..--"
|
||||
output += ","
|
||||
|
||||
else if sign is "---..."
|
||||
output += ":"
|
||||
|
||||
else if sign is "-.-.-."
|
||||
output += ";"
|
||||
|
||||
else if sign is "..--.."
|
||||
output += "?"
|
||||
|
||||
else if sign is "-.-.--"
|
||||
output += "!"
|
||||
|
||||
else if sign is "-....-"
|
||||
output += "-"
|
||||
|
||||
else if sign is "..--.-"
|
||||
output += "_"
|
||||
|
||||
else if sign is "-.--."
|
||||
output += "("
|
||||
|
||||
else if sign is "-.--.-"
|
||||
output += ")"
|
||||
|
||||
else if sign is ".----."
|
||||
output += "'"
|
||||
|
||||
else if sign is "-...-"
|
||||
output += "="
|
||||
|
||||
else if sign is ".-.-."
|
||||
output += "+"
|
||||
|
||||
else if sign is "-..-."
|
||||
output += "/"
|
||||
|
||||
else if sign is ".--.-."
|
||||
output += "@"
|
||||
|
||||
else if sign is "-.-.-"
|
||||
output += "Begin of the signal"
|
||||
|
||||
else if sign is "-...-"
|
||||
output += "Wait"
|
||||
|
||||
else if sign is "...-."
|
||||
output += "Understood"
|
||||
|
||||
else if sign is "...-.-"
|
||||
output += "End of work"
|
||||
|
||||
else if sign is "...---..."
|
||||
output += "SOS"
|
||||
|
||||
else if sign is "........"
|
||||
output += "Error"
|
||||
|
||||
else
|
||||
return "Code not listed or wrong."
|
||||
|
||||
return output
|
|
@ -1,394 +0,0 @@
|
|||
var getNormalMorseDecoded, getNormalMorseEncoded;
|
||||
|
||||
getNormalMorseDecoded = function(input) {
|
||||
var output;
|
||||
if (!input) {
|
||||
return null;
|
||||
}
|
||||
if (input.charAt(input.length === " ")) {
|
||||
input.substring(0, input.length - 1);
|
||||
}
|
||||
input = input.toUpperCase();
|
||||
output = "";
|
||||
if (input === "LETTERSPACE") {
|
||||
return " ";
|
||||
} else if (input === "END OF WORK") {
|
||||
return "...-.-";
|
||||
} else if (input === "ERROR") {
|
||||
return "........";
|
||||
} else if (input === "STARTING SIGNAL") {
|
||||
return "-.-.-";
|
||||
} else if (input === "ENDING SIGNAL") {
|
||||
return ".-.-.";
|
||||
} else if (input === "UNDERSTOOD") {
|
||||
return "...-.";
|
||||
} else if (input === "WAIT") {
|
||||
return ".-...";
|
||||
} else if (input === "SOS") {
|
||||
return "...---...";
|
||||
} else if (input === "LETTER SPACE") {
|
||||
return " ";
|
||||
} else if (input === "WORD SPACE") {
|
||||
return " ";
|
||||
} else {
|
||||
while (input.length > 0) {
|
||||
if (input.charAt(0) === " ") {
|
||||
if (output.charAt(output.length) === " ") {
|
||||
output = output.substring(0, output.length - 1);
|
||||
}
|
||||
output += " ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "\n") {
|
||||
output += "<br>";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "A") {
|
||||
output += ".- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "B") {
|
||||
output += "-... ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "C") {
|
||||
output += "-.-. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "D") {
|
||||
output += "-.. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "E") {
|
||||
output += ". ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "F") {
|
||||
output += "..-. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "G") {
|
||||
output += "--. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "H") {
|
||||
output += ".... ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "I") {
|
||||
output += ".. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "J") {
|
||||
output += ".--- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "K") {
|
||||
output += "-.- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "L") {
|
||||
output += ".-.. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "M") {
|
||||
output += "-- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "N") {
|
||||
output += "-. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "O") {
|
||||
output += "--- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "P") {
|
||||
output += ".--. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Q") {
|
||||
output += "--.- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "R") {
|
||||
output += ".-. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "S") {
|
||||
output += "... ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "T") {
|
||||
output += "- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "U") {
|
||||
output += "..- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "V") {
|
||||
output += "...- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "W") {
|
||||
output += ".-- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "X") {
|
||||
output += "-..- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Y") {
|
||||
output += "-.-- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Z") {
|
||||
output += "--.. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "0") {
|
||||
output += "----- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "1") {
|
||||
output += ".---- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "2") {
|
||||
output += "..--- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "3") {
|
||||
output += "...-- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "4") {
|
||||
output += "....- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "5") {
|
||||
output += "..... ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "6") {
|
||||
output += "-.... ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "7") {
|
||||
output += "--... ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "8") {
|
||||
output += "---.. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "9") {
|
||||
output += "----. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Ä") {
|
||||
output += ".-.- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Ö") {
|
||||
output += "---. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Ü") {
|
||||
output += "..-- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "ß") {
|
||||
output += "...--... ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === ".") {
|
||||
output += ".-.-.- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === ",") {
|
||||
output += "--..-- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === ":") {
|
||||
output += "---... ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "") {
|
||||
output += "-.-.-. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "?") {
|
||||
output += "..--.. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "!") {
|
||||
output += "-.-.-- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "-") {
|
||||
output += "-....- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "_") {
|
||||
output += "..--.- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "(") {
|
||||
output += "-.--. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === ")") {
|
||||
output += "-.--.- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "=") {
|
||||
output += "-...- ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "+") {
|
||||
output += ".-.-. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "/") {
|
||||
output += "-..-. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "@") {
|
||||
output += ".--.-. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "'") {
|
||||
output += ".----. ";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "$") {
|
||||
output += "...-..- ";
|
||||
input = input.substring(1);
|
||||
} else {
|
||||
return "Code not listed or wrong.";
|
||||
}
|
||||
}
|
||||
if (output.charAt(output.length - 1) === " ") {
|
||||
output = output.substring(0, output.length - 1);
|
||||
}
|
||||
}
|
||||
return output;
|
||||
};
|
||||
|
||||
getNormalMorseEncoded = function(input) {
|
||||
var d, inputToSign, output, sign, signFull;
|
||||
if (!input) {
|
||||
return null;
|
||||
}
|
||||
while (input.charAt(input.length - 1) === " ") {
|
||||
input = input.substring(0, input.length - 1);
|
||||
}
|
||||
input = input.toUpperCase();
|
||||
while (input.charAt(input.length - 1) === "\n") {
|
||||
input = input.substring(0, input.length - 1);
|
||||
}
|
||||
input += " ";
|
||||
inputToSign = input;
|
||||
output = "";
|
||||
while (inputToSign !== " ") {
|
||||
d = 0;
|
||||
signFull = true;
|
||||
sign = "";
|
||||
while (signFull) {
|
||||
if (inputToSign.substring(d, d + 7) === " " || inputToSign.substring(d, d + 3) === " " || inputToSign.charAt(0) === "\n") {
|
||||
if (d === 0) {
|
||||
if (inputToSign.substring(0, 7) === " ") {
|
||||
output += " ";
|
||||
inputToSign = inputToSign.substring(7, inputToSign.length);
|
||||
}
|
||||
if (inputToSign.substring(0, 3) === " ") {
|
||||
inputToSign = inputToSign.substring(3, inputToSign.length);
|
||||
}
|
||||
if (inputToSign.charAt(0) === "\n") {
|
||||
output += "<br>";
|
||||
inputToSign = inputToSign.substring(1, inputToSign.length);
|
||||
}
|
||||
} else {
|
||||
sign = inputToSign.substring(0, d);
|
||||
inputToSign = inputToSign.substring(d, inputToSign.length);
|
||||
signFull = false;
|
||||
}
|
||||
} else {
|
||||
d++;
|
||||
}
|
||||
}
|
||||
if (sign === ".-") {
|
||||
output += "A";
|
||||
} else if (sign === "-...") {
|
||||
output += "B";
|
||||
} else if (sign === "-.-.") {
|
||||
output += "C";
|
||||
} else if (sign === "-..") {
|
||||
output += "D";
|
||||
} else if (sign === ".") {
|
||||
output += "E";
|
||||
} else if (sign === "..-.") {
|
||||
output += "F";
|
||||
} else if (sign === "--.") {
|
||||
output += "G";
|
||||
} else if (sign === "....") {
|
||||
output += "H";
|
||||
} else if (sign === "..") {
|
||||
output += "I";
|
||||
} else if (sign === ".---") {
|
||||
output += "J";
|
||||
} else if (sign === "-.-") {
|
||||
output += "K";
|
||||
} else if (sign === ".-..") {
|
||||
output += "L";
|
||||
} else if (sign === "--") {
|
||||
output += "M";
|
||||
} else if (sign === "-.") {
|
||||
output += "N";
|
||||
} else if (sign === "---") {
|
||||
output += "O";
|
||||
} else if (sign === ".--.") {
|
||||
output += "P";
|
||||
} else if (sign === "--.-") {
|
||||
output += "Q";
|
||||
} else if (sign === ".-.") {
|
||||
output += "R";
|
||||
} else if (sign === "...") {
|
||||
output += "S";
|
||||
} else if (sign === "-") {
|
||||
output += "T";
|
||||
} else if (sign === "..-") {
|
||||
output += "U";
|
||||
} else if (sign === "...-") {
|
||||
output += "V";
|
||||
} else if (sign === ".--") {
|
||||
output += "W";
|
||||
} else if (sign === "-..-") {
|
||||
output += "X";
|
||||
} else if (sign === "-.--") {
|
||||
output += "Y";
|
||||
} else if (sign === "--..") {
|
||||
output += "Z";
|
||||
} else if (sign === "-----") {
|
||||
output += "0";
|
||||
} else if (sign === ".----") {
|
||||
output += "1";
|
||||
} else if (sign === "..---") {
|
||||
output += "2";
|
||||
} else if (sign === "...--") {
|
||||
output += "3";
|
||||
} else if (sign === "....-") {
|
||||
output += "4";
|
||||
} else if (sign === ".....") {
|
||||
output += "5";
|
||||
} else if (sign === "-....") {
|
||||
output += "6";
|
||||
} else if (sign === "--...") {
|
||||
output += "7";
|
||||
} else if (sign === "---..") {
|
||||
output += "8";
|
||||
} else if (sign === "----.") {
|
||||
output += "9";
|
||||
} else if (sign === ".-.-") {
|
||||
output += "Ä";
|
||||
} else if (sign === "---.") {
|
||||
output += "Ö";
|
||||
} else if (sign === "..--") {
|
||||
output += "Ü";
|
||||
} else if (sign === "...--...") {
|
||||
output += "ß";
|
||||
} else if (sign === "----") {
|
||||
output += "CH";
|
||||
} else if (sign === ".-.-.-") {
|
||||
output += ".";
|
||||
} else if (sign === "--..--") {
|
||||
output += ",";
|
||||
} else if (sign === "---...") {
|
||||
output += ":";
|
||||
} else if (sign === "-.-.-.") {
|
||||
output += ";";
|
||||
} else if (sign === "..--..") {
|
||||
output += "?";
|
||||
} else if (sign === "-.-.--") {
|
||||
output += "!";
|
||||
} else if (sign === "-....-") {
|
||||
output += "-";
|
||||
} else if (sign === "..--.-") {
|
||||
output += "_";
|
||||
} else if (sign === "-.--.") {
|
||||
output += "(";
|
||||
} else if (sign === "-.--.-") {
|
||||
output += ")";
|
||||
} else if (sign === ".----.") {
|
||||
output += "'";
|
||||
} else if (sign === "-...-") {
|
||||
output += "=";
|
||||
} else if (sign === ".-.-.") {
|
||||
output += "+";
|
||||
} else if (sign === "-..-.") {
|
||||
output += "/";
|
||||
} else if (sign === ".--.-.") {
|
||||
output += "@";
|
||||
} else if (sign === "-.-.-") {
|
||||
output += "Begin of the signal";
|
||||
} else if (sign === "-...-") {
|
||||
output += "Wait";
|
||||
} else if (sign === "...-.") {
|
||||
output += "Understood";
|
||||
} else if (sign === "...-.-") {
|
||||
output += "End of work";
|
||||
} else if (sign === "...---...") {
|
||||
output += "SOS";
|
||||
} else if (sign === "........") {
|
||||
output += "Error";
|
||||
} else {
|
||||
return "Code not listed or wrong.";
|
||||
}
|
||||
}
|
||||
return output;
|
||||
};
|
|
@ -1,523 +0,0 @@
|
|||
getWrittenMorseDecoded = (input) ->
|
||||
# Well, this shouldn't happen...
|
||||
if !(input)
|
||||
return null
|
||||
|
||||
# remove trailing whitspaces
|
||||
if input.charAt input.length is " "
|
||||
input.substring 0, input.length - 1
|
||||
|
||||
input = input.toUpperCase()
|
||||
output = ""
|
||||
|
||||
# Return special signs
|
||||
if input is "LETTERSPACE"
|
||||
return "#"
|
||||
else if input is "END OF WORK"
|
||||
return "000101"
|
||||
else if input is "ERROR"
|
||||
return "00000000"
|
||||
else if input is "STARTING SIGNAL"
|
||||
return "10101"
|
||||
else if input is "ENDING SIGNAL"
|
||||
return "01010"
|
||||
else if input is "UNDERSTOOD"
|
||||
return "00010"
|
||||
else if input is "WAIT"
|
||||
return "01000"
|
||||
else if input is "SOS"
|
||||
return "000111000"
|
||||
else if input is "LETTER SPACE"
|
||||
return "#"
|
||||
else if input is "WORD SPACE"
|
||||
return "+"
|
||||
else # the converting part
|
||||
|
||||
while input.length > 0
|
||||
|
||||
if input.charAt(0) is " "
|
||||
if output.charAt(output.length) is "#"
|
||||
output = output.substring 0, output.length - 1
|
||||
output += "+"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "\n"
|
||||
output += "<br>"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "A"
|
||||
output += "01#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "B"
|
||||
output += "1000#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "C"
|
||||
output += "1010#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "D"
|
||||
output += "100#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "E"
|
||||
output += "0#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "F"
|
||||
output += "0010#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "G"
|
||||
output += "110#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "H"
|
||||
output += "0000#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "I"
|
||||
output += "00#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "J"
|
||||
output += "0111#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "K"
|
||||
output += "101#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "L"
|
||||
output += "0100#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "M"
|
||||
output += "11#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "N"
|
||||
output += "10#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "O"
|
||||
output += "111#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "P"
|
||||
output += "0110#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Q"
|
||||
output += "1101#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "R"
|
||||
output += "010#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "S"
|
||||
output += "000#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "T"
|
||||
output += "1#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "U"
|
||||
output += "001#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "V"
|
||||
output += "0001#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "W"
|
||||
output += "011#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "X"
|
||||
output += "1001#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Y"
|
||||
output += "1011#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Z"
|
||||
output += "1100#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "0"
|
||||
output += "11111#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "1"
|
||||
output += "01111#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "2"
|
||||
output += "00111#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "3"
|
||||
output += "00011#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "4"
|
||||
output += "00001#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "5"
|
||||
output += "00000#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "6"
|
||||
output += "10000#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "7"
|
||||
output += "11000#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "8"
|
||||
output += "11100#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "9"
|
||||
output += "11110#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Ä"
|
||||
output += "0101#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Ö"
|
||||
output += "1110#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "Ü"
|
||||
output += "0011#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "ß"
|
||||
output += "00011000#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "."
|
||||
output += "010101#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is ","
|
||||
output += "110011#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is ":"
|
||||
output += "111000#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is ""
|
||||
output += "101010#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "?"
|
||||
output += "001100#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "!"
|
||||
output += "101011#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "-"
|
||||
output += "100001#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "_"
|
||||
output += "001101#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "("
|
||||
output += "10110#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is ")"
|
||||
output += "101101#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "="
|
||||
output += "10001#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "+"
|
||||
output += "01010#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "/"
|
||||
output += "10010#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "@"
|
||||
output += "011010#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "'"
|
||||
output += "011110#"
|
||||
input = input.substring 1
|
||||
|
||||
else if input.charAt(0) is "$"
|
||||
output += "0001001#"
|
||||
input = input.substring 1
|
||||
|
||||
else
|
||||
return "Code not listed or wrong."
|
||||
|
||||
if output.charAt(output.length - 1) is "#"
|
||||
output = output.substring 0, output.length - 1
|
||||
|
||||
return output
|
||||
|
||||
getWrittenMorseEncoded = (input) ->
|
||||
# Well, this shouldn't happen...
|
||||
if !(input) then return null
|
||||
|
||||
# remove trailing whitspaces
|
||||
while input.charAt(input.length - 1) is " "
|
||||
input = input.substring 0, input.length - 1
|
||||
|
||||
input = input.toUpperCase()
|
||||
|
||||
while input.charAt(input.length - 1) is "#" or
|
||||
input.charAt(input.length - 1) is "+" or
|
||||
input.charAt(input.length - 1) is "\n"
|
||||
input = input.substring 0, input.length - 1
|
||||
|
||||
if input.charAt(input.length - 1) isnt "#"
|
||||
input += "#"
|
||||
|
||||
inputToSign = input
|
||||
output = ""
|
||||
|
||||
while inputToSign isnt "#"
|
||||
|
||||
d = 0
|
||||
signFull = true
|
||||
sign = ""
|
||||
|
||||
while signFull
|
||||
|
||||
if inputToSign.charAt(d) is "+" or
|
||||
inputToSign.charAt(d) is "#" or
|
||||
inputToSign.charAt(0) is "\n"
|
||||
|
||||
if d is 0
|
||||
|
||||
if inputToSign.charAt(0) is "+"
|
||||
output += " "
|
||||
inputToSign = inputToSign.substring 1, inputToSign.length
|
||||
|
||||
if inputToSign.charAt(0) is "#"
|
||||
inputToSign = inputToSign.substring 1, inputToSign.length
|
||||
|
||||
if inputToSign.charAt(0) is "\n"
|
||||
output += "<br>"
|
||||
inputToSign = inputToSign.substring 1, inputToSign.length
|
||||
|
||||
else
|
||||
sign = inputToSign.substring 0, d
|
||||
inputToSign = inputToSign.substring d, inputToSign.length
|
||||
signFull = false
|
||||
|
||||
else
|
||||
d++
|
||||
|
||||
if sign is "01"
|
||||
output += "A"
|
||||
|
||||
else if sign is "1000"
|
||||
output += "B"
|
||||
|
||||
else if sign is "1010"
|
||||
output += "C"
|
||||
|
||||
else if sign is "100"
|
||||
output += "D"
|
||||
|
||||
else if sign is "0"
|
||||
output += "E"
|
||||
|
||||
else if sign is "0010"
|
||||
output += "F"
|
||||
|
||||
else if sign is "110"
|
||||
output += "G"
|
||||
|
||||
else if sign is "0000"
|
||||
output += "H"
|
||||
|
||||
else if sign is "00"
|
||||
output += "I"
|
||||
|
||||
else if sign is "0111"
|
||||
output += "J"
|
||||
|
||||
else if sign is "101"
|
||||
output += "K"
|
||||
|
||||
else if sign is "0100"
|
||||
output += "L"
|
||||
|
||||
else if sign is "11"
|
||||
output += "M"
|
||||
|
||||
else if sign is "10"
|
||||
output += "N"
|
||||
|
||||
else if sign is "111"
|
||||
output += "O"
|
||||
|
||||
else if sign is "0110"
|
||||
output += "P"
|
||||
|
||||
else if sign is "1101"
|
||||
output += "Q"
|
||||
|
||||
else if sign is "010"
|
||||
output += "R"
|
||||
|
||||
else if sign is "000"
|
||||
output += "S"
|
||||
|
||||
else if sign is "1"
|
||||
output += "T"
|
||||
|
||||
else if sign is "001"
|
||||
output += "U"
|
||||
|
||||
else if sign is "0001"
|
||||
output += "V"
|
||||
|
||||
else if sign is "011"
|
||||
output += "W"
|
||||
|
||||
else if sign is "1001"
|
||||
output += "X"
|
||||
|
||||
else if sign is "1011"
|
||||
output += "Y"
|
||||
|
||||
else if sign is "1100"
|
||||
output += "Z"
|
||||
|
||||
else if sign is "11111"
|
||||
output += "0"
|
||||
|
||||
else if sign is "01111"
|
||||
output += "1"
|
||||
|
||||
else if sign is "00111"
|
||||
output += "2"
|
||||
|
||||
else if sign is "00011"
|
||||
output += "3"
|
||||
|
||||
else if sign is "00001"
|
||||
output += "4"
|
||||
|
||||
else if sign is "00000"
|
||||
output += "5"
|
||||
|
||||
else if sign is "10000"
|
||||
output += "6"
|
||||
|
||||
else if sign is "11000"
|
||||
output += "7"
|
||||
|
||||
else if sign is "11100"
|
||||
output += "8"
|
||||
|
||||
else if sign is "11110"
|
||||
output += "9"
|
||||
|
||||
else if sign is "0101"
|
||||
output += "Ä"
|
||||
|
||||
else if sign is "1110"
|
||||
output += "Ö"
|
||||
|
||||
else if sign is "0011"
|
||||
output += "Ü"
|
||||
|
||||
else if sign is "00011000"
|
||||
output += "ß"
|
||||
|
||||
else if sign is "1111"
|
||||
output += "CH"
|
||||
|
||||
else if sign is "010101"
|
||||
output += "."
|
||||
|
||||
else if sign is "110011"
|
||||
output += ","
|
||||
|
||||
else if sign is "111000"
|
||||
output += ":"
|
||||
|
||||
else if sign is "101010"
|
||||
output += ";"
|
||||
|
||||
else if sign is "001100"
|
||||
output += "?"
|
||||
|
||||
else if sign is "101011"
|
||||
output += "!"
|
||||
|
||||
else if sign is "100001"
|
||||
output += "-"
|
||||
|
||||
else if sign is "001101"
|
||||
output += "_"
|
||||
|
||||
else if sign is "10110"
|
||||
output += "("
|
||||
|
||||
else if sign is "101101"
|
||||
output += ")"
|
||||
|
||||
else if sign is "011110"
|
||||
output += "'"
|
||||
|
||||
else if sign is "10001"
|
||||
output += "="
|
||||
|
||||
else if sign is "01010"
|
||||
output += "+"
|
||||
|
||||
else if sign is "10010"
|
||||
output += "/"
|
||||
|
||||
else if sign is "011010"
|
||||
output += "@"
|
||||
|
||||
else if sign is "10101"
|
||||
output += "Begin of the signal"
|
||||
|
||||
else if sign is "10001"
|
||||
output += "Wait"
|
||||
|
||||
else if sign is "00010"
|
||||
output += "Understood"
|
||||
|
||||
else if sign is "000101"
|
||||
output += "End of work"
|
||||
|
||||
else if sign is "000111000"
|
||||
output += "SOS"
|
||||
|
||||
else if sign is "00000000"
|
||||
output += "Error"
|
||||
|
||||
else
|
||||
return "Code not listed or wrong."
|
||||
|
||||
return output
|
|
@ -1,396 +0,0 @@
|
|||
var getWrittenMorseDecoded, getWrittenMorseEncoded;
|
||||
|
||||
getWrittenMorseDecoded = function(input) {
|
||||
var output;
|
||||
if (!input) {
|
||||
return null;
|
||||
}
|
||||
if (input.charAt(input.length === " ")) {
|
||||
input.substring(0, input.length - 1);
|
||||
}
|
||||
input = input.toUpperCase();
|
||||
output = "";
|
||||
if (input === "LETTERSPACE") {
|
||||
return "#";
|
||||
} else if (input === "END OF WORK") {
|
||||
return "000101";
|
||||
} else if (input === "ERROR") {
|
||||
return "00000000";
|
||||
} else if (input === "STARTING SIGNAL") {
|
||||
return "10101";
|
||||
} else if (input === "ENDING SIGNAL") {
|
||||
return "01010";
|
||||
} else if (input === "UNDERSTOOD") {
|
||||
return "00010";
|
||||
} else if (input === "WAIT") {
|
||||
return "01000";
|
||||
} else if (input === "SOS") {
|
||||
return "000111000";
|
||||
} else if (input === "LETTER SPACE") {
|
||||
return "#";
|
||||
} else if (input === "WORD SPACE") {
|
||||
return "+";
|
||||
} else {
|
||||
while (input.length > 0) {
|
||||
if (input.charAt(0) === " ") {
|
||||
if (output.charAt(output.length) === "#") {
|
||||
output = output.substring(0, output.length - 1);
|
||||
}
|
||||
output += "+";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "\n") {
|
||||
output += "<br>";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "A") {
|
||||
output += "01#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "B") {
|
||||
output += "1000#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "C") {
|
||||
output += "1010#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "D") {
|
||||
output += "100#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "E") {
|
||||
output += "0#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "F") {
|
||||
output += "0010#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "G") {
|
||||
output += "110#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "H") {
|
||||
output += "0000#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "I") {
|
||||
output += "00#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "J") {
|
||||
output += "0111#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "K") {
|
||||
output += "101#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "L") {
|
||||
output += "0100#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "M") {
|
||||
output += "11#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "N") {
|
||||
output += "10#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "O") {
|
||||
output += "111#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "P") {
|
||||
output += "0110#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Q") {
|
||||
output += "1101#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "R") {
|
||||
output += "010#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "S") {
|
||||
output += "000#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "T") {
|
||||
output += "1#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "U") {
|
||||
output += "001#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "V") {
|
||||
output += "0001#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "W") {
|
||||
output += "011#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "X") {
|
||||
output += "1001#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Y") {
|
||||
output += "1011#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Z") {
|
||||
output += "1100#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "0") {
|
||||
output += "11111#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "1") {
|
||||
output += "01111#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "2") {
|
||||
output += "00111#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "3") {
|
||||
output += "00011#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "4") {
|
||||
output += "00001#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "5") {
|
||||
output += "00000#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "6") {
|
||||
output += "10000#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "7") {
|
||||
output += "11000#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "8") {
|
||||
output += "11100#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "9") {
|
||||
output += "11110#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Ä") {
|
||||
output += "0101#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Ö") {
|
||||
output += "1110#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "Ü") {
|
||||
output += "0011#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "ß") {
|
||||
output += "00011000#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === ".") {
|
||||
output += "010101#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === ",") {
|
||||
output += "110011#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === ":") {
|
||||
output += "111000#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "") {
|
||||
output += "101010#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "?") {
|
||||
output += "001100#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "!") {
|
||||
output += "101011#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "-") {
|
||||
output += "100001#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "_") {
|
||||
output += "001101#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "(") {
|
||||
output += "10110#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === ")") {
|
||||
output += "101101#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "=") {
|
||||
output += "10001#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "+") {
|
||||
output += "01010#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "/") {
|
||||
output += "10010#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "@") {
|
||||
output += "011010#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "'") {
|
||||
output += "011110#";
|
||||
input = input.substring(1);
|
||||
} else if (input.charAt(0) === "$") {
|
||||
output += "0001001#";
|
||||
input = input.substring(1);
|
||||
} else {
|
||||
return "Code not listed or wrong.";
|
||||
}
|
||||
}
|
||||
if (output.charAt(output.length - 1) === "#") {
|
||||
output = output.substring(0, output.length - 1);
|
||||
}
|
||||
}
|
||||
return output;
|
||||
};
|
||||
|
||||
getWrittenMorseEncoded = function(input) {
|
||||
var d, inputToSign, output, sign, signFull;
|
||||
if (!input) {
|
||||
return null;
|
||||
}
|
||||
while (input.charAt(input.length - 1) === " ") {
|
||||
input = input.substring(0, input.length - 1);
|
||||
}
|
||||
input = input.toUpperCase();
|
||||
while (input.charAt(input.length - 1) === "#" || input.charAt(input.length - 1) === "+" || input.charAt(input.length - 1) === "\n") {
|
||||
input = input.substring(0, input.length - 1);
|
||||
}
|
||||
if (input.charAt(input.length - 1) !== "#") {
|
||||
input += "#";
|
||||
}
|
||||
inputToSign = input;
|
||||
output = "";
|
||||
while (inputToSign !== "#") {
|
||||
d = 0;
|
||||
signFull = true;
|
||||
sign = "";
|
||||
while (signFull) {
|
||||
if (inputToSign.charAt(d) === "+" || inputToSign.charAt(d) === "#" || inputToSign.charAt(0) === "\n") {
|
||||
if (d === 0) {
|
||||
if (inputToSign.charAt(0) === "+") {
|
||||
output += " ";
|
||||
inputToSign = inputToSign.substring(1, inputToSign.length);
|
||||
}
|
||||
if (inputToSign.charAt(0) === "#") {
|
||||
inputToSign = inputToSign.substring(1, inputToSign.length);
|
||||
}
|
||||
if (inputToSign.charAt(0) === "\n") {
|
||||
output += "<br>";
|
||||
inputToSign = inputToSign.substring(1, inputToSign.length);
|
||||
}
|
||||
} else {
|
||||
sign = inputToSign.substring(0, d);
|
||||
inputToSign = inputToSign.substring(d, inputToSign.length);
|
||||
signFull = false;
|
||||
}
|
||||
} else {
|
||||
d++;
|
||||
}
|
||||
}
|
||||
if (sign === "01") {
|
||||
output += "A";
|
||||
} else if (sign === "1000") {
|
||||
output += "B";
|
||||
} else if (sign === "1010") {
|
||||
output += "C";
|
||||
} else if (sign === "100") {
|
||||
output += "D";
|
||||
} else if (sign === "0") {
|
||||
output += "E";
|
||||
} else if (sign === "0010") {
|
||||
output += "F";
|
||||
} else if (sign === "110") {
|
||||
output += "G";
|
||||
} else if (sign === "0000") {
|
||||
output += "H";
|
||||
} else if (sign === "00") {
|
||||
output += "I";
|
||||
} else if (sign === "0111") {
|
||||
output += "J";
|
||||
} else if (sign === "101") {
|
||||
output += "K";
|
||||
} else if (sign === "0100") {
|
||||
output += "L";
|
||||
} else if (sign === "11") {
|
||||
output += "M";
|
||||
} else if (sign === "10") {
|
||||
output += "N";
|
||||
} else if (sign === "111") {
|
||||
output += "O";
|
||||
} else if (sign === "0110") {
|
||||
output += "P";
|
||||
} else if (sign === "1101") {
|
||||
output += "Q";
|
||||
} else if (sign === "010") {
|
||||
output += "R";
|
||||
} else if (sign === "000") {
|
||||
output += "S";
|
||||
} else if (sign === "1") {
|
||||
output += "T";
|
||||
} else if (sign === "001") {
|
||||
output += "U";
|
||||
} else if (sign === "0001") {
|
||||
output += "V";
|
||||
} else if (sign === "011") {
|
||||
output += "W";
|
||||
} else if (sign === "1001") {
|
||||
output += "X";
|
||||
} else if (sign === "1011") {
|
||||
output += "Y";
|
||||
} else if (sign === "1100") {
|
||||
output += "Z";
|
||||
} else if (sign === "11111") {
|
||||
output += "0";
|
||||
} else if (sign === "01111") {
|
||||
output += "1";
|
||||
} else if (sign === "00111") {
|
||||
output += "2";
|
||||
} else if (sign === "00011") {
|
||||
output += "3";
|
||||
} else if (sign === "00001") {
|
||||
output += "4";
|
||||
} else if (sign === "00000") {
|
||||
output += "5";
|
||||
} else if (sign === "10000") {
|
||||
output += "6";
|
||||
} else if (sign === "11000") {
|
||||
output += "7";
|
||||
} else if (sign === "11100") {
|
||||
output += "8";
|
||||
} else if (sign === "11110") {
|
||||
output += "9";
|
||||
} else if (sign === "0101") {
|
||||
output += "Ä";
|
||||
} else if (sign === "1110") {
|
||||
output += "Ö";
|
||||
} else if (sign === "0011") {
|
||||
output += "Ü";
|
||||
} else if (sign === "00011000") {
|
||||
output += "ß";
|
||||
} else if (sign === "1111") {
|
||||
output += "CH";
|
||||
} else if (sign === "010101") {
|
||||
output += ".";
|
||||
} else if (sign === "110011") {
|
||||
output += ",";
|
||||
} else if (sign === "111000") {
|
||||
output += ":";
|
||||
} else if (sign === "101010") {
|
||||
output += ";";
|
||||
} else if (sign === "001100") {
|
||||
output += "?";
|
||||
} else if (sign === "101011") {
|
||||
output += "!";
|
||||
} else if (sign === "100001") {
|
||||
output += "-";
|
||||
} else if (sign === "001101") {
|
||||
output += "_";
|
||||
} else if (sign === "10110") {
|
||||
output += "(";
|
||||
} else if (sign === "101101") {
|
||||
output += ")";
|
||||
} else if (sign === "011110") {
|
||||
output += "'";
|
||||
} else if (sign === "10001") {
|
||||
output += "=";
|
||||
} else if (sign === "01010") {
|
||||
output += "+";
|
||||
} else if (sign === "10010") {
|
||||
output += "/";
|
||||
} else if (sign === "011010") {
|
||||
output += "@";
|
||||
} else if (sign === "10101") {
|
||||
output += "Begin of the signal";
|
||||
} else if (sign === "10001") {
|
||||
output += "Wait";
|
||||
} else if (sign === "00010") {
|
||||
output += "Understood";
|
||||
} else if (sign === "000101") {
|
||||
output += "End of work";
|
||||
} else if (sign === "000111000") {
|
||||
output += "SOS";
|
||||
} else if (sign === "00000000") {
|
||||
output += "Error";
|
||||
} else {
|
||||
return "Code not listed or wrong.";
|
||||
}
|
||||
}
|
||||
return output;
|
||||
};
|
Reference in a new issue